1. 程式人生 > >android 下,su chomd 666/777 root許可權程式碼方式申請

android 下,su chomd 666/777 root許可權程式碼方式申請

檔案/目錄許可權設定命令:chmod 

這是Linux系統管理員最常用到的命令之一,它用於改變檔案或目錄的訪問許可權。該命令有兩種用法: 

用包含字母和操作符表示式的文字設定法 

其語法格式為:chmod [who] [opt] [mode] 檔案/目錄名 

其中who表示物件,是以下字母中的一個或組合: 

u:表示檔案所有者 
g:表示同組使用者 
o:表示其它使用者 
a:表示所有使用者 
opt則是代表操作,可以為: 
+:新增某個許可權 
-:取消某個許可權 
=:賦予給定的許可權,並取消原有的許可權 
而mode則代表權限: 
r:可讀 
w:可寫 
x:可執行 

例如:為同組使用者增加對檔案a.txt的讀寫許可權: 

chmod g+rw a.txt 

用數字設定法 

而數字設定法則更為簡單:chmod [mode] 檔名 

關鍵是mode的取值,一開始許多初學者會被搞糊塗,其實很簡單
,我們將rwx看成二進位制數,如果有則有1表示,沒有則有0表示,那麼rwx r-x r- -則可以表示成為: 111 101 100 再將其每三位轉換成為一個十進位制數,就是754。 例如,我們想讓a.txt這個檔案的許可權為: 自己 同組使用者 其他使用者 可讀 是 是 是 可寫 是 是 可執行 那麼,我們先根據上表得到許可權串為:rw-rw-r--,那麼轉換成二進位制數就是110 110 100,再每三位轉換成為一個十進位制數,就得到664,因此我 們執行命令: chmod 664 a.txt
// 以上參考自:http://blog.csdn.net/love_xsq/article/details/50134961
也就是說 chmod 後面的三個十進位制的數字 實際上是三個命令轉換得到的二進位制。
相信能夠讀到這篇部落格的朋友都是在獲取root許可權或者獲取讀寫許可權遇到了問題。下面給出獲取某個檔案的root許可權的程式碼部分:
Process su = Runtime.getRuntime().exec("/system/xbin/su"); // 如果寫bin成功也可以的,su在這兩個資料夾中存在。bin目錄下是軟啥的,忘記了在其他一些技術部落格上看到的
String cmd = "chmod 666 " + yourFile.getAbsolutePath() + "\n" + "exit\n"; // 一定要注意空格,及\n等,不要落下
su.getOutputStream().write(cmd.getBytes()); // 有了這句才是獲取su許可權
模擬器我不知道,真機獲取的情況是這樣的:
4.2.1是沒有問題的,會彈出申請root許可權的對話方塊。而4.3以上系統的手機是不會出現任何提示的,也就是說API18及以上是不會輕易的讓你得到root許可權的。怎麼辦呢?
請跳轉這位部落格大牛http://blog.csdn.net/kangear/article/details/51872653