Android 进程常驻(5)----开机广播的简单守护以及总结_限量发行x的博客-程序员宅基地

技术标签: 进程常驻  Android_Application_Develop  

这是一个轻量级的库,配置几行代码,就可以实现在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


原文地址:http://blog.csdn.net/marswin89/article/details/50917409

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/f2006116/article/details/50933351

智能推荐

安装SQL Server 2017遇到“以前的某个安装需要重新引导计算机以便使更改生效”的问题_不会跳舞的monkey的博客-程序员宅基地_以前的某个安装需要重新引导计算机以便使更改生效

Microsoft ODBC Driver 13 for SQL Server – 以前的某个安装需要重新引导计算机以便使更改生效。解决方法打开Windows下的注册表;找到"计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager"路径下的 PendingFileRenameOperations 文件,然...

VS 编译nu-book/zxing-cpp,Debug下INSTALL报错setlocal_kjj941004的博客-程序员宅基地

先上错误图片因为之前遇到这个问题,参考https://blog.csdn.net/qq_28351609/article/details/84037557解决方案,我将CAMKE_INSTALL_PREFIX的值在CMAKE的Configure时修改到D盘,也用管理员权限打开的VS运行,还是出错。 我就直接看的上图框出的错误提示:>CMake Error at core/cmake_install.cmake:49 (file):> file ...

javafx安装教程 Android,如何在Android Studio中运行JavaFX并制作ImageView_weixin_39718173的博客-程序员宅基地

我有一个javafx.scene.image.Image类的接口.我必须实现它并创建ImageView.那么,如何将JavaFx添加到我的Adnroid Studio项目中以及如何在我的活动中执行ImageView或其他Image元素?User.javaimport javafx.scene.image.Image;public interface User{String getName();in...

IDEA的快捷键设置以及常用设置_kongmd的博客-程序员宅基地

1.设置为eclipse风格 idea功能确实强大,但是作为刚接触的人来说很是不习惯,特别是从eclipse转过来的,快捷键是个大问题 下面就讲讲如何把idea的快捷键设置成eclipse风格 1.进入设置,选择keymap 2.选择eclipse 3.然后copy一份(相当于,把原来的备份下来了) 4.然后选择你copy的点击应用2.设置代码提示的快捷键 ecl

基于GPT2的中文闲聊机器人/GPT2 for Chinese chitchat_红雨瓢泼的博客-程序员宅基地

基于GPT2的中文闲聊机器人/GPT2 for Chinese chitchat项目github地址:中文闲聊机器人该项目被微软DialoGPT官方仓库引用UPDATE 2019.12.17基于微软的论文DialoGPT:Large-Scale Generative Pre-training for Conversational Response Generation添加了MMI Mode...

Ubuntu18.04.1配置NVIDIA驱动(run file),cuda9.0(run file),cudnn7.3.1(deb文件) (一)_一只tobey的博客-程序员宅基地

可参考https://blog.csdn.net/lukaslong/article/details/810079422018.12.29更新NVIDIA驱动:https://www.geforce.cn/drivers搜索自己电脑的gpu版本:下面是驱动型号的一部分结果   cuda版本:https://developer.nvidia.com/cuda-toolkit-ar...

随便推点

Android RxJava: 这是一份全面的 操作符 使用汇总 (含详细实例讲解)_栀夏暖阳的博客-程序员宅基地

前言Rxjava,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。   如果还不了解RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程RxJava如此受欢迎的原因,在于其提供了丰富 & 功能强大的操作符,几乎能完成所有的功能需求 今天,我将为大家献上一份 R...

python3面向对象菜鸟教程_Python3 模块_weixin_39738755的博客-程序员宅基地

Python3 模块在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也...

最好的降噪蓝牙耳机有哪些?目前最好的降噪蓝牙耳机推荐_kissshuma的博客-程序员宅基地

耳机应该是除了手机之外陪伴你最久的一样电子产品吧?别看它个头不大,作用可不小,如果你已经想入手一款蓝牙耳机,又不知道该怎么选,看这里,我来告诉你,哪一款最适合你。一、南卡A2降噪蓝牙耳机价格:399充电方式:无线充电续航时间:6H+30H蓝牙音频格式:AAC-SBCNank南卡听名字不熟悉不要紧,重点看品质。南卡A2整个耳机仅4.1克,无限充电方便小巧,蓝牙5.2信号传输稳定,解析能力高,三频均衡,无论是接打电话、听音乐,都能表现出超高水准,尤其配有13mm超大动圈,高通3040芯片

B2B CRM服务商平台-专栏总目录(持续更新)_iOS逆向的博客-程序员宅基地

文章目录引言I、 登陆1.1 《用户协议及隐私政策》弹框1.2 登录1.3 【阅读并同意注册协议】1.4 问题分析II 、管理2.1 商户进件2.2 企业管理2.3 风险管理2.4 我的财务2.6 我的分俑III 、订单3.1 订货单3.1.1 分配终端3.2 软件订单3.3 硬件订单IV、报表4.1 商户交易汇总4.2 代理商交易汇总4.3 终端激活汇总4.4 商户终端汇总引言欢迎大家来到#公众号:iOS逆向的《B2B CRM服务商平台》专栏本文列出学习大纲,同时也可作为大家学习《B2B CRM

基于uiautomator 相关功能_ReminderFish的博客-程序员宅基地

系统uiautomator工具使用,通过uiautomator来实现监听应用的操作事件来写抢红包软件;ui自动化工具uiautomator

Android-自定义View-带边框TextView_圆号本昊的博客-程序员宅基地_安卓开发自定义边框

实际效果:代码实现:新建MyTextView 类,使其继承 TextView 类public class MyTextView extends android.support.v7.widget.AppCompatTextView { private Paint mPaint1 = null, mPaint2 = null; public MyTextVie...

推荐文章

热门文章

相关标签