Android запрещает запуск собственной библиотеки при запуске в качестве системного приложения - PullRequest
1 голос
/ 22 марта 2019

Когда я подписываю свое приложение системным сертификатом, я больше не могу использовать SDK, который поставляется с пользовательской собственной библиотекой. SDK выполняет код из этой нативной библиотеки. Все работает нормально, когда мое приложение не подписано как системное приложение, но когда оно подписано, я получаю сообщение об ошибке.

Похоже, что ошибка происходит из политики SELinux с этим сообщением журнала:

тип = 1400 аудит (0,0: 22): avc: отказано {выполнить} для Comm = 4173796E635461736B202331 путь = "/ data / data / myapp / cache / librs.bitmap_to_argb.so" dev = "mmcblk0p22" ino = 16791 scontext = u: r: system_app: s0 tcontext = u: object_r: system_app_data_file: s0 tclass = file permissive = 0

Почему мое приложение не может выполнить такую ​​библиотеку, которая находится во внутренней памяти приложения?

1 Ответ

0 голосов
/ 22 марта 2019

Системные приложения ожидают, что их собственные библиотеки будут находиться в каталоге / system / lib или lib64. Возможно, этого можно избежать, если в манифесте приложения установить android: extractNativeLibs = "false" .

...