位置: 编程技术 - 正文

Android系统Root与静默安装(安卓手机root后更流畅吗)

编辑:rootadmin
Android系统Root与静默安装

推荐整理分享Android系统Root与静默安装(安卓手机root后更流畅吗),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:root安卓系统,android root有什么用,安卓手机root后更流畅吗,android root有什么用,安卓root和不root的区别,安卓root的好处和坏处,安卓root的好处和坏处,安卓系统root原理,内容如对您有帮助,希望把文章链接给更多的朋友!

静默安装,指的是安装时无需任何用户干预,直接按默认设置安装应用。因为,它的无需用户干预,很多情况下变成了用户压根不知道,应用不知不觉就安装上了。是在推广上极为流氓的手段,很类似PC上的捆绑安装。正因为静默安装时极为流氓的推广行为,所以,其推广价格也极其高。

Android应用安装有如下四种方式

安装形式 完成方式 系统应用安装 开机时完成,需要加入开机执行的脚本,没有安装界面 网络下载应用安装 通过系统market应用完成,没有安装界面 ADB工具中进行安装 使用pm install命令,没有安装界面。 第三方应用安装 通过SD卡里的APK文件安装,有安装界面,由PackageInstaller.apk应用处理安装及卸载过程的界面。

应用安装的流程及路径

目录 主要功能 /system/app 系统自带的应用程序存放,Root权限才可更改 /data/app 用户程序安装的目录,有删除权限。安装时把apk文件复制到此目录 /data/data 存放应用程序的数据 Data/dalvik-cache 将apk中的dex文件安装到dalvik-cache目录下

安装过程 复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录。

卸载过程 删除安装过程中在上述三个目录下创建的文件及目录。

权限声明

Google的安全策略要求任何应用在安装确认的时候应该提示APK安装包的权限,即确认开发者在AndroidManafest.xml中声明的权限。当然,Google在Android上也做了一些操作,允许一些系统内部的应用不经过授权界面直接进行安装。而系统进入安装界面其实也是根据此intent跳转到了PackageInstaller应用来完成权限的提示与安装的。

这里写代码片`我们在应用程序中控制安装应用APP,其实就是发送一个如下的intent。去调用packageinstaller进行安装,具体的操作代码如下:

对比应用正常安装的流程,静默安装的本质就是去掉如下图所示的用户授权同意安装的过程,直接进行应用安装。

源码分析

阅读过源码后我们知道,系统的安装过程其实是调用了系统中的PackageInstaller来完成的。希望做到静默安装,就是找到一个方法,绕过PackageInstaller中的权限授予提示,继续完成安装的步骤。 所以,思路很简单,我们可以从两方面去操作:

找到PackageInstaller源码,跳过权限授予提醒,直接调用后面的安装API即可完成安装。(这样能够良好的兼容正常安装,不易出错)使用pm install 命令进行安装。

调用PackageInstaller中隐藏的API

查看PackageInstaller源码我们能够发现,其实PackageInstaller也是通过使用PackageManager进行安装的。调用的是其installPackage方法,但是此方法是一个abstract,且是对外不可见的(hide),

定义如下所示:

且PackageManager与installPackage两者皆为abstract抽象的。其具体实现都在ApplicationPackageManager中,其installPackage中的实现为:

可见调用的installPackage方法为IPackageManager中的installPackage方法。在ContextImpl中通过调用 ActivityThread.getPackageManager()获得IPackageManager实例对象。而在在ActivityThread.getPackageManager()方法中,是调用SystemService中的名为package的Service来实例化的。代码如下:

因为,installPackage是系统的API,为了使用PackageManagerService.installPackage(),考虑通过反射机制可以调用installPackage()。

但其中难以得到的是其参数中的IPackageInstallObserver类型,我们看来一下IPackageInstallObserver,发现IPackageInstallObserver是由aidl文件定义的。这个也难不倒我们,通过aidl文件的特性,将IPackageInstallObserver.aidl文件拷到本地程序中,可以得到类IPackageInstallObserver.calss,通过它反射出installPackage()方法。

Android系统Root与静默安装(安卓手机root后更流畅吗)

但在invoke调用该方法时,却无法得到IPackageInstallObserver的实例对象,IPackageInstallObserver的实例对象必须通过IPackageInstallObserver.Stub.asInterface(Binder binder)方式得到,无法得到与其绑定的Binder对象,因而无法执行反射出来的方法。

其次,应为是系统API,需要声明安装应用的权限:android.permission.INSTALL_PACKAGES。当时这类比较敏感的权限不是说声明系统就会给予的,还需要我们的安装包APK文件拥有与系统相同的签名,才能完成静默安装操作。这个方式的静默安装,对于广泛的推广应用是不现实的。

使用pm命令安装

pm 命令是Android里面PackageManage的命令行,用于安装包的操作。而系统也主要是提供我们在adb shell中进行使用pm命令,因此pm命令也存在与“/system”目录下,当然,拥有了Root权限后的应用程序就能够使用它进行静默安装了。

具体的操作代码如下所示:

pm命令源码目录: /frameworks/base/cmds/pm/src/com/android/commands/pm/Pm.java,

我们查看其源码,如下:

发现其实pm命令也是调用了PackageManager中的安装方法,只不过是一个验证和加密的方法installPackageWithVerificationAndEncryption进行安装的。即,它的安装过程与PackageInstaller是一样的。

而我们安装应用APP的时候,可以是自己的APK安装包文件存储在两个地方“data/app”与“system/app”下,静默安装的时候一般情况都是选择将自己的APK文件push到“system/app”目录下, 因为此目录是系统应用的目录,在此目录下的恶意应用,进行偷发短信、窃取邮件等操作,用户是很难察觉的。

删除预装

大部分的普通用户Root手机的主要目的就是删除系统预先安装的应用程序,要删除它们,我们首先要知道什么是预装应用,它们存放在哪里。或者我们换一个思路来看看,系统制造商将应用程序的APK文件存放在哪里才能变为系统的应用。

1. 系统默认的常规应用存放处

Android系统的捆绑应用软件基本安装在“/system/app”文件夹下,删除下面的对应的了第三方软件APK文件即可完美卸载。我们知道“/system”是系统的目录,对此目录进行操作需要Root权限,所以我们删除预装应用需要Root手机。每个系统程序基本上都是成对的,对应的删除掉后缀分别是.apk 和.odex(优化过的dex文件)文件即可删除预装应用。

如下图,使用了Root Explorer查看“/system/app”目录。则能够看到了系统中的所有的系统内置应用程序。

2. 修改系统引导的预装

对于存放Apk文件到”/system/app“目录下已经是很普通的预装方式了,这就导致了,预装应用很容易就被卸载掉。恶意的手机ROM就会想着更加恶心的方法来留住预装应用,比如修改系统ROM的逻辑,让系统在开机的时候检测一下自己的预装是否完整然后重新安装。那么,当然系统预装应用的安装文件也会在另一个保存一份。

这类的预装应用,又称为“开机静默安装”,常用的方式就是修改init.rc,添加一个开机执行的脚本,在脚本中调用一个Service使用pm install命令批量安装应用。 如,自顶一个一个init.local.rc内容如下:

在系统的init.rc脚本中调用init.local.rc如下:

此方式做预装用户在使用Root后删除掉/system/app下的已安装应用后,系统重启后又会执行启动脚本自动重装预装应用回来,且预装apk文件的存放目录根据不同的系统ROM还不一样,是极为流氓的推广策略。当然,我们通过分析已经看到了,如果要删除此类的预装应用,只需要全盘的扫描apk文件再进行删除即可。

/* * @author zhoushengtao(周圣韬) * @since 年1月日 上午:: * @weixin stchou_zst * @blog * @交流学习QQ群: * @私人QQ: /

[置顶] android UI(内容)更新的方法之handler、runOnUiThread() 摘要:在android应用程序开发中,特别是在使用多线程开发程序时,经常会需要在其他线程完成某些工作后更新UI。而众所周知,更新UI的功能必须放在UI主

Android系统上的键盘监控 键盘监控键盘监控,顾名思义是在应用软件在运行时,用户在设备上的一举一动都将被详细记录下来,更多的实在使用者毫无觉察的情况下将屏幕内容

Android中 view的双缓冲技术 view实现双缓冲技术当要绘制的数据量比较大,绘图时间比较长时,重复绘图会出现闪烁现象,引起闪烁现象的主要原因是视觉反差比较大。使用双缓冲

标签: 安卓手机root后更流畅吗

本文链接地址:https://www.jiuchutong.com/biancheng/376587.html 转载请保留说明!

上一篇:App启动界面效果设计(app启动页动画效果)

下一篇:[置顶] android UI(内容)更新的方法之handler、runOnUiThread()([置顶]游戏名:chivalry2)

  • 施工单位缴税实例
  • 外贸企业出口货物
  • 个人所得税查询工资与实际工资不符是为何
  • 增值税是价内税,消费者是税款的最终负担者( ) A对 B错
  • 广告制作要交文化部门吗
  • 百旺普通发票作废流程
  • 购进灭火器材怎么入账
  • 税票百分之十三怎么算
  • 新办商贸企业是国企吗
  • 接受劳务是进项还是销项
  • 国际货运代理0税率和免税
  • 销售票据和发票的区别是什么?
  • 流动负债是总负债吗
  • 期末账项调整的类型
  • 不按出资比例取得分红怎么纳税?
  • 解除合同补偿金需要缴纳个税吗
  • 加油充值卡有优惠吗
  • 2018年出口退税税率
  • 通讯费补贴如何领取
  • 已开发票做账联放哪里
  • 公司房产税如何征收税率
  • 6月 全新windows
  • 回收站右键菜单修改
  • 购买所有物品都是可以退货吗
  • 应收账款周转率越大越好还是越小越好
  • 付款给对方怎么做分录
  • 32位升级64位系统教程
  • 高新技术企业所得税优惠政策最新2022
  • 先开票后收款的发票怎么备注
  • 如何查看电脑型号信息
  • 企业收到对外投资收益交所得税吗
  • 同一控制下控股合并在合并日合并报表编报正确的有
  • cookies方法
  • 缴纳水利建设基金计入什么科目
  • 视觉slam ba
  • php判断用户是否登录
  • 发票章与开票方名称不一致是什么情况
  • 物权变动的原因是什么
  • SQLite教程(十四):C语言编程实例代码(2)
  • 财务上大写数字420.1怎么写
  • 持有至到期投资属于流动资产吗
  • 普票要盖发票的章子吗
  • 溢价收购公司会计处理
  • 国际货运代理一个月大概有多少收入
  • 个体工商户属于个人还是企业
  • 税控盘维护费全额抵扣分录
  • 筹建期间业务招待费的财税处理规定
  • 归纳投入外币资产怎么写
  • 合作社财政补助平均量化
  • 企业所得税汇算清缴操作流程
  • 外贸出口转内销会计分录
  • 机票行程单如何看座位等级
  • 忘记报关可以补报吗
  • 固定资产净残值最后怎么处理
  • 生物性资产折旧处理
  • sqlserver数据库事物日志已满
  • mysql8.0远程连接
  • sql server触发器的编写与使用
  • u盘装win8系统教程图解
  • win8 资源管理器
  • win8语言栏不见了 怎么调出来
  • Win10 Mobile 10572快速配置更新推送 Win10 Mobile 10572升级体验
  • win1020h2正式版
  • mac系统教程
  • win7系统怎么查看wifi密码
  • 升级win10系统后电脑变卡处理方法
  • win10系统中断怎么解除
  • opengl缓冲区
  • android viewpager
  • linux系统tomcat启动
  • 怎么改jdk路径
  • nodejs实战
  • js插件大全
  • javascript怎么用
  • node react vue
  • javascript入门教学
  • JQUERY的AJAX请求缓存里的数据问题处理
  • 河南税务报到
  • 三证合一后还有税务登记证吗?
  • 小店区税务大厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设