在未经验证的Android设备上运行本机C程序

时间:2014-01-31 07:13:23

标签: android c

我在阅读How do I build a native (command line) executable to run on Android?之后设法为Android构建了一个原生可执行文件,但是我无法在我的无根电话上执行它,它提供了

  

/ system / bin / sh:/ storage / sdcard0 / Download / hello_world:无法执行:权限被拒绝

因为SD卡上安装了noexec,我无法在其他任何地方写入。

1 个答案:

答案 0 :(得分:5)

我找到了一个适合我的解决方案 - 似乎/data/local/tmp是可写的,而且它不在noexec分区上。

解决方案需要使用adb。我通过USB连接手机,并从开发人员选项中启用了USB调试。

然后我使用以下方法将文件上传到手机:

adb push C:\Workspace\hello_world\libs\armeabi\hello_world /data/local/tmp/hello_wo
rld

然后我运行了adb shell:

adb shell

从中我改变了写入权限,然后运行它:

chmod 755 /data/local/tmp/hello_world
/data/local/tmp/hello_world