我正在尝试从指定的“允许”路径加载.so库:
/data/data/my.package.name/mylibrary.so
我知道我不能把我的lib放到/ sdcard /以达到安全目的(这很好)。
我正在尝试加载库:
System.load("/data/data/my.package.name/mylibrary.so");
但由于某些原因我无法理解,我的应用程序崩溃了:
java.lang.UnsatisfiedLinkError:dlopen failed:library “/data/data/my.package.name/mylibrary.so”未找到
在Monitor I中运行应用程序也可以阅读:
avc:拒绝{read} for name =“mylibrary.so”dev = tmpfs ....... tclass = file permissive = 0
这看起来像SELinux问题。我还检查了adb shell中的库权限(来自root shell),看起来没问题。
我知道自Android Nougat以来无法加载系统库,但这不是系统库。
我有什么可以尝试的吗?
非常感谢