Создание приложения AOSP, использующего общие библиотеки - PullRequest
0 голосов
/ 13 октября 2018

Как можно создать приложение AOSP из исходного кода (используя mma для сборки, чтобы вместо полного образа системы были только необходимые модули) и иметь доступ к общим библиотекам?

I 'м здание LatinIME с некоторыми изменениями.Поскольку я хотел легко установить и отладить, я изменил имя пакета.Теперь я могу легко установить приложение как пользовательское приложение, но оно не может получить доступ к файлам .so в системном разделе.Если я пытаюсь установить приложение с оригинальным именем пакета, оно не может быть установлено из-за старого установленного приложения.

library "/system/lib64/libjni_latinimegoogle.so" ("/system/lib64/libjni_latinimegoogle.so") needed or dlopened by "/system/lib64/libnativeloader.so" is not accessible for the namespace

Другой способ, которым я мог бы придумать, - сохранить пакет.имя как оригинал, но либо создайте переносимый zip-файл, либо каждый раз копируйте apk в системный раздел.

Можно ли разрешить доступ к этому файлу (или включить его в apk) или мне нужно сделать это?трудный путь?

1 Ответ

0 голосов
/ 14 октября 2018

Самый простой путь - получить копию всех необходимых непубличных системных библиотек в вашем APK под lib/arm64-v8a или другим соответствующим ABI. libjni_latinimegoogle.so может зависеть от других библиотек, и вы должны также упаковать их в свой APK.Убедитесь, что вы используете правильные версии этих библиотек.Вы можете извлечь их из вашей system / lib64 через adb.

Но замена APK в системном разделе - более чистый способ справиться с ситуацией.Это требует перезагрузки каждый раз, но я бы, вероятно, выбрал этот трек, чтобы избежать возможных поведенческих различий между системным приложением и приложением пользователя.

...