2017-04-10 317 views
0

我有连接到我的socket服务器媒体服务器内运行(在我的音频HAL)audit2allow在Android上的Unix套接字给人空白输出

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文件,但它返回一个空规则:

[email protected]:~$ audit2allow -i ~/gps-ott/selinux/denied.txt -m appcon 

module appcon 1.0; 



[email protected]:~$ 

有人能指出我我做错了什么,还是什么TE文件可以用来让这款C onnection?

回答

1

您是否从'out'提供编译后的sepolicy? 你应该。

audit2allow -p ./out/target/product/<your-device>/root/sepolicy 
+0

你是什么意思'从'出'sepolicy? ' – Thermatix

+0

android boot.img编译的产品之一是'sepolicy'文件。这是文件 – skoperst

+0

哦,嗯,我只问,因为我得到同样的问题,但在RHEL的nginx,但我不知道是否原因是审计显示'res = success'相同的问题对于nginx',尽管nginx获取访问拒绝的美洲狮套接字。 – Thermatix

0

首先,您的二进制文件out/target/product // root/sepolicy必须存在。

在此之后:

1-清洁dmesg的缓冲器,启动命令:

sudo dmesg -c 

2-发射应用程式,其创建了有趣的dmesg线(即,“[251.022149]类型= 1400审计(1491810054.932:24):avc:denied {connectto} for pid = ...“)

之后,本地化好'audit2allow'脚本(不要使用/ usr/bin/audit2allow之一,随AOSP安装一起提供,例如external/selinux/prebuilts/bin/audit2allow)

然后,在其推出的经典“亚行连接后安装在PC推出的AOSP> targeted_device_ @ IP <

adb shell su root dmesg | ./external/selinux/prebuilts/bin/audit2allow -p out/target/product/<your_product_name>/root/sepolicy 

此命令将提供给你的好SEpolicy规则来创建自己的。 te SEpolicy文件。