作为先前问题的后续(Android ioctl - root权限和使用 https://stackoverflow.com/questions/6983156/android-ioctl-root-permissions-and-usage/6983704),是否可以创建一个单独的本机可执行文件并将其打包在 APK 中?
该应用程序需要 root 访问权限,并且不会进入 Android 市场,但我希望能够在不使用将额外可执行文件推送到设备上的脚本的情况下安装它。
有一种简单的方法可以将可执行文件打包到 APK 中,并让系统安装程序负责解压该可执行文件,请参阅如何将原生命令行应用程序打包成apk? https://stackoverflow.com/questions/17383552/how-to-package-native-commandline-application-in-apk.
诀窍(已测试到 Jelly Bean 4.3)是将文件命名为“lib我的可执行文件.so”并将其放入libs/armeabi
你的 Android 项目(我假设是 ADT 或 ant 构建)。包管理器会将文件解压到/data/data/your.package.full.name/lib
(出于向后兼容性的原因,它是一个符号链接,因此也许在 Android 的未来版本中,这将不再起作用)在设备上,具有可执行权限。
请注意,该文件有all
读取和执行权限,因此您可以使用Runtime.getRuntime().exec() http://developer.android.com/reference/java/lang/Runtime.html#exec(java.lang.String) or system() http://linux.die.net/man/3/system也来自其他应用程序。
Update:这些天,你应该使用libs/armeabi-v7a
对于 32 位 ARM 可执行文件,您可能还需要准备相同可执行文件的 64 位 ARM 版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)