Android 12 push lib 修改无法生效

最近碰到一个问题:修改了 framework 下的 OMXUtils.cpp 之后,mm 编译生成 libstagefright_omx.solibstagefright_omx_utils,push 到 /system/lib 下之后重启板子修改的内容并没有生效,重编image安装就可以生效。

查看 Android.bp 发现两个 lib 都允许 vendor 访问,去 vendor/lib 下查看并没有这两个 lib,这时候想到高版本的 Android 引入了 apex,可能这些 lib 都被打包进了 apex 当中。

到 system/apex 下执行 find 命令,果然找到了:

/system/apex/com.android.vndk.current/lib/libstagefright_omx.so

尝试将生成的 lib push 到 /system/apex/com.android.vndk.current/lib,重启之后发现会有 selinux 权限问题,setenfoce 0 关闭之后 lib 可以生效:

avc: denied { read } for comm="android.hardwar" name="libstagefright_omx.so" dev="dm-7" ino=87 scontext=u:r:mediacodec:s0 tcontext=u:object_r:system_file:s0 tclass=file permissive=0

在记录这篇内容时发现在 apex 下也有一份相同的 lib,不知道 push 到 apex下是否会遇到 selinux 问题,后续会有实验来测试。

关于 Android apex 后续有空在研究~

你可能感兴趣的:(Android,Framework,android,Framework)