Пакет Android apk с дополнительными исполняемыми файлами - PullRequest
6 голосов
/ 09 августа 2011

Как продолжение предыдущего вопроса ( Android ioctl - права доступа и использование root ), возможно ли создать отдельный собственный исполняемый файл и упаковать его в APK?

Приложению требуется доступ с правами root, и оно не выходит на Android Marketplace, но я бы хотел установить его без использования скрипта, который помещает на устройство дополнительный исполняемый файл.

Ответы [ 2 ]

10 голосов
/ 17 ноября 2013

Существует простой способ упаковать исполняемый файл в APK, и пусть системный установщик позаботится о распаковке этого исполняемого файла, см. Как упаковать собственное приложение командной строки в apk? .

Хитрость (проверенная до Jelly Bean 4.3) состоит в том, чтобы назвать файл " lib myexecutable .so " и поместить его в libs/armeabi вашего проекта Android (я полагаю, ADT или сборка муравья). Диспетчер пакетов распакует файл на /data/data/your.package.full.name/lib (это символическая ссылка из соображений обратной совместимости, поэтому, возможно, в какой-то будущей версии Android это больше не будет работать) на устройстве с разрешениями для исполняемого файла.

Обратите внимание, что файл имеет all разрешения на чтение и выполнение, поэтому вы можете использовать Runtime.getRuntime (). Exec () или system () из других приложений тоже.

Обновление: В наши дни вы должны использовать libs/armeabi-v7a для 32-битных исполняемых файлов ARM, и вам, вероятно, нужно подготовить 64-битную версию ARM для тех же исполняемых файлов.

4 голосов
/ 09 августа 2011

Вы можете поместить его в активы и скопировать его в личный каталог приложения при первом запуске. После того как вы установите исполняемый бит, вы сможете его запустить.

...