Android 进程常驻(5)----开机广播的简单守护以及总结

这是一个轻量级的库,配置几行代码,就可以实现在android上实现进程常驻,也就是在系统强杀下,以及360获取root权限下,clean master获取root权限下都无法杀死进程

支持系统2.3到6.0

支持大部分设备,包括三星,华为,oppo,nexus,魅族等等

可以简单对开机广播进行保护

github地址:

https://github.com/Marswin/MarsDaemon

原理分析:

Android 进程常驻(0)----MarsDaemon使用说明

Android 进程常驻(1)----开篇

Android 进程常驻(2)----细数利用android系统机制的保活手段

Android 进程常驻(3)----native保活5.0以下方案推演过程以及代码详述

Android 进程常驻(4)----native保活5.0以上方案推演过程以及代码详述

Android 进程常驻(5)----开机广播的简单守护以及总结

正文:

终于一口气写完了,这是去年在一个月搞的成果,也算是对自己有了一个交代。

其实保活就是两个要点:

1、怎样监听到进程挂掉

2、怎样把进程拉起来

把这两个点都解决,问题就解决了。

大家把我之前的文章都看完,会发现这两个点上都有好多种策略,那么在不同的手机上,两个点的不同策略就有多种组合方式,也也是我适配手机的主要手段。

当时我适配测试的手机有

还要说一句,有的手机会在你系统设置force close的时候,显示已经杀掉了进程,但是其实没有真的杀掉,比如魅族。。。

可以shell进去用命令 ps | grep mars来查看所有MarsDaemon的进程

如果有root权限,可以使用kill -9命令来杀进程,但是效果没有force close和360\cm 杀的好

最后要说一下,进程常驻是保证不死,但是首先要活一次才行
换句话说好多人问我是不是要开机的时候启动一次,怎么启动
答案肯定是开机广播
但是现在有第三方软件获取root权限之后可以把我们的开机广播给禁掉,那么MarsDaemon的保护活也就没有意义了

那么360/cm是怎么禁用我们的广播的呢?

我们站在他的角度来思考这个问题:

1、他阻止系统发出开机广播,开机之后立刻注入SystemService

2、系统发出广播,他让我们收不到

3、我们收到广播之后,他把我们return掉

4、他没能return掉我们,但是立马杀掉我们

ok,第一个太难,如果他能做到,我们没有root所以无解。

第四个我们没有威胁,因为MarsDaemon就是用来反被杀的

第三个他要注入我们,可以加壳之类防御

那么第二个他是怎么做的呢? 系统方法:

没错,他可以将一个组件设置为enable或者disable,如果把我们的开机广播设置为disable,那么无疑是用不了。

可是这个他们调用不了的,需要系统签名才行。

但是他们可以用android shell中的pms 的pm命令达到同样的效果:

只要有root权限就可以使用这个pm disable componentsName命令。第三方安全软件,我们已经默认他们有root权限了,那么我们该怎么办呢?

MarsDaemon在工程里面有这样一个类
/MarsDaemon/LibMarsdaemon/src/main/java/com/marswin89/marsdaemon/PackageUtils

是的,因为是我们自己的组件,所以设置他不需要任何权限,只需要在有些时机顺便重置一下开机广播的状态就好(比如每次进程重启的时候,网络变化的时候,开关屏的时候),还有一个就是注册一个关机广播,每次关机的时候重置一下开机广播的状态,从而达到保护开机广播的作用。

在CleanMaster ,给了root权限之后,禁用开机广播,然后重启手机,开机广播失效;然后加上我的这个方法,再禁用掉,开机广播ok!

很简单的一个小tip

Android 系统(270)---开机广播的简单守护以及总结相关推荐

  1. Android 进程常驻(5)----开机广播的简单守护以及总结

    这是一个轻量级的库,配置几行代码.就能够实如今android上实现进程常驻,也就是在系统强杀下,以及360获取root权限下.clean master获取root权限下都无法杀死进程 支持系统2.3到 ...

  2. Android O Android P 自定义开机广播

    背景 一般来说,我们都是用的监听android.intent.action.BOOT_COMPLETED. 但凡稍有些经验的开发者都知道,这个广播很慢,非常慢.因为它是一个有序广播,根据优先级来的,而 ...

  3. Android系统的开机画面显示过程分析(13)

          WindowManagerService类的成员函数performEnableScreen的实现如下所示: public class WindowManagerService extend ...

  4. Android 系统(271)---进程、守护进程的实现及进程拉活

    进程.守护进程的实现及进程拉活 1,概念 1)守护进程(Daemon) 是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某些任务.android中守护进程的实现主要由Service来完成. ...

  5. 安卓linux开机画面,Android系统的开机画面显示过程分析(1)

    好几个月都没有更新过博客了,从今天开始,老罗将尝试对Android系统的UI实现作一个系统的分析,也算是落实之前所作出的承诺.提到Android系统的UI,我们最先接触到的便是系统在启动过程中所出现的 ...

  6. Android系统的开机画面显示过程分析

    提到Android系统的UI,我们最先接触到的便是系统在启动过程中所出现的画面了.Android系统在启动的过程中,最多可以出现三个画面,每一个画面都用来描述一个不同的启动阶段.本文将详细分析这三个开 ...

  7. Android系统手机开机画面各个阶段代码执行流程分析(Part1)

    提到Android系统的UI,我们最先接触到的便是系统在启动过程中所出现的画面了.Android系统在启动的过程中,最多可以出现三个画面,每一个画面都用来描述一个不同的启动阶段.本文将详细分析这三个开 ...

  8. Android 监听开机广播实现应用开机自启动

    应用开机自启动的原理是监听开机广播android.intent.action.BOOT_COMPLETED,然后在BroadcastReceiver中打开应用 实现BroadcastReceiver ...

  9. android系统休眠发广播,Android - BroadcastReceiver

    BroadcastReceiver BroadcastReceiver,广播接收者,用来接收系统和应用的广播,并做出相应的处理,如电量过低时提示用户充电等: BroadcastReceiver 是 A ...

最新文章

  1. java为窗体添加滚动条
  2. 计算机网络:浅谈HTTPS和加密
  3. Leetcode 169.多数元素 (每日一题 20210715)
  4. TS基础2(泛型、枚举、元组)-学习笔记
  5. 图论--二分图最佳完美匹配(KM模板)
  6. 从全职高手开始的系统_动画全职高手第二季热血回归,腾讯视频的国漫IP全链路开发之道...
  7. C语言 time函数 开销,C语言: 函数调用的开销
  8. 还原特别慢_正手攻球最容易忽略的一步——还原
  9. 查看Oracle实例的EM端口
  10. ConfigParser.InterpolationSyntaxError: ‘%‘ must be followed by ‘%‘ or ‘(‘, found: “%‘“
  11. 大数据入门:Hadoop大数据开发核心讲解
  12. JAVA的三大框架是什么?
  13. 雅萌坚持临床功效数据验证,美容仪行业步入“功效”2.0时代
  14. 两种典型的解空间树:子集树和排列树
  15. 绿色计算产业峰会,易捷行云新一代ARM云平台推动绿色计算产业发展
  16. 入手评测 联想小新PRO14,华硕灵耀14s和联想YOGA14s选哪个
  17. 【定量分析、量化金融与统计学】多元回归模型与回归推理
  18. tif文件在html打开,电脑里tif文件怎么打开?你学会了吗
  19. 一个模仿微信群聊的H5页面
  20. 兴趣标签体系告诉我,闲鱼的95后是这样的

热门文章

  1. 串口发送和接受字符串,AD转换多通道读取
  2. varnish关于Grace mode和Saint mode这两中模式配置
  3. 编程函数c语言,C语言编程(练习1:函数 )
  4. 如何查看linux服务器的白名单,linux服务器iptables防火墙白名单添加方式
  5. java mail 503_邮件配置报503错误,发送失败
  6. Mysql数据库-面试题
  7. Integer与int的比较与区别
  8. spring学习-ApplicationContext-spring上下文深入理解
  9. Spark Scala当中reduceByKey的用法
  10. HIT Software Construction Lab6引发出来对锁的问题的探究