我是Android的根 -app上的开发人员。
可悲的是,现在在某些设备/ROM上,强制模式下有 SELinux ,它阻止了我的应用程序执行某些操作。
因为这是一个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 -file的想法,以允许被阻止的命令并触发它的重新加载,但是我不确定这是否可行以及如何工作,也不是一个好主意。谁对我有更多提示或资源?
最佳答案
您可以在SuperSU应用程序中使用 supolicy
,请参阅链接以获取详细说明,以及何时以及如何调用它。
简而言之:
dmesg | grep "audit"
allow ...
规则。它们与SELinux * .te文件中的“允许”规则相似(相同?)。 supolicy --live "allow ..."
并检查操作是否现在成功。如果没有,请扩展您的“允许”规则。您可以在一个supolicy
调用中指定多个“允许”规则。 请注意,
supolicy
是一项昂贵的操作,因此请确保仅调用一次。如果您不想依赖Chainfire的SuperSU,则可以尝试
sepolicy-inject
。我没有自己测试。关于android - 暂时在Android上禁用或修改SELinux,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19207479/