在Android中如何使用chmod更改文件权限

3

我正在使用chmod命令更改文件的权限,但它在我的代码中不起作用,而且我的设备已经被root了:

String MyFilePath = "/data/data/MyPkgName/database/com.pocketchange.android.http.AsyncHttpRequestService.db";
CommandCapture command = new CommandCapture(0, "chmod  777 " + "\""+ MyFilePath+ "\"");
RootTools.getShell(true).add(command).waitForFinish();

执行时,命令输出为:
Unable to chmod /data/data/MyPkgName/databases/com.pocketchange.android.http.AsyncHttpRequestService.db: No such file or directory

但文件已经存在,当我使用这个代码去改变数据库目录中另一个文件的权限时,成功了,那现在该怎么办呢。


我不确定是否需要嵌入引号。你能否尝试在目录上使用“ls -l”命令并阅读输出,以查看您的假设是否有误。 - hack_on
chmod 是否在 chroot 中被调用? - Celada
我正在开发一个安卓应用程序,这段代码在安卓项目中。 - Mahmoud Jorban
你为什么不使用java.io.File呢?https://developer.android.com/reference/java/io/File - Stephen Quan
2个回答

0

1. 首先进行RootTools.isAccessGiven()检查,然后系统会以对话框的形式请求"Root"权限。只有在允许了Root权限之后才能成功运行Root命令。
2. "\""+ MyFilePath+ "\""=> MyFilePath


0
使用ADB shell中的chmod命令...
String[] strExec = new String[] 
{ 
       "/system/bin/sh", "-c","/system/bin/chmod 777
};

try {
    Runtime.getRuntime().exec(strExec);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接