gpt4 book ai didi

Android 权限执行 native 应用程序?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:43 25 4
gpt4 key购买 nike

我下载了适用于 Android 的 c4droid 应用程序并通过 system(); 运行命令。我了解到有些东西有效,而有些则没有。大多数很酷的东西都不起作用,这似乎是因为我的用户配置文件没有被授予在 Linux 操作系统级别执行此类命令的权限。

于是尝试了另一个实验。我为 arm 处理器获得了一个特殊的 Gnu 编译器,并编译了一个简单的 hello world 应用程序。然后我戴上手机并尝试通过 c4droid 应用程序执行它,例如 system("./myapp.bin"); 。我收到了一条 permission denied 消息。

所以我只是想了解我可以在花大钱买的手机上做什么和不能做什么?我可以执行这样的 hello world 应用程序吗?我真的需要根访问权限来执行我制作的应用程序吗?有没有办法通过将代码包装在 android/java 代码中来运行我的代码?我是否必须通过 Dalvikvm 才能让它运行?

我真的在寻找一种方法来做到这一点,而不需要 root 或下载 busybox 之类的东西并使用 su。

最佳答案

许多不同的问题。

  1. permission denied 是原始 shell 知道的少数错误消息之一,它用于许多其他类型的故障,包括找不到请求的命令。

  2. 工具箱套件缺少许多典型的 unix 命令。人们有时会安装 busybox 作为更全面的补充

  3. 您可能想要执行的某些操作实际上需要 shell(或应用程序用户 ID)帐户所没有的权限。默认情况下,adb shell 仅在模拟器或工程设备上以 root 身份运行,但在“root”设备上您可能能够获得 root shell。

  4. 运行编译后的代码不需要 root 访问权限,但是代码必须具有合适的 ABI,必须满足其所有库依赖性,并且必须安装在具有可执行标志的文件中,在分区上未挂载不可执行标志。您面临的一些问题是 glibc(或其他)与 Android 的仿生 libc。可执行的暂存目录因 Android 版本而异,但如果应用将文件设置为全局可读和可执行,则可以选择应用的私有(private)存储区域。

  5. 运行 native 代码的通常(也是唯一“推荐”)方法是将其构建为链接到 android 的 Bionic libc 的共享库,并使用 JNI 从 dalvik/java 应用调用它。

关于Android 权限执行 native 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16469029/

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