日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

RootExplorer怎么样获取root权限的

發(fā)布時(shí)間:2024/1/1 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RootExplorer怎么样获取root权限的 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


Android系統(tǒng)上面有名的RootExplorer很強(qiáng)大,可以操作任何目錄下的文件,包括像/data/data這樣需要root權(quán)限才能訪問的地方。它是怎么樣做到的呢?

?

?

這里要先提一個(gè)開源項(xiàng)目,地址是:

http://code.google.com/p/superuser/

大家可以用SVN把源碼下載到本地,與系統(tǒng)源碼一起編譯就可以了。編譯完成后會生成兩個(gè)文件,一個(gè)是二進(jìn)制可執(zhí)行文件su,另一個(gè)是Superuser.apk。把su復(fù)制到系統(tǒng)的/system/bin目錄,再把Superuser.apk復(fù)制到系統(tǒng)的/system/app目錄。

這樣,就可以用下面的代碼執(zhí)行su命令時(shí),就會啟動(dòng)Superuser.apk中的Activity彈出標(biāo)題為“以下程序要求授予最高權(quán)限...”的對話框,用戶同意之后,APK就有ROOT權(quán)限了。

?

?

下面看看APK里面的代碼。

?

ProcessBuilder pb = new ProcessBuilder("/system/bin/sh"); pb.directory(new File("/"));//設(shè)置shell的當(dāng)前目錄。 try {Process proc = pb.start();//獲取輸入流,可以通過它獲取SHELL的輸出。BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));BufferedReader err = new BufferedReader(new InputStreamReader(proc.getErrorStream()));//獲取輸出流,可以通過它向SHELL發(fā)送命令。PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())), true);out.println("pwd");out.println("su root");//執(zhí)行這一句時(shí)會彈出對話框(以下程序要求授予最高權(quán)限...),要求用戶確認(rèn)。out.println("cd /data/data");//這個(gè)目錄在系統(tǒng)中要求有root權(quán)限才可以訪問的。out.println("ls -l");//這個(gè)命令如果能列出當(dāng)前安裝的APK的數(shù)據(jù)文件存放目錄,就說明我們有了ROOT權(quán)限。out.println("exit");// proc.waitFor();String line;while ((line = in.readLine()) != null) {System.out.println(line);}while ((line = err.readLine()) != null) {System.out.println(line);}in.close();out.close();proc.destroy(); } catch (Exception e) {System.out.println("exception:" + e); }?

?

有了root權(quán)限,再結(jié)合ls,cp,mv等命令,整個(gè)系統(tǒng)的所有目錄都可以操作了。

?

有一些問題目前還沒有找到答案:

如果我用ADB從Ubuntu上面執(zhí)行su root,用戶在彈出的對話框上選同意的話,命令會很快返回,接下面提示符就變成#了。

但是,我用代碼在APK里面測試的時(shí)候,只是偶爾會成功,發(fā)現(xiàn)大部分時(shí)候會卡死在out.println("su root");這一句上。即,用戶在對話框上面選同意后程序沒有響應(yīng),DDMS也看不到輸出。再等上一會兒,程序無響應(yīng)需要強(qiáng)制關(guān)閉的對話框就出來了。這個(gè)項(xiàng)目還是不完善的地方,不過思路真的不錯(cuò)。

?

?

總結(jié)

以上是生活随笔為你收集整理的RootExplorer怎么样获取root权限的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。