首页 > 其他分享 >Android 重新定义文件类型 解决neverallow的问题

Android 重新定义文件类型 解决neverallow的问题

时间:2023-08-29 17:23:12浏览次数:63  
标签:audio app system file neverallow device 文件类型 Android te

添加权限后编译报错,neverallow xxx

跟本原因是 赋予的权限过⼤,缩⼩范围即可,解决⽅法:缩⼩范围(声明和指定具体需要访问的节点)后即可编译通过

1.思路

敏感权限的特征:log中带有c512,c768字样
试着在untrusted_app.te 中添加了
allow untrusted_app audio_device:chr_file { open write read };
还是报如下权限错误:
[ 141.935275] type=1400 audit(1546939304.786:43): avc: denied { write } for
pid=1836 comm="Thread-4" name="pcmC0D1c" dev="tmpfs" ino=11947
scontext=u:r:untrusted_app:s0:c512,c768 tcontext=
u:object_r:audio_device:s0 tclass=chr_file permissive=1
先确认需要访问的节点是否为audio_device,这个节点属于敏感权限,可以的话请修改访问的⽬录和⽂件,
缩⼩audio_device的范围
⽅法为1:确定访问的节点位置,通过源码或者log确定到底访问的哪⼀个具体的节点, 例如
/dev/pcmc00xx
2:在相应的te⽂件中新声明⼀个节点名称,如 file.te: type test_audio_device,
dev_type;
3:在file_context中将具体节点绑定新的节点名称,如: file_context: /dev/pcmc00xx
u:object_r:test_audio_device:s0
4. 增加或修改需要的权限:allow untrusted_app test_audio_device:chr_file {
open write read };
如果不过GMS认证,敏感权限(c512,c768)可以直接把对象关联mlstrustedobject,但不推荐这样修改,
会造成严重的安全问题:
例如:typeattribute audio_device mlstrustedobject;

2.实践

报错:

libsepol.report_failure: neverallow on line 129 of system/sepolicy/private/coredomain.te (or line 39405 of policy.conf) violated by allow system_app sysfs:file { read open };
libsepol.report_failure: neverallow on line 579 of system/sepolicy/public/domain.te (or line 12247 of policy.conf) violated by allow system_app serialno_prop:file { read getattr map open };

对于第一个报错:减小访问范围,将要访问的 sysfs 类型文件 具体化

android P 修改sysfs的 u:object_r:失效问题分析_weixin_32104133的博客-CSDN博客

1.在device\rockchip\common\sepolicy\vendor\file.te 中定义新的类型

system/sepolicy/public/property.te

2.指定新定义类型 所对应的文件节点  device\rockchip\common\sepolicy\vendor\file_contexts

/sys/devices/platform/fd800000.usb(/.)?             u:object_r:sysfs_lj:s0

3.使用新定义的类型

allow system_app sysfs_lj:file { getattr open read };

对于第二个报错:新定义属性类型 

添加系统属性  |  Android 开源项目  |  Android Open Source Project (google.cn)

1.定义类型device\rockchip\common\sepolicy\vendor\property.te

system_public_prop(serialno_prop_lj)

2.指定新属性类型对应的属性 device\rockchip\common\sepolicy\vendor\property_contexts

ro.serialno                             u:object_r:serialno_prop_lj:s0
ro.boot.serialno                        u:object_r:serialno_prop_lj:s0 

3.使用新定义的属性类型

allow system_app serialno_prop_lj:file { getattr map open read };

 

   

标签:audio,app,system,file,neverallow,device,文件类型,Android,te
From: https://www.cnblogs.com/wanglongjiang/p/17665397.html

相关文章

  • Android并发编程高级面试题汇总(含详细解析 十二)
    Android并发编程高级面试题汇总最全最细面试题讲解持续更新中......
  • 无涯教程-Android - 应用组件
    应用程序组件是Android应用程序的基本组成部分,这些组件需要在应用程序清单文件AndroidManifest.xml注册,该文件描述了应用程序的每个组件以及它们如何交互。Android应用程序可以使用以下四个主要组件-Sr.NoComponents&描述1Activities它们指示UI,并处理用户与智能手机......
  • Android studio 连接安卓设备
    下载连接工具https://developer.android.com/studio/releases/platform-tools?hl=zh-cn加到环境变量Windows或Linux、Mac使用命令adbconnect192.168.**.**#需要连接的安卓设备IP如果出现cannotconnectto192.168..:5555:由于目标计算机积极拒绝,无法连接。(10061)则......
  • 无涯教程-Android - 环境设置
    您可以从Oracle的Java网站下载最新版本的JavaJDK-JavaSE下载,您将在下载的文件中找到有关安装JDK的说明,按照给定的说明安装和配置安装程序。最后,将PATH和JAVA_HOME环境变量设置为引用包含java和javac的目录,通常分别是java_install_dir/bin和java_install_dir。如果您正......
  • Android开发|备战金九银十,LeetCode高频面试题合集
    金九银十来了,你准备好备战了么!而最高效的准备方式,不外乎刷题、刷题、刷题。刷题就不得不提LeetCode了~俗话说的好:LeetCode刷不好,一面都过不了。所以,今天就将一些LeetCode大厂高频面试题整理成合集分享给大家,希望能助大家一臂之力~有需要的小伙伴,可以点击下方课程链接详细了解!!!h......
  • [Android 分享] [教程] 微信抓不到包?根本不存在!----一招搞定微信内置浏览器抓包
    [教程]微信抓不到包?根本不存在!----一招搞定微信内置浏览器抓包-『移动安全区』-吾爱破解-LCG-LSG|安卓破解|病毒分析|www.52pojie.cn 所需工具1.一部手机2.一台电脑3.一条数据线情景模拟某个网页只能在微信中打开,但我想要抓包调试怎么办?1.HttpCannary(小......
  • Android平台签名证书(.keystore)生成
    安装JRE环境地址:https://www.oracle.com/java/technologies/downloads/#java8C:\ProgramFiles\Java\jdk-1.8这是我都默认安装地址安装成功后配置环境变量%JAVA_HOME%\bin生成签名证书使用keytool-genkey命令生成证书:keytool-genkey-aliastestalias-keyalgRSA-keysize2048......
  • 深入探讨Android启动优化策略
    在当今激烈竞争的移动应用市场,应用的启动速度直接影响着用户的第一印象和满意度。作为主流的移动操作系统之一,Android的启动优化是开发者必须关注的关键领域。本文将详细介绍一些强大有效的Android启动优化策略,帮助你优化应用的启动过程,为用户创造更出色的体验。冷启动与热启动在着......
  • Android Audio
    1.最常接触到的audioserviceframeworks\base\services\core\java\com\android\server\audio\AudioService.java初始化音量的代码//Initializevolume//Priority1-AndroidProperty//Priority2-AudioPolicyService//Priority3-Defau......
  • cocos2dx 如何编译android 打包
    先要配置NDK,然后启动CMD命令进入到自己的游戏根目录,我的是starGame,所以如上所示:......