安卓添加设备节点权限和selinux访问权限

1 修改设备节点权限及配置属性设置节点值

1.1 修改设备节点权限

1.1.1 不会手动卸载的节点

在system/core/rootdir/init.rc中添加节点权限

在on boot下面添加

cpp 复制代码
chown system system /sys/kernel/usb/host
chmod 0664 /sys/kernel/usb/host

1.1.2 支持热插拔的节点(设备移除后,节点会删除)

在system/core/rootdir/ueventd.rc中添加

cpp 复制代码
/dev/ttyUSB*              0666   system     system

1.2 配置属性设置节点值

cpp 复制代码
# on property:sys.boot_completed=1 表示开机完成
# persist.sys.oem.usb_host=*表示随便写入什么值
on property:sys.boot_completed=1 && property:persist.sys.oem.usb_host=*
   write /sys/kernel/usb/host ${persist.sys.oem.usb_host}

2 添加selinux访问权限

2.1 权限报错和添加方法

cpp 复制代码
修改se权限 编译
avc: denied { write } for comm="init" name="disable_charging_screen" dev="sysfs" ino=86923 scontext=u:r:init:s0 tcontext=u:object_r:vendor_sysfs_oem:s0 tclass=file permissive=
缺少什么权限:     { read }权限,
谁缺少权限:        scontext=u:r:hal_secure_element_unisoc:s0 
对哪个文件缺少权限:tcontext=u:object_r:hwservicemanager_prop
什么类型的文件:  tclass=file 
完整的意思: hal_secure_element_unisoc进程对hwservicemanager_prop类型的file缺少read 权限。
allow  hal_secure_element_unisoc hwservicemanager_prop:file  read;
allow init vendor_sysfs_oem:file { open read getattr execute write};

	export SELINUX_IGNORE_NEVERALLOWS=true
	make -j128 selinux_policy
	最后push目录system/etc/selinux(修改system/sepolicy下的权限) 或者 vendor/etc/selinux(修改device下的权限)到设备

2.2 权限添加的位置

cpp 复制代码
# mtk平台添加权限的位置:
device/mediatek/sepolicy/basic/non_plat

# 高通添加的位置:
device/qcom

添加的权限内容:
file.te中添加:type oem_device, fs_type, sysfs_type;
file_contexts中添加:/sys/kernel/usb/host                                 u:object_r:oem_device:s0
init.te中添加:
allow init oem_device:file w_file_perms;
allow init oem_device:file {open write read };
allow init oem_device:fd {use};
相关推荐
啦啦啦~~~2229 小时前
PC端+安卓端阅读器推荐!开源本地小说阅读器软件,
android·论文阅读·windows·开源软件·福昕阅读器
我命由我1234510 小时前
Android Jetpack Compose 开发问题:Unresolved reference ‘Icons‘.
android·java-ee·kotlin·android studio·android jetpack·android-studio·android runtime
爱笑鱼10 小时前
Android 系统启动机制(六):Zygote 创建 App 为什么走 Socket?哪些是源码事实,哪些是架构解释?
android·linux
AI2中文网10 小时前
安卓模拟器启动卡在进度条?两步解决硬件加速冲突
android
IT毕设实战小研10 小时前
基于大数据的DAX40成分股金融新闻情感趋势可视化分析
android·大数据·python·考研·金融·课程设计
Android-Flutter11 小时前
flutter async/await 详解
android·flutter
步行cgn11 小时前
Spring Boot 中的 YAML 完全指南
android·spring boot·firefox
事圆则缓11 小时前
Java 常见数据结构与 Android 使用场景
android·java·数据结构
RisunJan12 小时前
Android 高频面试题与解答
android
MyBili12 小时前
【安卓开发/搞机】快图浏览(QuickPic)技术解析:为何这款3MB应用仍是本地图库的性能天花板?
android·app·安卓·文件管理·相册·看图软件·手机相册