修改rootfs.img镜像内部的文件

有时候我们需要修改rootfs里的内容,又不想从头构建根文件系统,就可以使用野火发布的镜像,直接修改rootfs分区中的文件。

这种方法只适用于修改量较小,且对根文件系统文件结构较为熟悉的开发人员使用。

这里以RK3568-LUBANCAT2-N_DEBIAN_BUSTER_DESKTOP_20220928_Update镜像为例进行说明,具体步骤如下

注解

以下解包和打包过程除了使用Windows下的工具外,也可使用Linux环境的Linux_Pack_Firmware工具完成。

1.使用RKDevTool将update.img完整镜像进行解包,得到单独的根文件系统镜像rootfs.img

../../_images/image_modify01.png

2.解包得到的rootfs.img镜像保存在RKDevTool_Release_v2.92\Output\Android\Image

../../_images/image_modify02.png

3.将rootfs.img复制到Linux PC或虚拟机中,挂载镜像。

1
2
3
4
5
6
7
8
# 创建目录用来挂载rootfs.img
mkdir rootfs

# 挂载
sudo mount rootfs.img rootfs/

# 查看是否挂载成功
df -h
../../_images/image_modify03.png

4.进入挂载目录修改文件

../../_images/image_modify04.png

这里我们修改etc/hostname文件,将原本的lubancat修改为embedfire。

../../_images/image_modify05.png

也可以根据需求修改其他的配置文件、新建或删除文件。

修改完成后我们取消挂载。

1
sudo umount rootfs/
  1. 使用RKDevTool_Release_v2.92中的打包工具重新打包成完整镜像。

打开RKDevTool_Release_v2.92\rockdev,并将之前解包的Output\Android下的所有文件复制到rockdev目录里。

../../_images/image_modify06.png

然后用修改过的rootfs.img文件替换现在rockdev\Image目录下的rootfs.img文件

../../_images/image_modify07.png

双击rk356x-mkupdate.bat开始打包镜像

../../_images/image_modify08.png
  1. 烧录重新打包的镜像

../../_images/image_modify09.png ../../_images/image_modify10.png