Android SELinux开发入门指南之如何增加Java Binder Service权限
前言
Android的妈咪谷歌为了解决Android系统一直让人诟病的安全问题,在Android 4.4以后强制引入了SELinux安全管理。SELinux虽然可以将安全提升一个层级,但是有时候的实际效果确实杀敌一千,自损八百给开开发造成许多的困难。Android Binder的重要性,这个无需多言了。在前面的篇章Android SELinux开发入门指南之如何增加Native Binder Service权限,我们讲解了怎么添加Native Binder Service权限,那么本篇章中我将会讲解怎么添加Java Binder Service权限。
注意:这里的实际操作是在Android 8版本上面进行的。
正式开干
上述就以E/SELinux ( 261): avc: denied { add } for service=PaxSystemUtil scontext=u:r:system_app:s0 tcontext=u:object_r:default_android_service:s0 tclass=service_manager,这个错误主要是添加ServiceManager添加Native Service没有配置SELinux权限导致,由于现在SELinux的启用是在展讯平台,所以这里就以以展讯平台来说明,步骤如下:
1.vi编辑device/sprd/sharkle/common/plat_sepolicy/private/service_contexts在其最后添加如下规则:
#add for PaxSystemUtilPaxSystemUtil
u:object_r:PaxSystemUtil_service:s0
2.vi编辑device/sprd/sharkle/common/plat_sepolicy/public/service.te在其最后添加如下规则:
#type for PaxSystemUtiltype
PaxSystemUtil_service, service_manager_type;
3.vi编辑device/sprd/sharkle/common/sepolicy/system_server.te在其最后添加如下规则:
#add for PaxSystemUtil
allow system_server PaxSystemUtil_service:service_manager { add find };
4.vi编辑device/sprd/sharkle/common/sepolicy/platform_app.te在其最后添加如下规则:
#add for PaxSystemUtil
allow platform_app PaxSystemUtil_service:service_manager { find };
5.最后根据在使用中报什么avc的错误,然后再按照规则添加相关规则,即将上述改动添加完成以后,编译vendorimage,然后烧录启动测试,根据logcat -b evnets | grep avc查看还有什么没有SELinux权限问题的。
结语
修行至此,恭喜读者你已经开启了Android SELinux开发入门指南之如何增加Java Binder Service权限征程,此时的你对于添加Java Binder Service已经是了然于心了,畅通无阻,来去无踪影了。此时的你可以一剑走天下了,为师的必杀器已经倾囊相授了。各位江湖见。
写在最后
各位读者看官朋友们,Android SELinux开发入门指南之如何增加Java Binder Service权限问题已经全部完毕,希望能吸引你,激活发你的学习欲望和斗志。在最后麻烦读者朋友们如果本篇对你有帮助,关注和点赞一下,当然如果有错误和不足的地方也可以拍砖。