![](/img/trans.png)
[英]Android 6.0 even with permission 777 chmod cannot read file in data directory
[英]I can't change chmod to 777 in Android programmatically
我有一個root用戶設備,並且想要更改/ system / app內的apk(Prueba.apk)的chmod權限,因此要實現此目的,我將RootTools庫與BusyBox一起使用。 我的代碼是:
Command comando = new Command(0, "chmod 777 /system/app/Prueba.apk");
try {
RootTools.getShell(true).add(comando);
} catch (IOException | RootDeniedException | TimeoutException ex) {
ex.printStackTrace();
}
但是當我檢查時,使用根文件瀏覽器運行該代碼后,我發現Prueba.apk的chmod權限沒有更改。
在運行需要root用戶訪問權限的代碼之前,應嘗試使用su -c
。
/system/*
是只讀的,命令應該由root用戶運行,但是首先/system
分區需要以讀寫方式掛載。 有多種方法可以執行此操作,但是對於我的Nexus 5x來說,它可以工作:
mount -o rw,remount /system
但是,此方法可能不起作用,因此請嘗試使用其他方法在此處安裝R / O
問題是當我將系統分區掛載為RW時,我這樣做是這樣的:
Command comando = new Command(0, "mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system/app";
try {
RootTools.getShell(true).add(comando);
} catch (IOException | RootDeniedException | TimeoutException ex) {
ex.printStackTrace();
}
但是正確的方法是將所有系統分區改為RW,而不僅僅是/ system / app文件夾,因此我將代碼更改為:
Command comando = new Command(0, "mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system";
try {
RootTools.getShell(true).add(comando);
} catch (IOException | RootDeniedException | TimeoutException ex) {
ex.printStackTrace();
}
然后,我可以完美地執行chmod 777命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.