日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

RootExplorer怎么样获取root权限的

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


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

?

?

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

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

大家可以用SVN把源碼下載到本地,與系統(tǒng)源碼一起編譯就可以了。編譯完成后會(huì)生成兩個(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í),就會(huì)啟動(dòng)Superuser.apk中的Activity彈出標(biāo)題為“以下程序要求授予最高權(quán)限...”的對(duì)話(huà)框,用戶(hù)同意之后,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();//獲取輸入流,可以通過(guò)它獲取SHELL的輸出。BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));BufferedReader err = new BufferedReader(new InputStreamReader(proc.getErrorStream()));//獲取輸出流,可以通過(guò)它向SHELL發(fā)送命令。PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(proc.getOutputStream())), true);out.println("pwd");out.println("su root");//執(zhí)行這一句時(shí)會(huì)彈出對(duì)話(huà)框(以下程序要求授予最高權(quán)限...),要求用戶(hù)確認(rèn)。out.println("cd /data/data");//這個(gè)目錄在系統(tǒng)中要求有root權(quán)限才可以訪(fǎng)問(wèn)的。out.println("ls -l");//這個(gè)命令如果能列出當(dāng)前安裝的APK的數(shù)據(jù)文件存放目錄,就說(shuō)明我們有了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)的所有目錄都可以操作了。

?

有一些問(wèn)題目前還沒(méi)有找到答案:

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

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

?

?

總結(jié)

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

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