Я собрал двоичный файл с помощью инструментальной привязки Android NDK и пытаюсь развернуть его на устройстве. Приложение, которое было построено с помощью NDK с использованием JNI, затем выполнит этот двоичный код через собственный код. Я надеюсь избежать использования устройства.
Двоичный файл будет использоваться несколькими приложениями, поэтому я хотел бы сохранить его в общем месте, а не один раз для каждого приложения.
Я не могу найти подходящее место для развертывания этого двоичного файла - это те места, которые я пробовал:
-
/mnt/sdcard - используя getExternalStoragePublicDirectory() из SDK, однако SD-карта смонтирована как noexec, то есть я не могу ее запустить.
-
/system/bin - файловая система только для чтения, поэтому копировать нельзя. Я могу нажать файл с помощью adb push, если я повторно смогу/систему на эмуляторе, используя:
mount -o rw,remount -t yaffs2 /dev/block/mtd3 /system
Однако я хотел бы избежать этого, поскольку устройство должно быть укоренено.
-
/data/local - используя adb push, я могу нажать двоичный файл в это место. Тем не менее, я не могу найти способ сделать это в коде (используя Android SDK). Внутренний механизм хранения указывает на /data/data/package.
Я скомпилировал собственный код, который вызывает этот исполняемый файл, используя arm-linux-androideabi-g++, поставляемый с инструментальной цепочкой NDK. Это работает с двоичным в /system/bin и/data/local.
В общем, я ищу место в файловой системе Android, к которой я могу скопировать файл из папки project/assets, которые разрешены для всего мира.