由于应用层访问设备节点的时候,因为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权限相关推荐

  1. Android 10.0关闭selinux权限

    在开发中,我们经常会遇到由于SELinux造成的各种权限不足,即使拥有"万能的root权限",也不能获取全部的权限,所以怎么样关闭selinux权限呢 system/core/in ...

  2. 如何关闭selinux权限

    前 言 有时为了测试方便和其他目的需要关闭掉selinux权限,但是这样做是非常危险的一件事,google 也是不推荐这样做的,本文章是使用Android 10,来做的测试. 实现部分 代码路径:sy ...

  3. android+关闭selinux权限问题,快速解决Android中的selinux权限问题【转】

    在Android开发的过程中,遇到关于selinux相关的东西,当时还一下子看不懂,现在好像有点眉目了. 比如,内核打印这个提示 type=1400 audit(32.939:25): avc: de ...

  4. Android 各版本关闭 Selinux 的方法

    运行时调试开关 Selinux   Cmd Discription Other adb shell getenforce 查看当前 Selinux 功能是 permissive(关闭)还是 enfor ...

  5. Android 10+ wifi使用相关权限问题

    前言 针对附近 Wi-Fi 设备的新运行时权限:Android 13 引入了 NEARBY_WIFI_DEVICES 权限,该权限属于 NEARBY_DEVICES 权限组,适用于会管理设备与附近 W ...

  6. [Android Pro] 临时关闭selinux模式 setenforce 0

    setenforce 0 设置SELinux 成为permissive模式 临时关闭selinux的

  7. android 10.0关闭gps定位功能

    1.概述 在10.0的产品定制化开发中,有些是不需要gps定位功能的,所以就需要屏蔽掉gps上报定位数据的功能,而在framework层中是通过/frameworks/base/location/ja ...

  8. Android 10动态申请读写权限

    1.在AndroidManifest.xml中添加权限 <?xml version="1.0" encoding="utf-8"?> <man ...

  9. [Android]开机自启动脚本和selinux权限配置

    概述 在前段时间的工作中,需要开发一个开机自动启动的脚本,现把开发过程记录一下 主要框架 编写一个可以开机自动启动的脚本,方法就是通过rc文件,在boot_complete=1时,去启动这个服务,那么 ...

最新文章

  1. Linux 操作系统原理 — 零拷贝技术
  2. pytorch安装-Windows(pip install失败)
  3. 【Qt】QModbusTcpServer类
  4. 代数式的书写规范八种_中考数学一轮复习-第2节代数式与整式运算
  5. ashx和asmx的HttpContext
  6. python图像数独_Python图像识别+KNN求解数独的实现
  7. 胡润富豪榜2020出炉,雷军身价是任正非的十倍?
  8. 基础算法 —— 模拟思维
  9. 云商城云小店官网源码-修复30套模板支持一键对接各大系统
  10. linux samba安装配置 总结
  11. FishC《零基础学习python》笔记--第001讲:我和Python的第一次亲密接触
  12. apple苹果IOS内购申请教程协议、税务和银行业务配置
  13. 杨承润:世界首席创业家导师杨承润,创业16年,杨承润和他的《慧眼经营思维》
  14. JavaScript 基本面试问题总结
  15. IPage能正常显示数据,但是total一直等于0
  16. CAD7:构造线的使用 【TR剪掉多余的线】
  17. windows10安装oracle数据库
  18. 编译原理 实验2 语法分析器的构造
  19. c语言学生成绩统计问题分析,统计计算学生成绩类有关问题ACing
  20. WinDriver驱动程序框架

热门文章

  1. 混合 APP 开发(Hybrid App)
  2. Docker-提交(Commit)自己的一个镜像
  3. 学习Figma心得体会
  4. vue+eslint+prettier格式化
  5. 用框架解决问题(系统思维)
  6. c语言测试答案,c语言测试题
  7. 如何大批量扫描的发票进行ocr识别导出Excel表格和WPS表格
  8. 色铅笔绘画入门(1)-了解色铅笔和其他绘画工具
  9. 2020最全影视站解析接口
  10. pymongo.errors.OperationFailure: Authentication failed., full error: {‘ok‘: 0.0, ‘errmsg‘: ‘Authenti