天天看點

Android 修改檔案權限

Linux 檔案權限

1 [001] 執行權限 x

2 [010] 隻寫權限 w

4 [100] 隻讀權限 r

sudo chmod 600 ××× (隻有所有者有讀和寫的權限)

sudo chmod 644 ××× (所有者有讀和寫的權限,組使用者隻有讀的權限)

sudo chmod 700 ××× (隻有所有者有讀和寫以及執行的權限)

sudo chmod 666 ××× (每個人都有讀和寫的權限)

sudo chmod 777 ××× (每個人都有讀和寫以及執行的權限)

其中×××指檔案名(也可以是檔案夾名,不過要在chmod後加-ld)。

Android修改檔案權限指令

chmod 600 ××× (隻有所有者有讀和寫的權限)

chmod 644 ××× (所有者有讀和寫的權限,組使用者隻有讀的權限)

chmod 700 ××× (隻有所有者有讀和寫以及執行的權限)

chmod 666 ××× (每個人都有讀和寫的權限)

chmod 777 ××× (每個人都有讀和寫以及執行的權限)

Android使用代碼修改檔案權限

在apk中,有時候需要root權限,例如通過apk更新系統庫等system的檔案等,避免更新固件,或者在apk中需要直接通路某些裝置等。下面是在apk中擷取root權限的方法,前提是裝置已經root過了。

通過執行su産生一個具有root權限的程序:

Process su = Runtime.getRuntime().exec(“su”);

寫入指令(可以寫入多條指令,使用換行(\n)):

String cmd = “chmod 666 /dev/video0\nexit\n”;

su.getOutputStream().write(cmd.getBytes());

判斷指令執行結果:

su.waitFor() ==0 表示指令執行成功

執行個體:使用代碼打開/dev/video0的讀寫權限

//擷取權限

File device = new File(/dev/video0);

if (!device.canRead() || !device.canWrite()) {

try {

Process su;

su = Runtime.getRuntime().exec(“su”);

String cmd = “chmod 666 /dev/video0\nexit\n”;

su.getOutputStream().write(cmd.getBytes());

if ((su.waitFor() != 0) || !device.canRead()

|| !device.canWrite()) {

showNotPremessionDialog();

return;

}

} catch (Exception e) {

e.printStackTrace();

showNotPremessionDialog();

return;

}

}

繼續閱讀