file_contexts(system/bin/添加)

本文解决了一个在编译Android 4.1.2源码时遇到的问题:即编译后system.img中缺失手动添加到system/bin目录下的二进制文件。通过对比不同版本的file_contexts文件定位到了问题所在,并给出了修改建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      最近在编译android4.1.2源码的时候,想在"out/target/……/system/bin/"目录添加几个二进制文件;但是每次把二进制文件拷贝到"out/target/……/system/bin/"目录后,在回到源码根目录“make -j8”生成system.img文件后,我从新打开system.img文件或者刷机到板子上面,总是没有我添加到那几个二进制文件!很是纳闷!如果一直这样工作就费劲了!每次添加都要使用adb push …… 一个一个推到"system/bin“目录!麻烦!因为我在4.0 和 4.2源码根本就不会出现这这种情况!所以就仔细找了下原因!真被我找到了!虽然我也不是太理解!但是总算把问题解决了!在此做个笔记!

1)我打印了”make -j8"的输出文件,”diff“命令比较了下,也没发现什么不同的!单我发现了”file_contexts"文件;

2)我又比较了下Android4.2 和 Android4.1 out/target/product/panda/root/file_contexts文件;不确定是不是下图file_contexts文件的那一项造成的;

3)我把Android4.2的file_contexts直接到拷贝替换掉Android4.1的file_contexts文件;测试了OK(make -j8生成system.imge文件,simg2img生成system.img.ext4文件,挂载system.img.ext4到temp文件,ls temp/bin/得到如下截图);说明我的问题就是file_contexts文件引起的;下图红色圈内是我添加的二进制文件;

 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        以上问题找到了具体的原因,是因为Android4.1.2源码file_contexts文件少了”/system/bin/run-as  --  u:object_r:runas_exec:s0”引起的!我在4.1.2file_contexts文件里面添加了如下图,就可以了!

--------------------------------------------------------------------------------------------------------------------------------------------------

       昨天安照上图的改法编译源码可以,解压system.img也有自己需要的二进制文件;但是今天早上过来再编译,就不可以了,仔细看了输出的错误信息!runas_exec未定义!所以我就把上图中的runas_exec改为shell_exec;就OK了;

FAILED: out/target/product/k69v1_64_k419/obj/FAKE/sepolicy_neverallows_intermediates/sepolicy_neverallows /bin/bash -c "(ASAN_OPTIONS=detect_leaks=0 out/host/linux-x86/bin/checkpolicy -M -c 30 -o out/target/product/k69v1_64_k419/obj/FAKE/sepolicy_neverallows_intermediates/sepolicy_neverallows.tmp out/target/product/k69v1_64_k419/obj/FAKE/sepolicy_neverallows_intermediates/policy.conf ) && (out/host/linux-x86/bin/sepolicy-analyze out/target/product/k69v1_64_k419/obj/FAKE/sepolicy_neverallows_intermediates/sepolicy_neverallows.tmp neverallow -w -f out/target/product/k69v1_64_k419/obj/FAKE/sepolicy_neverallows_intermediates/policy_2.conf || ( echo \"\" 1>&2; echo \"sepolicy-analyze failed. This is most likely due to the use\" 1>&2; echo \"of an expanded attribute in a neverallow assertion. Please fix\" 1>&2; echo \"the policy.\" 1>&2; exit 1 ) ) && (touch out/target/product/k69v1_64_k419/obj/FAKE/sepolicy_neverallows_intermediates/sepolicy_neverallows.tmp ) && (mv out/target/product/k69v1_64_k419/obj/FAKE/sepolicy_neverallows_intermediates/sepolicy_neverallows.tmp out/target/product/k69v1_64_k419/obj/FAKE/sepolicy_neverallows_intermediates/sepolicy_neverallows )" libsepol.report_failure: neverallow on line 1323 of system/sepolicy/public/domain.te (or line 13736 of policy.conf) violated by allow init sys_led_brightness_file:dir { write create add_name remove_name rmdir }; libsepol.report_failure: neverallow on line 1323 of system/sepolicy/public/domain.te (or line 13736 of policy.conf) violated by allow vendor_init sys_led_brightness_file:dir { write create add_name remove_name rmdir }; libsepol.check_assertions: 2 neverallow failures occurred Error while expanding policy
最新发布
08-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值