Android 10 如何关闭selinux权限
由于应用层访问设备节点的时候,因为selinux权限问题而访问不了,所以就先关闭selinux
代码路径:
system/core/init/selinux.cpp
1、在/selinux.cpp文件中SelinuxInitialize()方法初始化selinux权限问题
void SelinuxInitialize() {Timer t;LOG(INFO) << "Loading SELinux policy";if (!LoadPolicy()) {LOG(FATAL) << "Unable to load SELinux policy";}bool kernel_enforcing = (security_getenforce() == 1);bool is_enforcing = IsEnforcing();if (kernel_enforcing != is_enforcing) {if (security_setenforce(is_enforcing)) {PLOG(FATAL) << "security_setenforce(%s) failed" << (is_enforcing ? "true" : "false");}}if (auto result = WriteFile("/sys/fs/selinux/checkreqprot", "0"); !result) {LOG(FATAL) << "Unable to write to /sys/fs/selinux/checkreqprot: " << result.error();}// init's first stage can't set properties, so pass the time to the second stage.setenv("INIT_SELINUX_TOOK", std::to_string(t.duration().count()).c_str(), 1);
}
2、在/selinux.cpp文件中IsEnforcing()方法中直接返回false就是关闭selinux权限了
bool IsEnforcing() {+ return false;{int fd(open("/mboot/selinux", O_RDONLY | O_CLOEXEC | O_BINARY));if (fd != -1) {char v = 0xff;if (read(fd, &v, 1) < 0)PLOG(ERROR) << "Failed to read /mboot/selinux";close(fd);LOG(WARNING) << "/mboot/selinux is " << v;return v == '1';}}if (ALLOW_PERMISSIVE_SELINUX) {return StatusFromCmdline() == SELINUX_ENFORCING;}return true;
}
设置版本为 permissive 模式,有三种方式
方法一、命令行方式
adb root; adb shell setenforce 0
该方式仅适用于 userdebug 版本,系统重启修改会失效
方法二、 修改 dts bootargs 参数
board 对应的 dts 文件里,在 bootargs 参数里增加 androidboot.selinux=permissive 字段。
该方式仅适用于 userdebug 版本,系统重启仍然有效.
方法三、修改 init 代码
可以修改 system/core/init/selinux.cpp 文件里的 IsEnforcing()
函数,将该函数直接返回 false。
bool IsEnforcing() {+ return false;
该方式适用 user 和 userdebug 版本,系统重启仍然有效
Android 10 如何关闭selinux权限相关推荐
- Android 10.0关闭selinux权限
在开发中,我们经常会遇到由于SELinux造成的各种权限不足,即使拥有"万能的root权限",也不能获取全部的权限,所以怎么样关闭selinux权限呢 system/core/in ...
- 如何关闭selinux权限
前 言 有时为了测试方便和其他目的需要关闭掉selinux权限,但是这样做是非常危险的一件事,google 也是不推荐这样做的,本文章是使用Android 10,来做的测试. 实现部分 代码路径:sy ...
- android+关闭selinux权限问题,快速解决Android中的selinux权限问题【转】
在Android开发的过程中,遇到关于selinux相关的东西,当时还一下子看不懂,现在好像有点眉目了. 比如,内核打印这个提示 type=1400 audit(32.939:25): avc: de ...
- Android 各版本关闭 Selinux 的方法
运行时调试开关 Selinux Cmd Discription Other adb shell getenforce 查看当前 Selinux 功能是 permissive(关闭)还是 enfor ...
- Android 10+ wifi使用相关权限问题
前言 针对附近 Wi-Fi 设备的新运行时权限:Android 13 引入了 NEARBY_WIFI_DEVICES 权限,该权限属于 NEARBY_DEVICES 权限组,适用于会管理设备与附近 W ...
- [Android Pro] 临时关闭selinux模式 setenforce 0
setenforce 0 设置SELinux 成为permissive模式 临时关闭selinux的
- android 10.0关闭gps定位功能
1.概述 在10.0的产品定制化开发中,有些是不需要gps定位功能的,所以就需要屏蔽掉gps上报定位数据的功能,而在framework层中是通过/frameworks/base/location/ja ...
- Android 10动态申请读写权限
1.在AndroidManifest.xml中添加权限 <?xml version="1.0" encoding="utf-8"?> <man ...
- [Android]开机自启动脚本和selinux权限配置
概述 在前段时间的工作中,需要开发一个开机自动启动的脚本,现把开发过程记录一下 主要框架 编写一个可以开机自动启动的脚本,方法就是通过rc文件,在boot_complete=1时,去启动这个服务,那么 ...
最新文章
- Linux 操作系统原理 — 零拷贝技术
- pytorch安装-Windows(pip install失败)
- 【Qt】QModbusTcpServer类
- 代数式的书写规范八种_中考数学一轮复习-第2节代数式与整式运算
- ashx和asmx的HttpContext
- python图像数独_Python图像识别+KNN求解数独的实现
- 胡润富豪榜2020出炉,雷军身价是任正非的十倍?
- 基础算法 —— 模拟思维
- 云商城云小店官网源码-修复30套模板支持一键对接各大系统
- linux samba安装配置 总结
- FishC《零基础学习python》笔记--第001讲:我和Python的第一次亲密接触
- apple苹果IOS内购申请教程协议、税务和银行业务配置
- 杨承润:世界首席创业家导师杨承润,创业16年,杨承润和他的《慧眼经营思维》
- JavaScript 基本面试问题总结
- IPage能正常显示数据,但是total一直等于0
- CAD7:构造线的使用 【TR剪掉多余的线】
- windows10安装oracle数据库
- 编译原理 实验2 语法分析器的构造
- c语言学生成绩统计问题分析,统计计算学生成绩类有关问题ACing
- WinDriver驱动程序框架
热门文章
- 混合 APP 开发(Hybrid App)
- Docker-提交(Commit)自己的一个镜像
- 学习Figma心得体会
- vue+eslint+prettier格式化
- 用框架解决问题(系统思维)
- c语言测试答案,c语言测试题
- 如何大批量扫描的发票进行ocr识别导出Excel表格和WPS表格
- 色铅笔绘画入门(1)-了解色铅笔和其他绘画工具
- 2020最全影视站解析接口
- pymongo.errors.OperationFailure: Authentication failed., full error: {‘ok‘: 0.0, ‘errmsg‘: ‘Authenti