ENV : чистый AOSP (android-9.0.0_r20)
для marlin target (PIXEL XL)
Я хочу добавить свою собственную библиотеку libOwnlibrary.so
в файл белого списка vendor/etc/public.libraries.txt
, чтобы я мог загрузить ее из собственного system/priv-app/MyOwnApp.apk
APK
В настоящее время я получаю следующую ошибку:
java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libOwnlibrary.so" needed or dlopened by "/system/lib/libnativeloader.so" is not accessible for the namespace "classloader-namespace"
Что имеет смысл из-за ограничений, введенных в Android 7.0 (API 24):
https://developer.android.com/about/versions/nougat/android-7.0-changes#ndk
Начиная с Android 7.0, система предотвращает динамическое приложение
связывание с библиотеками, отличными от NDK, что может привести к сбою приложения.
Моя текущая настройка:
AOSP-root-folder/
- vendor/
- myvendor/
device-partial.mk (this basically instructs `make` to copy libOwnlibrary.so to vendor/lib/libOwnlibrary.so
```PRODUCT_COPY_FILES := .. .so```
proprietary/
Android.mk (pushes presigned prebuilt MyOwnApp.apk to /system/priv-app)
```... include$(BUILD_PREBUILT)```
Что я должен изменить / добавить, чтобы можно было изменить файл белого списка vendor/etc/public.libaries.txt
, добавив к нему libOwnlibrary.so
.
!!! Один способ, который мог бы работать , это добавить libOwnlibrary.so
к
AOSP-root-folder/system/core/rootdir/etc/public.libraries.android.txt
, что на устройстве означает system/etc/public.libraries.txt
,
НО это означало бы перемещение моей библиотеки в system/lib
из vendor/lib
и Я не думаю, что это разрешено. !!!