我有一个应用程序连接到我在mediaserver中运行的套接字服务器(在我的音频HAL中)
连接时,SElinux会抛出此日志(来自dmesg):
[ 251.022149] type=1400 audit(1491810054.932:24): avc: denied { connectto } for pid=9065 comm="com.gps.app1" path=0073727663 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:r:mediaserver:s0 tclass=unix_stream_socket permissive=1
我尝试将它提供给audit2allow以获取te文件,但它返回一个空白规则:
gps@gps-HP-ProBook-4540s:~$ audit2allow -i ~/gps-ott/selinux/denied.txt -m appcon
module appcon 1.0;
gps@gps-HP-ProBook-4540s:~$
有人能指出我做错了什么,或者用什么te文件来允许这种连接?
答案 0 :(得分:1)
您是否提供了来自' out'的编译后的sepolicy? 你应该。
audit2allow -p ./out/target/product/<your-device>/root/sepolicy
答案 1 :(得分:0)
首先,您的二进制文件out / target / product // root / sepolicy必须存在。
之后:
1-清理dmesg缓冲区,启动命令:
sudo dmesg -c
2-启动您的应用程序,创建有趣的dmesg行(即&#34; [251.022149]类型= 1400审核(1491810054.932:24):avc:拒绝{connectto} for pid = ...&#34;)
在此之后,本地化好的审计2允许&#39;脚本(不要使用/ usr / bin / audit2允许一个,但是你的AOSP安装一个,例如external / selinux / prebuilts / bin / audit2allow)
然后,在启动经典&#39; adb connect&gt; targeted_device_ @ ip&lt;之后,从安装了AOSP的PC上启动
adb shell su root dmesg | ./external/selinux/prebuilts/bin/audit2allow -p out/target/product/<your_product_name>/root/sepolicy
此命令将为您提供良好的SEpolicy规则,以创建您自己的.te SEpolicy文件。