当前位置: 首页 > news >正文

Android13配置selinux让system应用可读sys,proc,SN号

system权限应用读sys,proc目录及SN号

Android13预置的system应用,需要读/sys, /proc目录,读(SN)serial number号, 需要修改selinux配置,否则会报avc错.
其修改方法会比Android11复杂一些.

实现

  1. system_app.te中添加
diff --git a/device/sprd/mpool/module/vendor/app/msepolicy/vendor/system_app.te b/device/sprd/mpool/module/vendor/app/msepolicy/vendor/system_app.te
index 19ef6f8d662..08f8e4858e3 100755
--- a/device/sprd/mpool/module/vendor/app/msepolicy/vendor/system_app.te
+++ b/device/sprd/mpool/module/vendor/app/msepolicy/vendor/system_app.te
@@ -106,3 +106,10 @@ allow system_app uniview_file:file { getattr write open create read append watchallow system_app uniview_file:dir { search getattr write add_name create read open };allow system_app tombstone_data_file:dir { read watch };allow system_app vendor_hxy_prop:file { read map getattr open };
+allow system_app prod_file:dir { remove_name };
+allow system_app sysfs:file { getattr open read write };
+allow system_app sysfs:dir { search };
+allow system_app vendor_default_prop:property_service { set };
+allow system_app proc:file { open read };
  1. coredomain.te在添加proc与sys的例外
    system/sepolicy/prebuilts/api/33.0/private/coredomain.te
    system/sepolicy/private/coredomain.te
    给proc与sys的neverallow添加-system_app
full_treble_only(`# /procneverallow {coredomain-init-vold-system_app} proc:file no_rw_file_perms;# /sysneverallow {coredomain-apexd-init-ueventd-vold-system_app} sysfs:file no_rw_file_perms;
  1. 修改domain添加serialno_prop例外
    一般只要修改private下的domain.te
    system/sepolicy/prebuilts/api/33.0/private/domain.te
    system/sepolicy/private/domain.te
    如果要进行扩展,则还要修改
    system/sepolicy/public/domain.te
    system/sepolicy/prebuilts/api/33.0/public/domain.te
    修改compatible_property_only
-    neverallow { domain -init -vendor_init } vendor_default_prop:property_service set;
+    neverallow { domain -init -vendor_init -system_app } vendor_default_prop:property_service set;

修改serialno_prop:file r_file_perms,添加-system_app

完整内容如下

compatible_property_only(`neverallow { domain -init } mmc_prop:property_service set; neverallow { domain -init -vendor_init } exported_default_prop:property_service set; neverallow { domain -init } exported_secure_prop:property_service set; neverallow { domain -init -vendor_init -system_app } vendor_default_prop:property_service set; neverallow { domain -init -vendor_init } storage_config_prop:property_service set; neverallow { domain -init -vendor_init } hw_timeout_multiplier_prop:property_service set; 
')# Do not allow reading device's serial number from system properties except form 
# a few allowed domains.
neverallow {domain-adbd-dumpstate-fastbootd-hal_camera_server-hal_cas_server-hal_drm_serveruserdebug_or_eng(`-incidentd')-init-mediadrmserver-mediaserver-recovery-shell-system_server-vendor_init-system_app
} serialno_prop:file r_file_perms;
  1. property_service set添加例外
    system/sepolicy/prebuilts/api/33.0/private/property.te
    system/sepolicy/private/property.te
    property_service set的neverallow加上-system_app
neverallow { coredomain -init -system_app } {vendor_property_type-vendor_public_property_type
}:property_service set;

property_service set compatible_property_only中的neverallow加上-system_app

compatible_property_only(`# Neverallow coredomain to set vendor propertiesneverallow {coredomain-init-system_writes_vendor_properties_violators-system_app} {property_type-system_property_type-extended_core_property_type}:property_service set;
')
  1. app.te中添加proc,sys例外
    system/sepolicy/prebuilts/api/33.0/public/app.te
    system/sepolicy/public/app.te
    sysfs:dir_file_class_set与proc:dir_file_class_set write的neverallow中添加-system_app
# Write to various pseudo file systems.
neverallow { appdomain -bluetooth -nfc -system_app }sysfs:dir_file_class_set write;
neverallow { appdomain -system_app }proc:dir_file_class_set write;

作者:帅得不敢出门 原创文章谢绝转载收录

相关文章:

  • OSPF : 区域 / 为什么非骨干互访需要经过骨干
  • Mysql时间差8小时解决方案
  • 金三银四-解锁Java并发编程的艺术:掌握多线程、同步和并发控制的精髓
  • 描述 power iteration(幂法)是啥?
  • Openharmony 对应Android内存查看
  • openssl3.2 - 官方demo学习 - server-arg.c
  • 按键开关机的锂电池充放电解决方案
  • vivado 使用项目摘要、配置项目设置、仿真设置
  • docker应用:搭建uptime-kuma监控站点
  • C++学习笔记——私有继承、多重继承、类模板
  • docker搭建pg并通过xorm操作
  • 探寻闲鱼SellerId加解密算法
  • 数据结构:堆和堆排序
  • Docker 部署
  • Mybatis 常用条件语句,大于小于、if、for、模糊搜索、case when、choose
  • .pyc 想到的一些问题
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • fetch 从初识到应用
  • IDEA常用插件整理
  • k8s如何管理Pod
  • Linux快速复制或删除大量小文件
  • Node项目之评分系统(二)- 数据库设计
  • Phpstorm怎样批量删除空行?
  • use Google search engine
  • Vultr 教程目录
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 来,膜拜下android roadmap,强大的执行力
  • 聊聊flink的BlobWriter
  • 跳前端坑前,先看看这个!!
  • 微信小程序填坑清单
  • 无服务器化是企业 IT 架构的未来吗?
  • 如何在招聘中考核.NET架构师
  • ​Java并发新构件之Exchanger
  • ​比特币大跌的 2 个原因
  • #Z0458. 树的中心2
  • #考研#计算机文化知识1(局域网及网络互联)
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (13):Silverlight 2 数据与通信之WebRequest
  • (ibm)Java 语言的 XPath API
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (南京观海微电子)——COF介绍
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)memcache、redis缓存
  • (转)原始图像数据和PDF中的图像数据
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .CSS-hover 的解释
  • .net Application的目录
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .net 无限分类
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • ??myeclipse+tomcat
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @GlobalLock注解作用与原理解析