Android系统文件安全权限检测/system/build.prop修改

本文详细介绍了在Android4.4系统中,通过修改system/build.prop文件权限导致无法正常启动的问题,并提供了解决方案。主要涉及到跳过文件安全检测的代码修改以及make编译流程的注意事项。

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

Android4.4上修改system/build.prop的文件权限后,导致系统不能正常启动,需把权限修改回0644,才能正常启动。

追踪串口,发现错误:


由于需要应用修改sytem/build.prop文件,所以得跳过system/build.prop的文件安全检测,代码在system/core/init/util.c中,注释掉这段



make编译.img

<think>嗯,用户的问题是关于MTK平台编译时system/build.prop文件未更新的情况。这个问题在Android系统开发中挺常见的,需要仔细分析可能的原因。 用户可能是MTK平台的开发者或系统工程师,正在编译定制ROM时遇到了build.prop未更新的问题。用户可能已经尝试过重新编译但问题依旧存在,所以比较着急。深层需求应该是要彻底解决编译系统时的配置同步问题。 从技术角度看,build.prop文件生成涉及多个环节:Makefile调用buildinfo.sh脚本、叠加system.prop配置、设备特定配置追加等。引用1提到build.prop是由build/tools/buildinfo.sh生成,并会追加system.prop的配置。引用3提到权限问题可能导致文件写入失败,这提示我们需要检查SELinux策略。 常见原因可能有五个方面:首先是编译缓存问题,clean操作不彻底会导致残留旧文件;其次是配置覆盖逻辑,device/或vendor/下的定制配置可能覆盖了修改;第三是脚本执行错误,buildinfo.sh执行异常会影响文件生成;第四是文件权限问题,特别是SELinux策略限制;最后是编译环境问题,如Python版本不兼容等。 针对这些可能性,建议用户先执行最彻底的全量编译clean,然后检查device目录下的配置优先级。如果问题依旧,需要检查buildinfo.sh脚本是否正常输出,并查看编译日志中的avc denied提示。特别要注意vendor/mtk/proprietary/下的设备专属配置。 用户可能还需要检查几个关键点:build/core/main.mk中的PRODUCT_DEFAULT_PROPERTY_OVERRIDES设置,以及是否在BoardConfig.mk中错误设置了TARGET_SYSTEM_PROP。对于SELinux问题,可以临时切换为宽容模式测试。 如果用户需要更具体的帮助,建议提供编译日志片段,特别是"Generating build.prop"相关输出和任何错误信息。这类问题通常需要结合具体日志分析,因为不同MTK平台版本(如Android 8.0或11)的编译流程会有差异。</think>在MTK平台编译Android系统时遇到`system/build.prop`文件未更新的问题,通常由以下原因及解决方法导致: --- ### **常见原因与解决方法** #### 1. **编译缓存未清理** - **问题**:增量编译未正确应用修改。 - **解决**:执行全量清理后重新编译: ```bash make clean # 清理输出目录 rm -rf out/ # 彻底删除out目录 source build/envsetup.sh lunch <target> # 选择目标设备 make -j8 # 重新编译 ``` #### 2. **配置覆盖优先级错误** - **问题**:设备专属配置(`device/<vendor>/<device>/system.prop`)覆盖了全局修改。 - **解决**: 1. 检查优先级顺序: ```bash device/<vendor>/<device>/system.prop # 最高优先级 vendor/<vendor>/props/system.prop # 次优先级 build/tools/buildinfo.sh # 基础生成脚本 ``` 2. 修改对应设备目录下的`system.prop`文件,而非全局文件。 #### 3. **脚本生成逻辑异常** - **问题**:`build/tools/buildinfo.sh`未正确执行或输出被截断。 - **解决**: 1. 检查脚本权限: ```bash chmod a+x build/tools/buildinfo.sh ``` 2. 在`buildinfo.sh`中手动添加测试行验证: ```bash echo "# Debug: build.prop updated at $(date)" >> $OUT/system/build.prop ``` #### 4. **SELinux权限限制** - **问题**:编译过程因SELinux策略拒绝写入(参考引用[3]的`avc: denied { write }`错误)。 - **解决**: 1. 临时禁用SELinux检查: ```bash export SELINUX_IGNORE_NEVERALLOWS=true ``` 2. 检查`/file_contexts`中是否包含: ```text /system/build\.prop u:object_r:system_file:s0 ``` #### 5. **编译环境问题** - **问题**:Python版本或依赖库不兼容。 - **解决**: ```bash python --version # 确保为Python 2.7或3.6+ pip install protobuf pyyaml # 安装必需依赖 ``` --- ### **关键检查点** 1. **生成日志**:编译时搜索日志中的`Generating build.prop`,确认是否执行。 2. **文件路径**:检查最终生成的路径: ```bash out/target/product/<device>/system/build.prop ``` 3. **设备配置**:验证`BoardConfig.mk`中是否错误设置了: ```makefile TARGET_SYSTEM_PROP := device/<vendor>/<device>/system.prop ``` --- ### **引用分析** - 引用[1]说明`build.prop`由`build/tools/buildinfo.sh`生成,并叠加`system.prop`配置 [^1]。 - 引用[3]的权限错误提示需检查SELinux策略或文件节点权限 [^3]。 --- ### **操作流程建议** ```mermaid graph TD A[修改配置] --> B{清理缓存} B -->|make clean| C[全量编译] B -->|rm -rf out| C C --> D[检查生成日志] D -->|成功| E[验证out目录文件] D -->|失败| F[检查SELinux/权限] F --> G[更新file_contexts] G --> C ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值