当作为系统应用程序运行时,Android不允许执行本机库

时间:2019-03-22 03:07:47

标签: android android-ndk selinux

当我使用系统证书对应用程序进行签名时,我将无法再使用自定义本机库随附的SDK。 SDK执行该本地库中的代码。未将我的应用程序签名为系统应用程序时一切正常,但签名后出现错误。

错误似乎来自SELinux策略,并带有以下日志消息:

  

type = 1400审核(0.0:22):avc:拒绝{执行}   comm = 4173796E635461736B202331   path =“ / 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 =文件允许== 0

为什么我的应用程序无法执行位于应用程序内部存储中的库?

1 个答案:

答案 0 :(得分:0)

系统应用程序希望其本机库位于/ system / lib或lib64目录中。如果在应用清单中设置 android:extractNativeLibs =“ false” ,也许可以避免这种情况。