android - 临时禁用或修改 Android 上的 SELinux

标签 android selinux

我是 Android 的 root-应用程序的开发人员。

遗憾的是,现在在某些设备/ROM 上,SELinux 处于 enforce 模式并阻止我的应用执行某些操作。

因为这是一个 root 应用程序,所以用户授予我 root 访问权限!

现在,SELinux 阻止了我的一些操作,我需要为此找到解决方案。

我尝试通过

暂时禁用 SELinux
setenforce permissive -> no failure, but getenforce still returns "Enforcing"
echo 0 > /sys/fs/selinux/enforce -> no failure, but getenforce still returns "Enforcing"

我想在运行时编辑 sepolicy-文件以允许被阻止的命令并触发重新加载它,但我不确定这是否以及如何工作,也不是这不是个好主意。

谁有更多的提示或资源给我?

最佳答案

您可以使用 supolicy从 SuperSU 应用程序中,查看链接以了解何时以及如何调用它的详细说明。

简而言之:

  • 通过检查审计消息找出 SELinux 阻止某些内容的原因,例如dmesg | grep "审计"
  • 创建一个允许被阻止操作的 allow ... 规则。它们与 SELinux *.te 文件中的“允许”规则相似(相同?)。
  • 在 root shell 中运行 supolicy --live "allow ..." 并检查操作现在是否成功。如果没有,请扩展您的“允许”规则。您可以在单个 supolicy 调用中指定多个“允许”规则。

请注意,supolicy 是一项昂贵的操作,因此请确保只调用一次。

如果你不想依赖 Chainfire 的 SuperSU,你可以试试 sepolicy-inject .我自己没有测试。

关于android - 临时禁用或修改 Android 上的 SELinux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19207479/

相关文章:

javascript - iPhone 和 Android 上发生的表单操作属性链接

android - 单击 onCLickListener 按钮调用另一个模块

Android 3 手指触摸检测

linux - Apache 用户无法在 777 目录中创建文件

php - 告诉 SELinux 授予 Apache 对文档根目录外的 PHP 文件的执行访问权限

python - 无法运行位于android源代码中的audit2allow

php - 从mysql数据库一次向多个用户发送gcm

android - 具有负值和正值的 NumberPicker

Tomcat7没有写权限

android - 从 APP 运行 "ps"命令的 SELinux 策略