使用System.load从指定路径加载.so库

时间:2018-05-27 18:06:15

标签: java android shared-libraries

我正在尝试从指定的“允许”路径加载.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以来无法加载系统库,但这不是系统库。

我有什么可以尝试的吗?

非常感谢

0 个答案:

没有答案