我想跑hello world
用 C++ 编写并编译Android toolchain 9
,但我遇到了问题:默认情况下我没有启动它的权限,并且无法使用 chmod` 更改权限。
I used Android 2.3.3 - Api Level 10
应用程序由交叉编译器编译为API level 9
程序:
编译应用程序:
〜/toolchain_andr9/bin/arm-linux-androideabi-g++ helloworld.cpp
然后将应用程序发送到模拟器上的SDCARD:
>adb push a.out /mnt/sdcard
然后进入SHELL并尝试运行a.out
:
>adb shell
>
>/mnt/sdcard/a.out
结果是:
>`/mnt/sdcard/a.out: permission denied`
command ls -l
显示权利a.out
:
>`----rwxr-x system sdcard_rw 863656 2012-04-12 22:42 a.out`
我尝试更改权限:
>chmod 777 /mnt/sdcard/a.out
但权利不会改变:
>`----rwxr-x system sdcard_rw 863656 2012-04-12 22:42 a.out`
我想我用android留下了一些重要的东西。
有人可以帮助我并给我一种如何在“Android SHELL”中运行应用程序的方法吗?
多谢。
附:对不起我的英语=)
默认情况下,SD 卡已安装选项noexec
,这不允许执行卡上的任何文件,无论它的权限是什么(甚至-rwxrwxrwx
),所以需要将文件移动到其他位置,然后执行。
最简单的方法是将文件移动到/data/local/tmp/
并使用完整路径(通常的 POSIX PATH 语义)执行它。
> adb push a.out /data/local/tmp/a.out
> adb shell
> chmod 755 /data/local/tmp/a.out
> /data/local/tmp/a.out
This does not要求根访问权限 and survives reboot.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)