Audit2allow for Unix Socket on Android 给出空白输出



我有一个应用程序连接到在媒体服务器中运行的套接字服务器(在我的音频 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 文件来允许这种连接吗?

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

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

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

在此之后:

1- 要清理 DMESG 缓冲区,请启动以下命令:

sudo dmesg -c

2-启动您的应用程序,该应用程序创建有趣的DMESG行(即"[ 251.022149] type=1400 audit(1491810054.932:24(:avc:拒绝{连接} for pid=..."(

在此之后,本地化好的"audit2allow"脚本(不要使用/usr/bin/audit2allow 脚本,而是使用 AOSP 安装附带的脚本,例如 external/selinux/prebuilds/bin/audit2allow(

然后,在启动经典的"adb 连接>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 文件。

最新更新