我正在尝试编译AOSP,并且一次编译成功后,由于Android SElinux implementation,我更改了一些selinux规则,然后,我进入AOSP根目录并运行m
,确实找到了一些差异,并且似乎编译了一个新的boot.img(由于它生成的时间),但是在我用fastboot flashall -w
对其进行刷新之后,dmesg仍然显示了avc sepolicy失败,这是我刚刚添加的
所以问题是我的例程做错了吗? 还有什么简便的方法可以确定我修改过的Sepolic是否已编译到boot.img中?
也许有些机制我会误解或忽略?
PS:Branch是带有午餐42的android-9.0.0_r2 我尝试过先在/ system / sepolicy下运行mm(在其中更改了te),然后再运行 m ,但这仍然是问题
答案 0 :(得分:1)
通常是的,更改.te文件后应该更新boot.img,但是我不确定构建脚本是否会对此进行检查,因此您可以在删除与sepolicy相关的中间文件后重新构建引导映像。
检查policy.conf
文件夹中的out
文件是否已使用新规则进行更新。
您还可能想阅读https://www.whitewinterwolf.com/posts/2016/08/15/examine-android-selinux-policy/和https://ge0n0sis.github.io/posts/2015/12/exploring-androids-selinux-kernel-policy/#dumping-sepolicy-back-to-policyconf
答案 1 :(得分:1)
要回答第二个问题:您可以unpack the boot.img并检查您的规则是否已与sepolicy-analyze添加在一起。
示例:
. build/envsetup.sh
lunch
# List all known attributes
sepolicy-analyze <path-to-your-extracted-sepolicy-file> attribute -l