(MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2

文章简介

承接上一篇笔记,该份笔记是笔者深思熟虑后根据实战应用所总结出来的精华内容,该文章内容主要包括配置avc权限的使用场景以及其上下环节所需的准备。

使用场景

1.底层驱动有无配置好相应的串口

2.开启相应的selinux avc 权限

3.在framework层配置相应的 (config_serialPorts)

解决方法

三层配置

1.底层驱动有无配置好相应的串口

该部分主要是跟驱动相应的同事进行确认,如果没正常配置好相应的串口则会报错。

​
alps/device/mediatek/xxxxx/init.xxxxx.rc

+#hardware Decode Scanner

+    chmod 666 /dev/串口名

+    chown system radio /dev/串口名

+    chmod 666 /dev/串口名

+    chown system radio /dev/串口名

​

2.开启相应的selinux avc 权限

首先先确定好触发该节点所复现的触发场景,再到达指定场景打log进行查看缺少什么权限

adb logcat|findstr avc

例:

08-07 16:54:26.508  4071  4071 I com.tao.scan: type=1400 audit(0.0:122): avc: denied {read } for path="/dev/xxx" dev="tmpfs" ino=17514 ioctlcmd=0x5401 scontext=u:r:system_app:s0 tcontext=u:object_r:tty_device:s0 tclass=chr_file permissive=1

首先在底层根据tcontext中的内容确定其修改的.te文件路径,上文中的 tty_device

在下面路径下查询   grep -rn "tty_device" ./

mtk67xx_X0_mp1_dev/alps/device/mediatek/sepolicy/basic/non_plat

根据scontext锁定需要修改的文件例如上文中的 scontext=u:r:system_app 我们就找到相应的 

system_app.te文件中进行添加。

添加准则:

allow + scontext + tcontext + : + tclass + { 权限 }

比如上文中的权限

allow system_app tty_device : chr_file  { read };

配置好相应的权限后可能需要更新相应的api

source build/envsetup.sh

lunch XXX   

make update-api

3.在framework层配置相应的 (config_serialPorts)

alps/frameworks/base/core/res/res/values/config.xml  

     <string-array translatable="false" name="config_serialPorts">
+               <item>"/dev/串口名"</item>
+               <item>"/dev/串口名"</item>
     </string-array>

附加小知识

如果替换了某内置apk,则删除对应out即可,不需要全部out删除

find ./out/ -name "zhubao*" | xargs rm -rf
删除对应 out 其中 zhubao 为对应的模块名 可以到相应的 Android.mk文件中查到

LOCAL_MODULE 属性

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值