获取设备信息
观察设备背后的贴纸,得到基本信息如下:
- 产品名称:新魔百盒
- 产品型号:
M301H - CMIT ID:
2018AP0342 - 代工厂:ZN(兆能)
拆开设备,找到 TTL 接口,使用 USB-TTL 转接板连接到电脑。
设备端 - 电脑端
TX - RX
RX - TX
GND - GND
3V3 不接

打开 HiTool,进入 HiBurn 工具。

在 HiBurn 打开串口终端,选择对应的 COM 口。
插好网线,给设备上电,观察终端输出,可得到 CPU 型号。

将 HiTool 软件切换到对应的芯片。

给在 HiBurn 烧写 EMMC 页面,填好 PC 与板端配置,IP 可以在路由器后台查看。

分区备份
在串口终端中执行命令。
获取分区表
查看分区大小
cat /proc/cmdline
console=ttyAMA0,115200 blkdevparts=mmcblk0:2M(fastboot),2M(bootargs),2M(bootargsbak),10M(recovery),10M(recoverybak),2M(properties),2M(markparam),2M(baseparam),2M(pqparam),20M(logo),40M(fastplay),20M(kernel),2M(misc),50M(private),100M(factory),700M(cache),800M(system),-(userdata) quiet androidboot.serialno=00500300000299004001E4F3E8A766FD initrd=0x4000000,0x55920 mem=1G mmz=ddr,0,0,44M
查看分区情况
cd /dev/block/platform/soc/by-name
ls -al
lrwxrwxrwx root root 1970-01-01 08:00 baseparam -> /dev/block/mmcblk0p8
lrwxrwxrwx root root 1970-01-01 08:00 bootargs -> /dev/block/mmcblk0p2
lrwxrwxrwx root root 1970-01-01 08:00 bootargsbak -> /dev/block/mmcblk0p3
lrwxrwxrwx root root 1970-01-01 08:00 cache -> /dev/block/mmcblk0p16
lrwxrwxrwx root root 1970-01-01 08:00 factory -> /dev/block/mmcblk0p15
lrwxrwxrwx root root 1970-01-01 08:00 fastboot -> /dev/block/mmcblk0p1
lrwxrwxrwx root root 1970-01-01 08:00 fastplay -> /dev/block/mmcblk0p11
lrwxrwxrwx root root 1970-01-01 08:00 kernel -> /dev/block/mmcblk0p12
lrwxrwxrwx root root 1970-01-01 08:00 logo -> /dev/block/mmcblk0p10
lrwxrwxrwx root root 1970-01-01 08:00 markparam -> /dev/block/mmcblk0p7
lrwxrwxrwx root root 1970-01-01 08:00 misc -> /dev/block/mmcblk0p13
lrwxrwxrwx root root 1970-01-01 08:00 pqparam -> /dev/block/mmcblk0p9
lrwxrwxrwx root root 1970-01-01 08:00 private -> /dev/block/mmcblk0p14
lrwxrwxrwx root root 1970-01-01 08:00 properties -> /dev/block/mmcblk0p6
lrwxrwxrwx root root 1970-01-01 08:00 recovery -> /dev/block/mmcblk0p4
lrwxrwxrwx root root 1970-01-01 08:00 recoverybak -> /dev/block/mmcblk0p5
lrwxrwxrwx root root 1970-01-01 08:00 system -> /dev/block/mmcblk0p17
lrwxrwxrwx root root 1970-01-01 08:00 userdata -> /dev/block/mmcblk0p18
综合上面的信息,使用 AI 辅助编写分区表配置。
AI 辅助指令:请根据信息,编写分区表配置,示例如下:
<?xml version="1.0" encoding="GB2312" ?>
<Partition_Info ProgrammerFile="">
<Part Sel="0" PartitionName="fastboot" FlashType="emmc" FileSystem="none" Start="0" Length="2M" SelectFile="fastboot.img"/>
<Part Sel="0" PartitionName="bootargs" FlashType="emmc" FileSystem="none" Start="2M" Length="2M" SelectFile="bootargs.img"/>
<Part Sel="0" PartitionName="bootargsbak" FlashType="emmc" FileSystem="none" Start="4M" Length="2M" SelectFile="bootargsbak.img"/>
<Part Sel="0" PartitionName="recovery" FlashType="emmc" FileSystem="none" Start="6M" Length="10M" SelectFile="recovery.img"/>
<Part Sel="0" PartitionName="recoverybak" FlashType="emmc" FileSystem="none" Start="16M" Length="10M" SelectFile="recoverybak.img"/>
<Part Sel="0" PartitionName="properties" FlashType="emmc" FileSystem="none" Start="26M" Length="2M" SelectFile="properties.img"/>
<Part Sel="0" PartitionName="markparam" FlashType="emmc" FileSystem="none" Start="28M" Length="2M" SelectFile="markparam.img"/>
<Part Sel="0" PartitionName="baseparam" FlashType="emmc" FileSystem="none" Start="30M" Length="2M" SelectFile="baseparam.img"/>
<Part Sel="0" PartitionName="pqparam" FlashType="emmc" FileSystem="none" Start="32M" Length="2M" SelectFile="pqparam.img"/>
<Part Sel="0" PartitionName="logo" FlashType="emmc" FileSystem="none" Start="34M" Length="20M" SelectFile="logo.img"/>
<Part Sel="0" PartitionName="fastplay" FlashType="emmc" FileSystem="none" Start="54M" Length="40M" SelectFile="fastplay.img"/>
<Part Sel="0" PartitionName="kernel" FlashType="emmc" FileSystem="none" Start="94M" Length="20M" SelectFile="kernel.img"/>
<Part Sel="0" PartitionName="misc" FlashType="emmc" FileSystem="none" Start="114M" Length="2M" SelectFile="misc.img"/>
<Part Sel="0" PartitionName="private" FlashType="emmc" FileSystem="none" Start="116M" Length="50M" SelectFile="private.img"/>
<Part Sel="0" PartitionName="factory" FlashType="emmc" FileSystem="none" Start="166M" Length="100M" SelectFile="factory.img"/>
<Part Sel="0" PartitionName="cache" FlashType="emmc" FileSystem="ext4" Start="266M" Length="700M" SelectFile="cache.img"/>
<Part Sel="0" PartitionName="system" FlashType="emmc" FileSystem="ext4" Start="966M" Length="800M" SelectFile="system.img"/>
<Part Sel="0" PartitionName="userdata" FlashType="emmc" FileSystem="ext4" Start="1766M" Length="-1" SelectFile="userdata.img"/>
</Partition_Info>
在目录中创建对应的空镜像:
@echo off
echo 正在创建img空文件...
echo fastboot.img > fastboot.img
echo bootargs.img > bootargs.img
echo bootargsbak.img > bootargsbak.img
echo recovery.img > recovery.img
echo recoverybak.img > recoverybak.img
echo properties.img > properties.img
echo markparam.img > markparam.img
echo baseparam.img > baseparam.img
echo pqparam.img > pqparam.img
echo logo.img > logo.img
echo fastplay.img > fastplay.img
echo kernel.img > kernel.img
echo misc.img > misc.img
echo private.img > private.img
echo factory.img > factory.img
echo cache.img > cache.img
echo system.img > system.img
echo userdata.img > userdata.img
echo 文件创建完成!
pause
提取分区
在 HiBurn 中,导入刚刚 AI 编写的分区表。
在右侧先断开串口终端的连接,否则会提示串口占用。
断开设备电源,在 HiBurn - 烧写 eMMC 中,先选择所有的分区,点击上载,选择覆盖。
给设备上电,等待进度条完成即可得到设备的全盘备份。

修补 boot
解包
从刚刚得到的备份文件中,找到 kernel.img 即为设备的 boot 分区。
通过 bootimg.exe 可以一键解包和打包 boot,搜索引擎搜索 bootimg.exe 即可找到下载。
.\bootimg.exe --unpack-bootimg # 解包
.\bootimg.exe --repack-bootimg # 打包
修改启动脚本
在 init.rc 中,找到:
# adbd is controlled via property triggers in init.<platform>.usb.rc
service adbd /sbin/adbd
class core
socket adbd stream 660 system system
disabled
seclabel u:r:adbd:s0
# adbd on at boot in emulator
on property:ro.kernel.qemu=1
start adbd
修改为:
# adbd is controlled via property triggers in init.<platform>.usb.rc
service adbd /sbin/adbd
class core
socket adbd stream 660 system system
# disabled
seclabel u:r:adbd:s0
# adbd on at boot in emulator
on property:ro.kernel.qemu=1
start adbd
on property:sys.boot_completed=1
start adbd
修改 default.prop 参数:
ro.secure=0
ro.debuggable=1
persist.service.adb.enable=1
修改完成,使用 bootimg.exe 打包,再使用 HiBurn 刷回设备即可。
参考文献
Android开机自启动ADB服务和开启ADB WiFi - QsBlog 海思3798MV310 - 海思机顶盒NAS社区 [DIYROM] 烽火HG680-KB_海思Hi3798MV310_当贝桌面_安卓9.0_海兔烧录…_ROM固件下载_ZNDS TTL 刷机(海思) | 海纳思系统
特别鸣谢:
魔百盒-盘盒小记(切换IPTV桌面/开启ADBD//备份修改boot分区)_ZNDS刷机/救砖_ZNDS 海思机顶盒Hi3798使用Hitool和TTL备份并烧录海纳思Linux服务器系统固件 - 梦幻之心星 - 博客园