我想在非root用户设备上运行可执行文件。
在java中使用以下命令
Runtime.getRuntime().exec("/bin/chmod 744 /data/data/com.example.myapp/myBin");
Runtime.getRuntime().exec("/data/data/com.example.myapp/myBin");
结果
Error running exec(). Command: [/data/data/com.example.myapp/myBin]
Working Directory: null Environment: null
我发现了很多关于这方面的问题但没有答案在我的案例中有效。如何正确执行二进制文件?
答案 0 :(得分:3)
如果您是从服务(而非应用活动)运行此功能,则必须将权限设置为777.
答案 1 :(得分:1)
Runtime.getRuntime().exec("/bin/chmod 744 /data/data/com.example.myapp/myBin");
虽然这可能不是您唯一的问题,但大多数Android chmod
版本都存在于/system/bin
且没有/bin
目录,因此您的失败可能实际上是在尝试在获取自定义二进制文件之前,执行一个不存在的工具。