为允许采用细粒度策略,SEAndroid使用“ allowx”来限制ioctl命令的操作,例如:
# only allow unprivileged socket ioctl commands
allowxperm { appdomain -bluetooth } self:{ rawip_socket tcp_socket udp_socket } ioctl { unpriv_sock_ioctls unpriv_tty_ioctls };
相关的宏在https://android.googlesource.com/platform/system/sepolicy/+/master/public/ioctl_macros
中定义问题是: 如何从设备中的Sepolicy二进制文件中获得这样的“ allowx”规则?使用setool(https://github.com/xmikos/setools-android)时,只能反编译从设备转储的Sepolicy文件中的“允许”规则。