错误 运行 exec()。命令:工作目录:null 环境:null - 如何在非根设备上正确执行 Android 中的二进制文件?

Error running exec(). Command: Working Directory: null Environment: null - how to execute a binary in Android correctly on a non-rooted device?

我想 运行 在非根 android 设备上的可执行文件。

在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

我发现了很多关于此的问题,但没有适合我的答案。如何正确执行二进制文件?

Runtime.getRuntime().exec("/bin/chmod 744 /data/data/com.example.myapp/myBin");

虽然这可能不是您唯一的问题,但在 Android 的大多数构建中,chmod 位于 /system/bin 中并且没有 /bin 目录,因此您的失败是可能实际上是在尝试执行一个不存在的工具,甚至在进入您的自定义二进制文件之前。

如果您 运行 来自服务(而不是应用程序 activity),则必须将权限设置为 777。