引言
因为折腾WIFI棒子的过程中,不小心砖了。现在需要重新刷一下机,所以把之前的过程的细节给梳理一下
1 、恢复
使用备份镜像文件恢复随身WIFI,使用MIKO软件将文件刷写到EMMC中。等待一会就好了
2 、原始分区
既然已经恢复成原始镜像了,不如深入研究一下,使用MIKO读取出随身WIFI原始镜像的分区表,其分别的作用如下:
序号 | 分区名称 | 起始地址 | 分区大小 | 含义作用 |
---|---|---|---|---|
1 | modem | 0x000000004000000 | 64 MB | 调制解调器相关固件 |
2 | sbl1 | 0x000000008000000 | 512 KB | Secondary Bootloader 1 |
3 | sbl1bak | 0x000000008080000 | 512 KB | Secondary Bootloader 1备份 |
4 | aboot | 0x000000008100000 | 1024 KB | Android Bootloader |
5 | abootbak | 0x000000008200000 | 1024 KB | Android Bootloader备份 |
6 | rpm | 0x000000008300000 | 512 KB | 实时功耗管理相关固件 |
7 | rpmbak | 0x000000008380000 | 512 KB | 实时功耗管理相关固件备份 |
8 | tz | 0x000000008400000 | 512 KB | 信任区相关固件 |
9 | tzbak | 0x000000008480000 | 512 KB | 信任区相关固件备份 |
10 | hyp | 0x000000008500000 | 512 KB | Hypervisor相关固件 |
11 | hypbak | 0x000000008580000 | 512 KB | Hypervisor相关固件备份 |
12 | pad | 0x000000008600000 | 1024 KB | 用于填充对齐 |
13 | modemst1 | 0x000000008700000 | 1.5 MB | 调制解调器存储区1 |
14 | modemst2 | 0x000000008880000 | 1.5 MB | 调制解调器存储区2 |
15 | misc | 0x000000008A00000 | 1024 KB | 杂项存储区,存储一些系统信息 |
16 | fsc | 0x000000008B00000 | 1024 Bytes | 文件系统可读写 flashed_config 区域 |
17 | ssd | 0x000000008B00400 | 8 KB | 传感检测数据存储区 |
18 | splash | 0x000000008B02400 | 10 MB | 启动画面相关资源存储区 |
19 | DDR | 0x00000000C000000 | 32 KB | 存储DDR访问相关操作 |
20 | fsg | 0x00000000C008000 | 1.5 MB | 文件系统可读写 fsgpartition 区域 |
21 | sec | 0x00000000C188000 | 16 KB | 用于存储一些安全相关的数据 |
22 | boot | 0x00000000C18C000 | 16 MB | 存储系统内核及启动脚本 |
23 | system | 0x00000000D18C000 | 800 MB | 存储Android系统及应用程序 |
3、刷机
详细过程略过,原来的文章有写过,解析一下刷机的脚本
base包中的bat文件
@echo off
echo OpenStick Bootloader
echo please make sure your device in fastboot mode
pause
fastboot erase boot
fastboot flash boot lk2nd.img
fastboot reboot
echo when detected a fastboot device
pause
fastboot oem dump fsc && fastboot get_staged fsc.bin
fastboot oem dump fsg && fastboot get_staged fsg.bin
fastboot oem dump modemst1 && fastboot get_staged modemst1.bin
fastboot oem dump modemst2 && fastboot get_staged modemst2.bin
fastboot erase lk2nd
fastboot erase boot
fastboot reboot bootloader
echo when detected a fastboot device
pause
fastboot flash partition gpt_both0.bin
fastboot flash hyp hyp.mbn
fastboot flash rpm rpm.mbn
fastboot flash sbl1 sbl1.mbn
fastboot flash tz tz.mbn
fastboot flash fsc fsc.bin
fastboot flash fsg fsg.bin
fastboot flash modemst1 modemst1.bin
fastboot flash modemst2 modemst2.bin
fastboot flash aboot aboot.bin
fastboot flash cdt sbc_1.0_8016.bin
fastboot erase boot
fastboot erase rootfs
fastboot reboot
echo flashing debian!
echo when detected a fastboot device
pause
debian包中的bat文件
@echo off
echo OpenStick Debian
echo please make sure your device in fastboot mode
pause
fastboot flash boot boot.img
fastboot -S 200m flash rootfs rootfs.img
echo all done!!
pause
上述两个刷机脚本执行了如下操作:
- 检查当前设备是否进入fastboot模式
- 擦除boot分区
- 将lk2nd.img固件刷入boot分区
- 重启设备
- 检查当前设备是否进入fastboot模式
- 将fsc、fsg、modemst1、和modemst2分区的数据通过fastboot oem dump获取,并存储为对应的.bin文件
- 擦除lk2nd分区以释放空间
- 再次擦除boot分区
- 重新进入fastboot模式
- 将EMMC的分区表(gpt_both0.bin)刷入分区表分区(partition)中。
- 将处理器子系统固件(hyp.mbn)刷入处理器子系统分区(hyp)中。
- 将调度器固件(rpm.mbn)刷入调度器分区(rpm)中。
- 将系统引导固件(sbl1.mbn)刷入引导程序分区(sbl1)中。
- 将fsc.bin刷入fsc分区
- 将fsg.bin刷入fsg分区
- 将modemst1.bin刷入modemst1分区
- 将modemst2.bin刷入modemst2分区
- 将aboot.bin刷入aboot分区
- 刷入cdt/sbc_1.0_8016.bin文件
- 删除boot分区
- 删除rootfs分区
- 重新启动设备
- 将boot.img固件刷入boot分区
- 将rootfs.img固件刷入rootfs分区,并设置缓存区大小为200M(-S 200m)
刷机后分区
序号 | 名称 | 起始地址 | 分区大小 | 大小(KB) | 含义和作用 |
---|---|---|---|---|---|
1 | cdt | 0x4000000 | 0x800 | 2 | 设备配置数据,例如产品型号,硬件类型等 |
2 | sbl1 | 0x8000000 | 0x80000 | 512 | Secondary Bootloader 1 |
3 | rpm | 0x8080000 | 0x80000 | 512 | 实时功耗管理相关固件 |
4 | tz | 0x8100000 | 0x100000 | 1024 | 信任区相关固件 |
5 | hyp | 0x8200000 | 0x80000 | 512 | 处理器虚拟化软件,用于以虚拟形式运行操作系统 |
6 | sec | 0x8280000 | 0x4000 | 16 | 用户数据的加密/解密密钥 |
7 | modemst1 | 0x8284000 | 0x200000 | 2048 | 第一个运营商相关数据分区 |
8 | modemst2 | 0x8484000 | 0x200000 | 2048 | 第二个运营商相关数据分区 |
9 | fsc | 0x8684000 | 0x400 | 1 | 文件系统可读写 flashed_config 区域 |
10 | fsg | 0xC000000 | 0x200000 | 2048 | 文件系统可读写 fsgpartition 区域 |
11 | aboot | 0x10000000 | 0x100000 | 1024 | Android Bootloader |
12 | boot | 0x10100000 | 0x4000000 | 64,000 | 操作系统 Bootloader |
13 | devinfo | 0x14100000 | 0x100000 | 1024 | 设备信息配置:例如设备ID和IMEI号等 |