本帖最后由 小鳥(niǎo)子 于 2015-9-6 17:59 編輯
電視里自啟動(dòng)軟件太多了,我呢想禁止掉一些,但是悲催的發(fā)現(xiàn)我的機(jī)子沒(méi)有ROOT,如下圖所示:
自啟動(dòng).png (262.8 KB, 下載次數(shù): 24)
下載附件
保存到相冊(cè)
2015-9-6 16:42 上傳
所以,問(wèn)題來(lái)了當(dāng)貝市場(chǎng)是怎么知道我的機(jī)子沒(méi)有ROOT的呢?
網(wǎng)上查了一些資料,我才發(fā)現(xiàn)原來(lái)其中的玄機(jī):
首先android系統(tǒng)是以linux為內(nèi)核的,而用戶(hù)在linux系統(tǒng)通過(guò)su文件(具體里面是啥咱不懂)來(lái)?yè)碛邢到y(tǒng)的最高權(quán)限,所以andorid上也可以通過(guò)su來(lái)獲得root權(quán)限。
因此Root的原理其實(shí)就是把su文件放到/system/bin/目錄下,把Superuser.apk (起到一個(gè)管理權(quán)限的作用)放到system/app下面,然后設(shè)置下su文件可以讓任意用戶(hù)可運(yùn)行,也就是有ROOT權(quán)限啦。
當(dāng)然執(zhí)行上面幾步動(dòng)作也是需要root權(quán)限的,也就是需要root權(quán)限才能去獲得root權(quán)限,具體怎么跳出這個(gè)死循環(huán)來(lái)獲得真正的root權(quán)限我們以后再說(shuō)。
上面都搞定了以后,我們的當(dāng)貝市場(chǎng)就開(kāi)始發(fā)功了:
當(dāng)貝市場(chǎng)會(huì)檢測(cè)/system/bin/目錄下面是不是有su這個(gè)文件,代碼呢是這樣的:
File su = new File("/system/bin/su"); // 檢測(cè)su文件是否存在,如果不存在則直接返回 if (!su.exists()) { Toast toast = Toast.makeText(this, "Unable to find /system/bin/su.", Toast.LENGTH_LONG); toast.show(); return; }
檢測(cè)到有了su文件之后還要檢測(cè)su文件的數(shù)據(jù)大小對(duì)不對(duì): //如果大小一樣,則認(rèn)為su文件正確,直接返回了事。 if (su.length() == suStream.available()) { suStream.close(); return; // } 對(duì)的話就是說(shuō)明機(jī)子是真的root了的,然后當(dāng)貝市場(chǎng)就執(zhí)行禁止自啟動(dòng)的操作了~~
QQ截圖20150906173222.png (910.7 KB, 下載次數(shù): 20)
下載附件
保存到相冊(cè)
2015-9-6 17:32 上傳
然而上面操作都建立在root成功的基礎(chǔ)上,下面就提供一個(gè)教程,列舉了root常用的軟件,希望對(duì)大家有用哦:
電視、盒子怎么root?幾種root軟件匯總
|