2017-04-10 314 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文件。