android上的unix socket的audit2allow给出了空白输出

时间:2017-04-10 09:01:29

标签: android android-source selinux

我有一个应用程序连接到我在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文件来允许这种连接?

2 个答案:

答案 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文件。