Android12 系统vendor下库文件调用system库文件提示“is not accessible for the namespace”问题解决

Android12 在调试gps的时候,vendor/lib64/hw/下的gps库文件需要调用/system/lib64/libcutils.so文件。这个时候系统会报错:

linker  : library "/system/lib64/libcutils.so" ("/system/lib64/libcutils.so") needed or dlopened by "/vendor/lib64/hw/gps.default.so" is not accessible for the namespace: [name="vndk", ld_library_paths="", default_library_paths="/vendor/lib64/vndk-sp:/apex/com.android.vndk.v32/lib64:/vendor/lib64", permitted_paths="/odm/lib64/hw:/odm/lib64/egl:/vendor/lib64/hw:/vendor/lib64/egl:/system/vendor/lib64/hw:/system/vendor/lib64/egl:/apex/com.android.vndk.v32/lib64/hw"

原因:Android系统对 vendor库和system库进行了隔离,导致vendor的库文件(/vendor/lib64/hw/gps.default.so)不能调用system下的库(/system/lib64/libcutils.so)。

解决方法:

1.了解到Android 8以前的系统,直接修改系统system/etc/public.libraries.tx

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Android系统设计中,有两个重要的目录,即system目录和vendor目录。system目录存放的是Android系统本身的核心组件和文件,而vendor目录则存放了设备制造商定制的系统组件和文件Android系统为了确保系统的安全性和稳定性,对于system目录和vendor目录有不同的权限控制。一般情况下,vendor无法直接访问system目录下的so文件。 这是出于安全性和稳定性的考虑。system目录下的so文件是由Google官方提供的,并且经过了严格的测试和认证。这些文件用于实现Android系统的核心功能,如图形处理、输入输出、网络通信等。为了保证系统的稳定性,vendor无法直接修改或替换这些文件。 而vendor目录下的so文件则是由设备制造商根据自己的需求和特定硬件设计定制的。这些文件可能包含了特定硬件的驱动程序、供应商定制的功能等。为了保护制造商的商业机密和知识产权,vendor文件是不对外公开的,也无法被其他vendor或第三方应用访问。 虽然vendor无法直接访问system目录下的so,但在某些情况下,vendor可以通过一些特定的接口或伙伴关系与Google进行合作,共享一些特定的API或功能。这需要双方进行协商和合作,并遵循相关的法律和协议。 综上所述,Android系统限制了vendor对system目录下so的访问,以确保系统的安全性和稳定性,并保护制造商的商业机密。这也是Android生态系统保持多样化并推动创新的重要机制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值