android SELinux权限适配

抓log方法,

  1. setenforce 0,
    如果不先将selinux设置为permission mode,会导致一个问题。
    程序运行的时候遇到权限策略限制(假设 sepolicy 1),程序运行失败。添加权限(sepolicy 1),然后编译,刷机,重新验证。这时候又遇到(sepolicy 2)的权限策略,又需要进行添加权限的设置。如果程序需要多个权限,就需要反复进行设置权限。影响效率。
    对于将selinux设置为permission mode,分二种方法:1,执行setenforce 0命令即可。2,修改init代码,在初始化的时候设置为permission mode,不同版本方式不一样。

  2. run your apk,
    运行相关的程序,尽可能将程序可能申请的权限相关的代码都执行,防止漏申请相关的权限。只能根据程序log来判断到底需要什么权限。无法申请所有的权限。需要验证user userdebug eng 等不同的版本。
     
  3. Capture error log,
    抓去完整的 kernel log和logcat,过滤其中的avc 关键字log
     
  4. analysis log.
    根据log中的信息,添加对应的sepolicy。对于大部分情况,可以使用如下的方法添加权限,注意对应位置(颜色已经标记)
    This error need this permission W/wpa_cli ( 1354): type=1400 audit(0.0:7): avc: denied { search } for name="wifi" dev="mmcblk0p32" ino=145742 scontext=u:r:mmi:s0 tcontext=u:object_r:wifi_data_file:s0 tclass=dir permissive=0
    allow mmi wifi_data_file:dir search;
    也可以使用命令方式,使用linux工具,自动生成权限语句,类似如下
    adb shell  dmesg | grep avc  | audit2allow 

5.编译

编译和验证

make -j4 selinux_policy

adb push ./system/etc/selinux/* /system/etc/selinux/

adb push ./vendor/etc/selinux/* /vendor/etc/selinux/

6.编译遇到neverallow问题解决

遇到neverallow问题需要自定义权限域,如下是添加到vendor_sysfs_usb_supply权限域中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/55283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql 删除表的所有数据

在 MySQL 中,如果你想要删除一个表中的所有数据,可以使用 TRUNCATE TABLE 命令或者 DELETE 语句。下面是两种方法的对比以及如何使用它们: 使用 TRUNCATE TABLE TRUNCATE TABLE 是一个非常快速的方法来删除表中的所有记录,并且它…

Rasa:开源的机器学习框架

一、Rasa简介 Rasa是一套用来构建基于上下文的AI小助手和聊天机器人框架。 分为两个主要的模块: NLU:自然语言理解模块,实现意图识别以及槽值的提取,将用户的输入转化为结构性数据,在训练过程中,为了提高…

工作日志:el-table在无数据情况下,出现横向滚动条。

1、遇到一个警告。 原因:中的组件不能呈现动画的非元素根节点。 也就是说,Transition包裹的必须是一个单根的组件。 2、el-table在无数据情况下,出现横向滚动条,大概跟边框的设置有关系。 开始排查。 给.el-scrollbar加了一个…

电影《749局》酷燃首映 苗苗神秘感大片释出氛围感拉满

2024 年 9 月 30 日,电影《749 局》在北京举办首映礼,导演陆川携主创王俊凯、苗苗、郑恺、任敏、李晨、杨皓宇出席,演员苗苗在片中饰演 749 局成员夏婳,这个角色天赋异禀,拥有特殊异能,为影片增添一抹神秘色…

如何微信多开

目录 1.找到微信在文件夹的位置 2.建文本,放代码 3.保存文本,更改后缀 4.使用 1.找到微信在文件夹的位置 1.首先找到你微信所在的文件夹,有桌面图标的点击右键属性,找到微信快捷启动exe程序。 2.建文本,放代码 2.…

WebAssembly 为什么能提升性能,怎么使用它 ?

文章目录 简介:起源:前端性能提升历史JIT(Just-In-Time)编译器(即时编译) 为什么需要WebAssembly:WebAssembly能做什么:经常说WASM的性能高,为什么高??使用方法:Emscript…

ServiceEntry WorkloadEntry WorkloadGroup

"ServiceEntry", "WorkloadEntry", 和 "WorkloadGroup" 都是与 Istio 服务网格相关的概念。Istio 是一个连接、保护、控制和观察服务之间交互的平台,它允许您管理微服务网络,而无需直接处理服务的逻辑。 ServiceEntry S…

使用AOP处理参数

说明:在一些时候,我们需要在接口介绍到参数前处理参数,像参数校验、参数转换等,本文介绍如何使用AOP来实现此需求。 场景 需求:有一批开放给第三方调用的接口,之前传递的都是用户表的ID,现在需…

JavaSE总结

1. Java环境基础 JVM, JRE 和 JDK JVM(Java Virtual Machine): 是 Java 虚拟机,负责执行 Java 字节码。JVM 提供了平台无关性,使得 Java 程序可以在不同操作系统上运行。JRE(Java Runtime Environment): …

浅谈C++ 多线程锁处理

一、基本介绍 在C中,多线程编程同样需要处理线程安全问题,C11及更高版本提供了一套标准库来支持多线程编程,包括锁的处理。 二、常见锁处理方式 互斥锁(std::mutex): std::mutex是最基本的锁类型&#xf…

“改善就医感受 提升患者体验”经验交流首场活动在呼市顺利举行

2024年9月26日至27日,以“医疗机构高质量发展 促进医改全面深化”为主题的“改善就医感受 提升患者体验”经验交流系列活动(以下简称:系列活动)首场活动在内蒙古呼和浩特顺利举行。 活动现场 患者体验,并不等同于患者…

网站架构部署——LAMP、LNMP

文章目录 网站架构部署——LAMP、LNMPLAMP安装顺序编译安装Apache httpd服务编译安装mysqld 服务编译安装PHP 解析环境安装论坛安装博客 LNMPyum集中式安装LNMPyum分布式安装LNMP20.0.0.50安装nginx20.0.0.51安装mysql20.0.0.52安装php20.0.0.50配置 nginx 支持 PHP 解析测试my…

CleanMyMac X v4.12.1 中文破解版 Mac优化清理工具

在数字时代,我们的Mac设备承载着越来越多的重要信息和日常任务。然而,随着时间的推移,这些设备可能会变得缓慢、混乱,甚至充满不必要的文件。这就是CleanMyMac X发挥作用的地方。 CleanMyMac X是一款功能强大的Mac优化工具&#…

获取 Jupyter Notebook IPython kernel 在电脑中的目录位置

获取 Jupyter Notebook IPython kernel 在电脑中的目录位置 正文 正文 在 VS code 的 terminal 中或者 Windows 的命令行中使用如下代码即可。 ipython locate运行后得到如下结果: 如图所示,我们获取到了 ipython 的位置。 如果大家觉得有用&#xf…

自动驾驶汽车横向控制方法研究综述

【摘要】 为实现精确、稳定的横向控制,提高车辆自主行驶的安全性和保障乘坐舒适性,综述了近年来自动驾驶汽车横向控制方法的最新进展,包括经典控制方法和基于深度学习的方法,讨论了各类方法的性能特点及在应用中的优缺点&#xff…

使用transformers调用owlv2实现开放目标检测

目录 安装Demo 安装 pip install transformersDemo from PIL import Image, ImageDraw, ImageFont import numpy as np import torch from transformers import AutoProcessor, Owlv2ForObjectDetection from transformers.utils.constants import OPENAI_CLIP_MEAN, OPENAI_…

PTA L1-079 天梯赛的善良

L1-079 天梯赛的善良(20分) 天梯赛是个善良的比赛。善良的命题组希望将题目难度控制在一个范围内,使得每个参赛的学生都有能做出来的题目,并且最厉害的学生也要非常努力才有可能得到高分。 于是命题组首先将编程能力划分成了 10…

Python日常搜索_random

random.random() 返回随机生成的一个实数&#xff0c;它在[0,1)范围内random.uniform random.uniform(a, b)&#xff0c;用于生成一个指定范围内的随机符点数&#xff0c;两个参数其中一个是上限&#xff0c;一个是下限。如果a > b&#xff0c;则生成的随机数n: b < n &l…

现实的谷歌SEO服务商是怎样的?

许多客户在咨询SEO服务时&#xff0c;常常会问到如何在短时间内将某个关键词推上谷歌首页&#xff0c;甚至是第一名。对于这种问题&#xff0c;专业的SEO服务商通常无言以对。SEO的基础是网站本身&#xff0c;而并非凭空捏造或者一夜之间就能实现效果的 SEO需要从网站的基本情况…

CNES实时轨道、钟差,硬件延迟精度评估

CNES实时产品评估以COD事后产品作为参考&#xff0c;采用cnt文件产品&#xff0c;目前最精确的轨道是GPS&#xff0c;但由于伽利略最稳定的原子钟弥补了伽利略轨道上的系统误差&#xff0c;Galileo的轨道钟差SISRE低于GPS,Galileo和GPS的SISRE分别为1.6cm和2.3cm&#xff0c;GL…