Allwinner Tina V831镜像修改与导出
一、将Allwinner Tina img 导成通用 img
使用工具 OpenixCard 导出通用镜像。
OpenixCard 的使用方法如下:
Usage: OpenixCard [options] input
Positional arguments:
input Input image file or directory path [required]
Optional arguments:
-h --help shows help message and exits [default: false]
-v --version prints version information and exits [default: false]
-u --unpack Unpack Allwinner Image to folder [default: false]
-d --dump Convert Allwinner image to regular image [default: false]
-c --cfg Get Allwinner image partition table cfg file [default: false]
-p --pack pack dumped Allwinner image to regular image from folder [default: false]
-s --size Get the accurate size of Allwinner image [default: false]
eg.:
OpenixCard -u <img> - Unpack Allwinner image to target
OpenixCard -uc <img> - Unpack Allwinner image to target and generate cfg
OpenixCard -d <img> - Convert Allwinner image to regular image
OpenixCard -p <dir> - pack dumped Allwinner image to regular image from folder
OpenixCard -s <img> - Get the accurate size of Allwinner image
本教程主要使用以下两个参数:
-d <img>— 将全志 img 转化成通用镜像-p <dir>— 将镜像分区表打包成通用镜像
将 OpenixCard 和全志镜像 m2dock.img 放在同一目录,执行以下指令将全志固件解包并转化为通用镜像:
./OpenixCard -d m2dock.img
解包后得到以下内容:
-
m2dock.img.dump.out
存放导出的通用镜像,可直接使用 Etcher 烧录。 -
m2dock.img.dump
存放通用镜像的分区表信息。
可通过修改m2dock.cfg的配置信息调整各分区大小,例如按照分区表格式在末尾添加 UDISK 分区信息,设置 U 盘分区大小。
修改完分区表后,执行以下指令将修改后的分区表重新打包成通用镜像:
./OpenixCard -p m2dock.img.dump/
打包完成后,可在 m2dock.img.dump 目录下看到生成的镜像 m2dock.img。
二、挂载通用镜像进行修改
将通用 img 使用回环挂载,把需要修改的内容像操作磁盘一样写入镜像的文件系统,即可实现固件定制。
1. 回环挂载镜像
执行以下命令将镜像挂载到 /dev/loop401 回环设备:
sudo losetup -P /dev/loop401 ./m2dock.img \
&& sudo mkdir -p ./rootfs \
&& sudo mount /dev/loop401p2 ./rootfs \
&& ls ./rootfs \
&& sudo mkdir -p ./boot \
&& sudo mount /dev/loop401p1 ./boot \
&& ls ./boot
挂载成功后,可通过以下命令确认:
sudo losetup -a
若输出中显示镜像已挂载在 /dev/loop401 设备上,或在磁盘助手中可看到挂载的镜像,则操作成功。
注意: 若出现报错
设置回环设备失败: 设备或资源忙,说明/dev/loop401已被占用,可选择以下任一方式处理:A. 更换回环设备号(如
/dev/loop402):sudo losetup -P /dev/loop402 ./m2dock.img \ && sudo mkdir -p ./rootfs \ && sudo mount /dev/loop402p2 ./rootfs \ && ls ./rootfs \ && sudo mkdir -p ./boot \ && sudo mount /dev/loop402p1 ./boot \ && ls ./bootB. 卸载已占用的设备后重新挂载:
sudo losetup -d /dev/loop401
2. 修改镜像内容
挂载成功后,即可对镜像中的主分区数据进行增删改查操作。
3. 卸载回环并导出镜像
修改完主分区数据后,卸载回环即可得到修改好的镜像。
方式一: 在磁盘管理器中直接卸载对应的 Loop Device。
方式二: 通过命令卸载:
sudo losetup -d /dev/loop401
卸载完成后,使用 Etcher 将修改好的镜像烧录到设备即可。
| 固件挂载和导出借鉴:https://www.cnblogs.com/juwan/p/15930762.html

浙公网安备 33010602011771号