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;
}
}