立即注册
查看: 2007|回复: 11

[展讯开发资料] 展讯SC9832E/SC9863A/SC7731E/UMS312 SELinux自定义指南

已绑定手机
发表于 2022-4-23 19:00:01 | 显示全部楼层 |阅读模式 来自 广东省深圳市
1.概览 Overview
本文档主要介绍 UNISOC SELinux 配置状态,以及客户在 unisoc 代码基础上如何定制化配置。
2.自定义 Customized
2.1 Unisoc SELinux 配置
对于要求通过 google CTS 认证的产品,unisoc SELinux 开关都是 enforce 状态 unisoc SELinux 配置分布在 vendor/sprd/generic/sepolicy 和 device/sprd/board/common/sepolicy 以 及 device/sprd/board/common/plat_sepolicy 三个目录下。对于 unisoc 支持的各个 feature,已经配置了正确的 selinux 权限,不需要额外配置。

2.2 客制化 SELinux 配置
客户如果要在 unisoc 代码基础上修改现有 feature 或是开发新 feature,需要对应修改selinux 配置,才能保证 feature 的正常工作。

2.3 客制化 SELinux 配置介绍及示例
客户 feature 开发完成后,需要根据 kernelAndroid log 里的 avc 信息,配置 selinux权限。例如:12-14 04:42:19.629 427 427 W collect_apr: type=1400 audit(0.0:315): avc:
denied { read } for scontext=u:r:aprd:s0 tcontext=u:r:crash_dump:s0 tclass=file permissive=0
avc log 里的关键字:
scontext: 主体的安全上下文标签
tcontext: 客体的安全上下文标签
tclass: 客体类别
{ }里的内容表示缺少的 selinux 权限
安全上下文标签由四个字段组成:用户:角色:type:安全级别
根据 avc log 里的以上信息按照 selinux 语法规则添加 selinux 权限. selinux 语法规则:
allow scontext_type tcontext_type:tclass { perm_set};
例如上面该句 avc,需要在 aprd.te 里添加:
allow aprd crash_dump:file { read};
以上为常见 avc 的修改方法,但对于新增 service,或是文件节点等,需要为新增内容定义安全上下文标签,然后再根据 avc log 添加对应权限。

2.3.1 service 自定义安全上下文标签
在 rc 里增加 service 定义后,需要配置对应的 selinux,具体配置步骤:
(1) 在 file_contexts 里增加:
/vendor/bin/service_name u:object_r:service_name_exec:s0
service_name 需要替换成具体的 service 名称
(2) 增加 service_name.te,添加以下内容:
type service_name, domain, mlstrustedsubject; type service_name_exec, exec_type,file_type, vendor_file_type;
init_daemon_domain(service_name)

2.3.2 文件节点自定义安全上下文标签
代码里新增文件节点或是修改了访问路径,需要对路径节点自定义安全上下文,具体配置步骤如下: 例如,新增/sys/devices/virtual/sprd_sensorhub/sensor_hub/calibrator_cmd 路径节 点 (1) 在 file_contexts 里增加: /sys/devices/virtual/sprd_sensorhub/sensor_hub/calibrator_cmd
u:object_r:sysfs_sensor:s0 (2) 在 file.te 里增加新标签的 type 定义: type sysfs_sensor, fs_type,sysfs_type;
这里需要注意,file_contexts 里的路径需要使用实际路径,如果是软链接路径的话,会导致修改不生效.如果路径配置正确,且修改正常烧写到手机的话,可以在路径节点目录执行 ls -Z 命令,查看安全上下文标签是否是自定义内容.如果不是自定义内容的话,说明修改没生效.需要在确保路径节点已经创建完成的时机,在 rc 里添加 restorecon -R 路径,对路径来恢复安全上下文.这里需要注意,如果 adb shell setenforce 0 关闭 selinux 后,restorecon 命令可以执行成功,但 rc 脚本命令执行失败的话,需要抓下串口 log,为 restorecon 命令执行添加 selinux 权限。

2.3.3 属性自定义安全上下文标签
客户如果新增 android 属性,需要自定义安全上下文,具体配置步骤如下:
(1) 在 property_contexts 里按以下格式修改:
属性名称或属性名称前缀 u:object_r:自定义标签:s0
例如,为 persist.vendor.power. 前缀的属性定义安全上下文标签
persist.vendor.power. u:object_r:vendor_power_prop:s0
(2) 在 property.te 里增加属性标签的 type 定义: type 自定义标签, property_type;

2.3.4 修改验证
修改 selinux 相关配置后,需要编译 system.img 和 vendor.img,然后烧写到手机里.可以进一步在手机的 vendor/etc/selinux 和 system/etc/selinux 文件夹下搜索关键字,验证相关修改是否正确烧写到手机里。
展锐4G*5G技术或方案咨询,联系我 18928412535(微信同号,加微信备注:展锐5G
更多详细内容请下载附件查看
游客,如果您要查看本帖隐藏内容请回复
已绑定手机
发表于 2022-4-23 19:27:10 | 显示全部楼层 来自 辽宁省沈阳市
THANKS FOR SHAREING
已绑定手机
发表于 2022-5-5 17:06:14 | 显示全部楼层 来自 天津市
感谢分享
已绑定手机
发表于 2022-5-12 18:50:43 | 显示全部楼层 来自 广东省深圳市
感谢楼主赐教
已绑定手机
发表于 2022-9-14 22:47:46 | 显示全部楼层 来自 美国
1234567890
已绑定手机
发表于 2022-10-14 14:16:29 | 显示全部楼层 来自 天津市
感谢分享
已绑定手机
发表于 2022-10-19 10:58:16 | 显示全部楼层 来自 广东省深圳市
THANKS FOR SHAREING
已绑定手机
发表于 2022-11-5 14:58:00 | 显示全部楼层 来自 广东省深圳市
非常有用的资料
已绑定手机
发表于 2023-1-12 04:15:07 | 显示全部楼层 来自 德国
thanks, very helpful!
已绑定手机
已实名认证
本站提供mt6582开发板、承接手机类,基于手机芯片类项目开发详情请点击-->>https://www.16rd.com/thread-13261-1-1.html
发表于 2023-2-20 11:14:58 | 显示全部楼层 来自 广东省深圳市
感谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表