全志H618ROM修改 需求:根目录新增 ider 目录,为2G大小,给完整读写权限,三清需要保留此文件夹,即恢复出厂时,此文件夹不能做变化. 但ota时需要覆盖。
4条回答 默认 最新
关注引自免费微信小程序:皆我百晓生
要实现这个需求,你需要进行以下几个步骤:
- 创建一个新的分区:
首先,你需要在Android系统的
device/qcom/board-h618/BoardConfig.mk或者对应的配置文件中添加一个新分区。这通常涉及到创建一个新的partition table entry。例如,增加以下内容:
PRODUCT_PROPERTY_OEMPartition:="ider=2M:rw:"这里,
ider=2M:rw:表示分区名称是ider,大小是 2MB(对于你的需求,可能需要调整为2GB),并设置了读写权限。- 编译内核和系统镜像: 在修改了配置文件后,你需要重新编译Android的内核和系统镜像。执行以下命令(确保你已经在AOSP源码目录中):
source build/envsetup.sh lunch <your_device_config> make -j$(nproc)替换
<your_device_config>为你的设备配置名,比如h618-userdebug。- 安装新镜像: 编译完成后,安装新的系统镜像到开发板上。使用fastboot工具进行刷机:
fastboot flash system $(find . -name "system*.img")- 修改init.rc:
为了保证三清操作后
ider目录仍然存在,并且具有完整的读写权限,你需要修改system/etc/init/.rc文件,在其中加入以下内容,以便在系统启动时自动创建目录:
# 在 init.rc 文件中的适当位置(通常是其他挂载点之后) mkdir /data/data/ider chmod 0777 /data/data/ider mount -t tmpfs tmpfs /data/data/ider- 处理OTA更新:
当处理OTA更新时,系统会默认覆盖所有的用户数据分区。为了防止
ider目录被覆盖,你需要在OTA脚本中排除它。找到位于out/target/product/<your_device>/update.zip中的update-script文件,然后在其中添加以下行以跳过ider目录:
if [ "$TYPE" = "system" ]; then if [ ! -e "/data/data/ider" ]; then mkdir -p /data/data/ider chmod 0777 /data/data/ider fi fi这会在每次OTA升级后重新创建
ider目录并设置其权限。- 重新打包OTA:
修改完OTA脚本后,你需要重新打包OTA文件。可以使用
mkbootimg命令创建新的boot.img,使用zipalign对系统映像进行对齐,然后将它们放入out/target/product/<your_device>/incremental/目录下的相应文件夹中。
完成上述步骤后,你应该有一个满足要求的定制版Android系统,它会在根目录下创建一个名为
ider的新分区,大小为2GB,具有完全的读写权限,并且在三清或OTA更新后保持不变。解决 无用评论 打赏 举报 编辑记录- 创建一个新的分区:
首先,你需要在Android系统的