快速解决Android中的SELinux权限问题
来源:互联网 发布:铁路运输数据 编辑:程序博客网 时间:2024/05/16 12:09
关于selinux的详细资料,请查阅http://blog.csdn.net/innost/article/details/19299937
通过如下命令:
adb shelllogcat | grep 'avc:'查看内核log打印的权限错误提示:
avc: denied { search } for name="/" dev="tmpfs" ino=9626 scontext=u:r:dumpfile:s0 tcontext=u:object_r:tmpfs:s0 tclass=dir permissive=0
我们可以遵循这个方法,从头开始寻找关键对象,然后调整一下顺序,生成一条语句,最后将该语句填写到.te文件(
device\mediatek\common\sepolicy\basic/*.te)中即可
denied { search } u:r:dumpfile:s0 u:object_r:tmpfs:s0 tclass=dir
A B C D
B C D A
allow dumpfile tmpfs: dir {search}
这条语句表示允许dumpfile域中的tmpfs进程搜索文件夹
当然,在调试阶段,可在终端上运行如下命令获取SELinux的状态和临时关闭SELinux
setenforce 0 #设置SELinux 成为Permissive模式(SELinux开启,但对违反SELinux规则的行为只记录,不会阻止)
setenforce 1 #设置SELinux 成为Enforcing模式 (SELinux开启)
getenforce #获取SELinux状态(Permissive,Enforcing,Disabled)
测试的时候也可以在cmdline中加入androidboot.selinux=disabled来关闭SELinux
或者到Android源码的根目录下,直接修改system/core/init/init.c文件
static void selinux_initialize(bool in_kernel_domain) { Timer t; selinux_callback cb; cb.func_log = selinux_klog_callback; selinux_set_callback(SELINUX_CB_LOG, cb); cb.func_audit = audit_callback; selinux_set_callback(SELINUX_CB_AUDIT, cb); if (in_kernel_domain) { INFO("Loading SELinux policy...\n"); if (selinux_android_load_policy() < 0) { ERROR("failed to load policy: %s\n", strerror(errno)); security_failure(); } bool kernel_enforcing = (security_getenforce() == 1); bool is_enforcing = selinux_is_enforcing(); if (kernel_enforcing != is_enforcing) { if (security_setenforce(is_enforcing)) { ERROR("security_setenforce(%s) failed: %s\n", is_enforcing ? "true" : "false", strerror(errno)); security_failure(); } } if (write_file("/sys/fs/selinux/checkreqprot", "0") == -1) { security_failure(); } NOTICE("(Initializing SELinux %s took %.2fs.)\n", is_enforcing ? "enforcing" : "non-enforcing", t.duration()); } else { selinux_init_all_handles(); }}修改security_getenforce()的值(0或者1)。
- 快速解决Android中的selinux权限问题
- 快速解决Android中的SELinux权限问题
- selinux权限快速解决
- MTK Android 5.X selinux权限问题
- MTK Android 5.X selinux权限问题
- MTK Android 5.X selinux权限问题
- Android SeLinux权限问题和解决方法
- Android SELinux avc dennied权限问题
- SELinux 权限问题
- SELinux 权限问题
- selinux android 权限测试
- Android Selinux 权限处理
- Android selinux权限设置
- Android selinux权限设置
- Android selinux权限
- Android之seLinux权限
- Android 中怎样查找SELinux导致的权限受限问题
- 【Android】关于selinux等引起的权限问题
- linux学习笔记(3)
- 智能小车的设计与制作
- 嵌入式中 volatile 用法
- html和activity之间交互
- 安装Qt及相关问题解决
- 快速解决Android中的SELinux权限问题
- mysql语句执行超时设置
- 微信刷卡支付子商户(服务商)
- 第三周项目3
- Bluetooth Remote Controller Linux Kernel Key Report Flow
- $('div').click()事件不能用
- MySQL Update inner join数据库去重,以及根据一张表的值更新另一张表
- DB2 Load命令与DB2_LOAD_COPY_NO_OVERRIDE 注册表变量
- 《Modern Python Cookbook》(Python编程范例)笔记1.2 命名