Android应用保活方案的另类出路,让你应用长生不老(1)

那么我们可以找到这个按钮,然后查看指定逻辑,我们这里可以通过UI工具找到id,然后去搜索,但是到哪搜索呢?

其实这里有个知识点就是系统中的界面以及系统应用一般都在**/system/priv-app/这个目录下,我们可以直接进入这个目录查找指定应用,这里需要注意的是我们可能很容易认为应该是桌面应用也就是MiuiHome.apk** 这个应用,但是通过反编译查看却找不到我们想要的东西,然后就发现了还有一个系统UI应用MiuiSystemUI,然后在弄出来反编译就发现了这个地方:

我们通过思考一下,我们看到的是最近正在使用的应用,那么我们想系统应该出现这个界面肯定也需要调用这个方法获取当前正在运行的应用:getRecentTasks ,我们可以全局搜索这个信息,看到的确有一些内容,通过排查发现有一个重要的类:RecentTasksManager ,然后到这个类查看信息:

我们点击进入查看方法:

这里看到内部会用对应用做分类,后面的杀死的方式也是不一样的:

这里看到杀死进程的方法:

这里看到有很多哦判断,如果在这个判断内就走系统的强杀,也就是上面说的MarsDaemon框架是可以保活的,如果不在这个判断内就走了系统最终杀死方案,这个是最强的杀进程方案,目前没有好的保活方案可以解决。

我们在来看一下那个判断,可以看到在之前的分类中如果强杀列表为空,或者是系统应用,或者是应用开启了自启动权限就不会强杀了,通过后面的一个判断的方法名我们可以猜测这个是自启动权限功能,可以去系统代码查看,这时候就需要去**/system/framework/framework.jar** 中查找系统类了:

这里我们把系统类的framework.jar 弄出来解压出dex直接打开即可:

看到这里是调用系统的APP_OPS 服务,所以我们去我们的项目中用反射的方式调用这个方法:

然后运行项目,报了权限错误:

我们在AndroidManifest.xml 中添加这个权限即可,然后运行可惜没什么效果。所以就换个思路,既然要开启应用的自启动权限,对于小米手机我们知道在小米安全应用中管理的,我们同样去**/system/priv-app/** 这个目录下找到这个应用:

页面如下:

然后弄出来apk之后用Jadx打开apk查看,同时我们可以用adb shell dumpsys activity top 命令查看当前页面的activity信息:

然后去搜索这个类,直接看到那个开启的开关逻辑代码:

逐个排查找到这个类中:

继续往里面看:

这里看到了重要信息就是写入CP了,有了uri信息,看到这里写入三个字段信息,查看他的uri信息:

到这里就简单了,我们在应用中直接利用uri信息写入值,当然需要把我们的应用自启动开启:

然后运行看效果:

有报错信息,提示缺少权限我们添加即可,运行看看效果:

三、结果出乎意料

到这里我们就操作成功了,这里就结束了吗?
显然不是。因为这里有一个很大的问题,细心的同学发现了,如果这个真的不用root权限就这么简单的开启那小米系统也太不安全了吧,但是我手中的这台小米4的确是可以的,但是用了其他的小米手机发现确还是提示权限不足,其实用我们的脚指头想一想也是正常的,这里肯定有问题,如果这一点都可以做到的话,那么小米系统真的是太不安全了,那为什么我的手机可以呢?因为我的手机当时自己刷了网上第三方的小米ROM,这个ROM应该是被改过了,只要是有权限验证的地方都可以免root过掉。那么这里我就被我的手机耍了一次,而你们却被我耍了一次。

四、保活的另类出路

我们知道现在很多应用都想开启自启动权限,这样应用就可以长生不老了,不过通过这一次分析小米系统源码可以发现只要有了自启动权限之后应用首先是不会杀死,然后也可以重启,真的是完完全全的长生不老了,那么其实权限这个事情我们肯定是做不了了。

学习分享,共勉

Android高级架构师进阶之路

题外话,我在阿里工作多年,深知技术改革和创新的方向,Android开发以其美观、快速、高效、开放等优势迅速俘获人心,但很多Android兴趣爱好者所需的进阶学习资料确实不太系统,完整。今天我把我搜集和整理的这份学习资料分享给有需要的人

  • Android进阶知识体系学习脑图

  • Android进阶高级工程师学习全套手册

  • 对标Android阿里P7,年薪50w+学习视频

  • 大厂内部Android高频面试题,以及面试经历

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618156601)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值