亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android Root設(shè)備中的su權(quán)限獲取和使用詳解

 更新時(shí)間:2018年01月26日 08:56:30   作者:李泰愚  
本篇文章主要介紹了Android Root設(shè)備中的su權(quán)限獲取和使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

ROOT權(quán)限簡介:

ROOT權(quán)限是Linux內(nèi)核中的最高權(quán)限,如果你的身份是ROOT,那么你就具有了ROOT權(quán)限。有了最高權(quán)限,你就可以為所欲為,換句話說,如果惡意程序獲取到了ROOT權(quán)限,那么就可以肆意地破壞你的手機(jī),獲取的隱私...所以廠商一般在生產(chǎn)手機(jī)的時(shí)候,不會(huì)提供給用戶ROOT權(quán)限,官方宣稱是為了保護(hù)用戶手機(jī)的安全,然后裝了一堆開機(jī)自動(dòng)啟動(dòng),而用戶這輩子也用不到也卸載不了垃圾軟件(相信使用安卓的同學(xué)們都懂我的意思),而蘋果所說的越獄,也就是獲取ROOT權(quán)限。

為什么需要獲取ROOT權(quán)限?

蘋果用戶獲取ROOT權(quán)限,是為了可以免費(fèi)安裝各種軟件,以及為了獲取更加靈活的操作體驗(yàn),蘋果不會(huì)安裝一堆惡心的軟件;而安卓普通用戶獲取ROOT權(quán)限,最大的目的就是為了卸載這些惡心的自帶軟件,安卓極客用戶則是為了各種折騰安卓手機(jī),安卓開發(fā)人員是為了得到日志文件,分析BUG。

我們開機(jī)之后,使用手機(jī)的身份就是一個(gè)普通用戶(user),如果執(zhí)行su,那么就可以直接切換到ROOT身份。就像仙劍奇?zhèn)b傳三里面的景天,是個(gè)凡人,法力有限,但是大家都知道,他的前世是飛蓬將軍,法力高強(qiáng),天界無人能敵,只有魔界至尊重樓可以與他一較高下,當(dāng)他們來到天庭的時(shí)候,玉帝施法,讓景天直接切換成飛蓬將軍,于是他就有了飛蓬將軍的記憶和法力,與重樓又一次大戰(zhàn)。su就是這樣一個(gè)神奇的命令。

高通平臺(tái)上,su的相關(guān)代碼位于: LINUX/android/system/extras/su/su.c中

Android開發(fā)中,偶有會(huì)遇到對(duì)一些定制設(shè)備的開發(fā),一般這種設(shè)備都會(huì)有root權(quán)限,開發(fā)中也會(huì)用到root權(quán)限去做一些操作。

比如安裝操作,普通的Android手機(jī)安裝apk時(shí)都會(huì)跳出安裝的界面,但用到root權(quán)限時(shí),這個(gè)可以跳過,操作如下:

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)上看到過一個(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();
  }
}

這里通過參數(shù)傳入命令行,在方法體中執(zhí)行。至于具體的命令行,則是需要的時(shí)候去找對(duì)應(yīng)的命令就好了。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論