Android 进程常驻(5)----开机广播的简单守护以及总结
这是一个轻量级的库,配置几行代码。就能够实如今android上实现进程常驻,也就是在系统强杀下,以及360获取root权限下。clean master获取root权限下都无法杀死进程
支持系统2.3到6.0
支持大部分设备,包含三星。华为。oppo,nexus。魅族等等
能够简单对开机广播进行保护
github地址:
https://github.com/Marswin/MarsDaemon
原理分析:
Android 进程常驻(0)----MarsDaemon使用说明
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在project里面有这样一个类
/MarsDaemon/LibMarsdaemon/src/main/java/com/marswin89/marsdaemon/PackageUtils
是的,由于是我们自己的组件。所以设置他不须要不论什么权限,仅仅须要在有些时机顺便重置一下开机广播的状态就好(比方每次进程重新启动的时候,网络变化的时候,开关屏的时候)。另一个就是注冊一个关机广播,每次关机的时候重置一下开机广播的状态。从而达到保护开机广播的作用。
在CleanMaster ,给了root权限之后,禁用开机广播,然后重新启动手机,开机广播失效;然后加上我的这种方法,再禁用掉,开机广播ok。
非常easy的一个小tip
Android 进程常驻(5)----开机广播的简单守护以及总结的更多相关文章
- Android 进程常驻----开机广播的简单守护以及总结
		
这是一个轻量级的库,配置几行代码,就可以实现在Android上实现进程常驻,也就是在系统强杀下,以及360获取root权限下,clean master获取root权限下都无法杀死进程 支持系统2.3到 ...
 - Android 进程常驻(使用第三方MarsDaemon)(虽然不可用,但是还是保留下。)
		
github地址: https://github.com/Marswin/MarsDaemon 原理分析: Android 进程常驻(0)----MarsDaemon使用说明 Android 进程常驻 ...
 - Android 进程常驻、进程守护、进程保活技术的总结
		
转载自:http://blog.csdn.net/marswin89/article/details/50917098 这是一个轻量级的库,配置几行代码,就可以实现在Android上实现进程常驻,也就 ...
 - Android 进程常驻(0)----MarsDaemon使用说明
		
版权声明:本文为博主原创文章,未经博主允许不得转载. 这是一个轻量级的库,配置几行代码,就可以实现在Android上实现进程常驻,也就是在系统强杀下,以及360获取root权限下,clean mast ...
 - Android 进程常驻----native保活5.0以上方案推演过程以及代码
		
正文: 上一篇我们通过父子进程间建立双管道,来监听进程死掉,经过测试,无耗电问题,无内存消耗问题,可以在设置中force close下成功拉起,也可以在获取到root权限的360/cleanmaste ...
 - Android 进程常驻----native保活5.0以下方案推演过程以及代码
		
正文: 今天继续昨天,一鼓作气,争取这个礼拜全部写完. 上一篇文章留了一个别人的github链接,他里面的native保活实现方案也是大多数公司采用的方案. 我们先来讲一下他的方案. 他是首先开启一个 ...
 - Android进程保活
		
Android进程回收机制 Low Memory Killer原理 微信团队原创分享:Android版微信后台保活实战分享(网络保活篇) 微信团队原创分享:Android版微信后台保活实战分享(进程保 ...
 - 【Android】Android 4.0 无法接收开机广播的问题
		
[Android]Android 4.0 无法接收开机广播的问题 前面的文章 Android 开机广播的使用 中 已经提到Android的开机启动,但是在Android 4.0 有时可以接收到开机 ...
 - Android开机广播
		
有些时候我们常常需要某个程序开机运行.在这个时候我们就需要监听系统的开机广播,然后启动我们的程序即可. 不多说 直接上代码: public class BootReceiver extends Bro ...
 
随机推荐
- python 读取二进制文件 转为16进制输出
			
示例: #!/usr/bin/env python #encoding: utf-8 import binascii fh = open(r'C:\Temp\img\2012517165556.png ...
 - package-org.springframework.ui-interface:Model.class
			
ylbtech-package-org.springframework.ui-interface:Model.class 1.返回顶部 1. /* * Copyright 2002-2012 the ...
 - BZOJ-3732 Network 图论 最小生成树 倍增
			
题面 题意:给你N个点,M条边的无向图 (N<=15000,M<=30000)第j条边的长度为 dj (1<=dj<=1e9),然后K个询问 (1<=K<=2000 ...
 - 从实现HTML页面局部刷新到JSONP
			
也可以用iframe方法发get请求,但是目前iframe基本已经被弃用,所以此处就不介绍这个方法. 方案一:用图片造 get 请求 button.addEventListener('click', ...
 - python课程设计笔记(五) ----Resuests+BeautifulSoup (爬虫入门)
			
官方参考文档(中文版): requests:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html beautifulsou ...
 - JavaScript的switch循环
			
<html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...
 - bootstrap初用新得1
			
## 基本准备 1. 首先把相关软件窗口规划好,对于我的喜好,我喜欢把除了浏览器外的其他软件分为左右两个半屏.左边和右边很多软件之间是需要配合使用的: * 左边: scss文件,ps的guid ...
 - VFS(Virtual File System)
			
一.VFS作为内核子系统,为用户空间程序提供了文件系统相关的接口.所有实际文件系统依赖VFS共存,依靠VFS系统工作. 1.VFS提供通用文件系统接口:用户空间程序可以利用标准的UNIX文件系统调用, ...
 - Windows环境下制作MACOS X U盘安装盘
			
前两天在朋友的MAC BOOK AIR上胡乱操作时把原来安装好的双系统搞坏了,一不小心又把硬盘格式化了,导致MAC系统也没了,于是只能重新安装MACOS系统,并根据网友提供的教程,在MACOS安装OK ...
 - 如何修改wifi为家庭网络
			
一不小心手快,把新链接的 wifi 选择成“公用网络”了,使用过程中导致某些应用无法联网,那个恨呐!!! 幸好,咱们可以进行手工更改,哈哈,跟哥一起来操作: 进入”网络与共享中心界面": 选 ...