Я пытаюсь загрузить библиотеку .so по указанному «разрешенному» пути:
/ data / data / my.package.name / mylibrary.so
Я знаю, что я не могу просто поместить свою библиотеку в / sdcard / в целях безопасности (и это нормально).
Я пытаюсь загрузить библиотеку с помощью:
System.load("/data/data/my.package.name/mylibrary.so");
Но по некоторым причинам я не могу понять, что мое приложение аварийно завершает работу с:
java.lang.UnsatisfiedLinkError: dlopen failed: library "/data/data/my.package.name / mylibrary.so "не найден
При запуске приложения в Monitor я также могу прочитать:
avc: запрещено {read} для name =" mylibrary.so "dev = tmpfs ....... tclass = file permissive = 0
Это похоже на проблему SELinux.Я также проверил разрешение библиотеки в оболочке adb (из корневой оболочки), и они выглядят хорошо.
Я знаю, что с Android Nougat невозможно загрузить системную библиотеку, но это несистемная библиотека.
Могу ли я попробовать что-нибудь?
Большое спасибо