Android 進程常駐(5)----開機廣播的簡單守護以及總結

這是一個輕量級的庫,配置幾行代碼,就能夠實如今android上實現進程常駐,也就是在系統強殺下,以及360獲取root權限下,clean master獲取root權限下都沒法殺死進程java

支持系統2.3到6.0android

支持大部分設備,包括三星,華爲,oppo,nexus,魅族等等git

能夠簡單對開機廣播進行保護github


github地址:shell

https://github.com/Marswin/MarsDaemon安全

原理分析:網絡

Android 進程常駐(0)----MarsDaemon使用說明
測試

Android 進程常駐(1)----開篇
spa

Android 進程常駐(2)----細數利用android系統機制的保活手段
.net

Android 進程常駐(3)----native保活5.0如下方案推演過程以及代碼詳述

Android 進程常駐(4)----native保活5.0以上方案推演過程以及代碼詳述

Android 進程常駐(5)----開機廣播的簡單守護以及總結



正文:



終於一口氣寫完了,這是去年在一個月搞的成果,也算是對本身有了一個交代。

其實保活就是兩個要點:

一、怎樣監聽到進程掛掉

二、怎樣把進程拉起來

把這兩個點都解決,問題就解決了。

你們把我以前的文章都看完,會發現這兩個點上都有好多種策略,那麼在不一樣的手機上,兩個點的不一樣策略就有多種組合方式,也也是我適配手機的主要手段。

當時我適配測試的手機有




還要說一句,有的手機會在你係統設置force close的時候,顯示已經殺掉了進程,可是其實沒有真的殺掉,好比魅族。。。

能夠shell進去用命令 ps | grep mars來查看全部MarsDaemon的進程

若是有root權限,可使用kill -9命令來殺進程,可是效果沒有force close和360\cm 殺的好



最後要說一下,進程常駐是保證不死,可是首先要活一次才行
換句話說好多人問我是否是要開機的時候啓動一次,怎麼啓動
答案確定是開機廣播
可是如今有第三方軟件獲取root權限以後能夠把咱們的開機廣播給禁掉,那麼MarsDaemon的保護活也就沒有意義了

那麼360/cm是怎麼禁用咱們的廣播的呢?

咱們站在他的角度來思考這個問題:

一、他阻止系統發出開機廣播,開機以後馬上注入SystemService

二、系統發出廣播,他讓咱們收不到

三、咱們收到廣播以後,他把咱們return掉

四、他沒能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

相關文章
相關標籤/搜索