我有一个root设备,想要更改/ system / app里面的apk(Prueba.apk)的chmod权限,所以为了实现这个目的,我使用的是带有BusyBox的RootTools库。我的代码是:
Command comando = new Command(0, "chmod 777 /system/app/Prueba.apk");
try {
RootTools.getShell(true).add(comando);
} catch (IOException | RootDeniedException | TimeoutException ex) {
ex.printStackTrace();
}
但是当我检查时,在使用Root文件浏览器运行该代码后,我发现Prueba.apk的chmod权限没有改变。
答案 0 :(得分:0)
在运行需要root访问权限的代码之前,您应该尝试使用su -c
。
/system/*
是只读的,命令应该由root运行,但首先需要将/system
分区挂载为读写。有多种方法可以做到这一点,但对于我的Nexus 5x,这有用:
mount -o rw,remount /system
但是,这种方法可能不起作用,所以尝试以不同的方式挂载r / o here
答案 1 :(得分:0)
问题在于,当我将系统分区安装为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命令。