随身WIFI恢复日记

引言

因为折腾WIFI棒子的过程中,不小心砖了。现在需要重新刷一下机,所以把之前的过程的细节给梳理一下

1 、恢复

使用备份镜像文件恢复随身WIFI,使用MIKO软件将文件刷写到EMMC中。等待一会就好了

随身WIFI恢复日记_第1张图片

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

上述两个刷机脚本执行了如下操作:

  1. 检查当前设备是否进入fastboot模式
  2. 擦除boot分区
  3. 将lk2nd.img固件刷入boot分区
  4. 重启设备
  5. 检查当前设备是否进入fastboot模式
  6. 将fsc、fsg、modemst1、和modemst2分区的数据通过fastboot oem dump获取,并存储为对应的.bin文件
  7. 擦除lk2nd分区以释放空间
  8. 再次擦除boot分区
  9. 重新进入fastboot模式
  10. 将EMMC的分区表(gpt_both0.bin)刷入分区表分区(partition)中。
  11. 将处理器子系统固件(hyp.mbn)刷入处理器子系统分区(hyp)中。
  12. 将调度器固件(rpm.mbn)刷入调度器分区(rpm)中。
  13. 将系统引导固件(sbl1.mbn)刷入引导程序分区(sbl1)中。
  14. 将fsc.bin刷入fsc分区
  15. 将fsg.bin刷入fsg分区
  16. 将modemst1.bin刷入modemst1分区
  17. 将modemst2.bin刷入modemst2分区
  18. 将aboot.bin刷入aboot分区
  19. 刷入cdt/sbc_1.0_8016.bin文件
  20. 删除boot分区
  21. 删除rootfs分区
  22. 重新启动设备
  23. 将boot.img固件刷入boot分区
  24. 将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号等

你可能感兴趣的:(嵌入式,android)