Android Root設(shè)備中的su權(quán)限獲取和使用詳解
ROOT權(quán)限簡(jiǎn)介:
ROOT權(quán)限是Linux內(nèi)核中的最高權(quán)限,如果你的身份是ROOT,那么你就具有了ROOT權(quán)限。有了最高權(quán)限,你就可以為所欲為,換句話說(shuō),如果惡意程序獲取到了ROOT權(quán)限,那么就可以肆意地破壞你的手機(jī),獲取的隱私...所以廠商一般在生產(chǎn)手機(jī)的時(shí)候,不會(huì)提供給用戶ROOT權(quán)限,官方宣稱是為了保護(hù)用戶手機(jī)的安全,然后裝了一堆開(kāi)機(jī)自動(dòng)啟動(dòng),而用戶這輩子也用不到也卸載不了垃圾軟件(相信使用安卓的同學(xué)們都懂我的意思),而蘋(píng)果所說(shuō)的越獄,也就是獲取ROOT權(quán)限。
為什么需要獲取ROOT權(quán)限?
蘋(píng)果用戶獲取ROOT權(quán)限,是為了可以免費(fèi)安裝各種軟件,以及為了獲取更加靈活的操作體驗(yàn),蘋(píng)果不會(huì)安裝一堆惡心的軟件;而安卓普通用戶獲取ROOT權(quán)限,最大的目的就是為了卸載這些惡心的自帶軟件,安卓極客用戶則是為了各種折騰安卓手機(jī),安卓開(kāi)發(fā)人員是為了得到日志文件,分析BUG。
我們開(kāi)機(jī)之后,使用手機(jī)的身份就是一個(gè)普通用戶(user),如果執(zhí)行su,那么就可以直接切換到ROOT身份。就像仙劍奇?zhèn)b傳三里面的景天,是個(gè)凡人,法力有限,但是大家都知道,他的前世是飛蓬將軍,法力高強(qiáng),天界無(wú)人能敵,只有魔界至尊重樓可以與他一較高下,當(dāng)他們來(lái)到天庭的時(shí)候,玉帝施法,讓景天直接切換成飛蓬將軍,于是他就有了飛蓬將軍的記憶和法力,與重樓又一次大戰(zhàn)。su就是這樣一個(gè)神奇的命令。
高通平臺(tái)上,su的相關(guān)代碼位于: LINUX/android/system/extras/su/su.c中
Android開(kāi)發(fā)中,偶有會(huì)遇到對(duì)一些定制設(shè)備的開(kāi)發(fā),一般這種設(shè)備都會(huì)有root權(quán)限,開(kāi)發(fā)中也會(huì)用到root權(quán)限去做一些操作。
比如安裝操作,普通的Android手機(jī)安裝apk時(shí)都會(huì)跳出安裝的界面,但用到root權(quán)限時(shí),這個(gè)可以跳過(guò),操作如下:
Process process = Runtime.getRuntime().exec("su");
OutputStream out = process.getOutputStream();
out.write((("pm install -r " + path) + "\n").getBytes());
這里用到Process去獲取su權(quán)限,然后執(zhí)行adb的安裝指令。要注意的是這些操作需要再try-catch代碼塊下。
另外之前在網(wǎng)上看到過(guò)一個(gè)方法去執(zhí)行命令行:
public static void execShell(String cmd){
try {
Process p=Runtime.getRuntime().exec(new String[]{"su","-c",cmd});
BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
String readLine=br.readLine();
while(readLine!=null){
System.out.println(readLine);
readLine=br.readLine();
}
if(br!=null){
br.close();
}
p.destroy();
p=null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
這里通過(guò)參數(shù)傳入命令行,在方法體中執(zhí)行。至于具體的命令行,則是需要的時(shí)候去找對(duì)應(yīng)的命令就好了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android 操作系統(tǒng)獲取Root權(quán)限 原理詳細(xì)解析
- Android獲取ROOT權(quán)限的實(shí)例代碼
- Android點(diǎn)亮屏幕或屏幕解鎖和鎖定以及其他相關(guān)權(quán)限實(shí)現(xiàn)代碼
- Android uses-permission權(quán)限列表中文注釋版
- Android權(quán)限操作之uses-permission詳解
- 詳解Android權(quán)限管理之Android 6.0運(yùn)行時(shí)權(quán)限及解決辦法
- Android權(quán)限控制之自定義權(quán)限
- Android中Root權(quán)限獲取的簡(jiǎn)單代碼
- Android6.0動(dòng)態(tài)申請(qǐng)權(quán)限所遇到的問(wèn)題小結(jié)
相關(guān)文章
Android基于OpenCV實(shí)現(xiàn)圖像脫色
脫色是將彩色圖像轉(zhuǎn)換為灰度圖像的過(guò)程。同時(shí),它也是數(shù)字打印,風(fēng)格化的黑白照片渲染以及許多單通道圖像處理應(yīng)用程序中的基本工具。本文講述基于OpenCV實(shí)現(xiàn)圖像脫色的步驟2021-06-06
Android開(kāi)發(fā)中實(shí)現(xiàn)應(yīng)用的前后臺(tái)切換效果
這篇文章主要介紹了Android開(kāi)發(fā)中實(shí)現(xiàn)應(yīng)用的前后臺(tái)切換效果的方法,文章最后還附帶了監(jiān)聽(tīng)程序是否進(jìn)入后臺(tái)的判斷方法,需要的朋友可以參考下2016-02-02
Android自定義控件實(shí)現(xiàn)望遠(yuǎn)鏡效果
這篇文章主要為大家詳細(xì)介紹了Android自定義控件實(shí)現(xiàn)望遠(yuǎn)鏡效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Android程序開(kāi)發(fā)之使用Design包實(shí)現(xiàn)QQ動(dòng)畫(huà)側(cè)滑效果和滑動(dòng)菜單導(dǎo)航
這篇文章主要介紹了Android程序開(kāi)發(fā)之使用Design包實(shí)現(xiàn)QQ動(dòng)畫(huà)側(cè)滑效果和滑動(dòng)菜單導(dǎo)航的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
Android IPC機(jī)制綁定Service實(shí)現(xiàn)本地通信
本文主要介紹Android IPC機(jī)制綁定Service 實(shí)現(xiàn)本地通信,通過(guò)圖解,代碼等方式給大家解釋Android IPC機(jī)制,需要參考的同學(xué)可以看一下2016-07-07
Android Studio格式化(Format)代碼快捷鍵介紹
這篇文章主要介紹了Android Studio格式化(Format)代碼快捷鍵,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
Android基于Toolbar實(shí)現(xiàn)頂部標(biāo)題欄及后退鍵
這篇文章主要介紹了Android基于Toolbar實(shí)現(xiàn)頂部標(biāo)題欄及后退鍵,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Android自定義View實(shí)現(xiàn)柱狀波形圖的繪制
柱狀波形圖是一種常見(jiàn)的圖形。一個(gè)個(gè)柱子按順序排列,構(gòu)成一個(gè)波形圖。本文將利用Android自定義View實(shí)現(xiàn)柱狀波形圖的繪制,需要的可以參考一下2022-08-08

