gpt4 book ai didi

android - 如何在 Android SHELL 中运行 C++ 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:59:21 25 4
gpt4 key购买 nike

我想运行用 C++ 编写并使用 Android 工具链 9 编译的 hello world,但我遇到了问题:默认情况下我没有启动它的权限,我无法使用 chmod` 更改权限。

我使用了 Android 2.3.3 - Api Level 10

应用程序由 API 级别 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`

命令 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

不需要root 权限并且可以重启

关于android - 如何在 Android SHELL 中运行 C++ 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10133274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com