安卓apk附加可执行文件

der*_*ann 6 deployment android jar android-ndk apk

作为对早期问题(Android ioctl - root权限和用法)的跟进,是否可以创建单独的本机可执行文件并将其打包到APK中?

该应用程序需要root访问权限,并且不会进入Android市场,但我希望能够在不使用将额外可执行文件推送到设备上的脚本的情况下安装它.

Ale*_*ohn 10

有一种简单的方法可以将可执行文件打包到APK中,让系统安装程序负责解压缩此可执行文件,请参阅如何在apk中打包本机命令行应用程序?.

诀窍(测试到Jelly Bean 4.3)是将文件命名为" lib myexecutable .so "并将其放入libs/armeabi您的Android项目中(我假设是ADT或ant构建).软件包管理器将解压缩文件/data/data/your.package.full.name/lib(这是一个符号链接,出于向后兼容的原因,因此可能在Android的某些未来版本中,这将不再起作用)在设备上具有可执行权限.

请注意,该文件具有all读取和执行权限,因此您也可以使用其他应用程序中的Runtime.getRuntime().exec()system().

更新: 现在,您应该使用libs/armeabi-v7a32位ARM可执行文件,并且您可能还需要准备相同可执行文件的64位ARM版本.


Nik*_*kov 5

您可以将其放入资产中,并在首次运行时将其复制到应用程序的私有目录中。设置可执行位后,您应该能够运行它。

  • 做什么的?它不是一个包,只是一个复制到应用程序私有目录的文件。 (3认同)