---
sidebar_position: 3

---

# ADB 刷机(海思)

机智的利用前面两种方法的原理，免拆盖子，免短接，免TTL线，  
利用安卓系统的后台linux终端的命令，将制作的烧片器文件dd克隆进去覆盖整片emmc。  
前提：
你必须破解这个盒子原来的安卓系统，或者按照网上的教程，刷入一个破解的安卓系统，  
使用adb shell或者telnet能够登录安卓后台终端。  
这些安卓的破解教程或者adb工具网上有很多，应该还是大部分能找到的。  
就是稍微有点折腾，没有前面两种方法来的干脆。  
如果前面两种办法尝试无果的话，这个办法也很香。  


## 准备工作

:::caution

- NAND闪存和高安板无法刷目前的固件
- 高安板常见于四川地区、河北地区、上海地区的hi3798mv100电信的盒子
- 对 adb 了解不足的小白谨慎使用此方式。是的，别瞎凑热闹！
:::

- 格式化为 fat32 文件系统的 U 盘，用于存放自制的【烧片器】；
- adb 程序，用于登录安卓后台；
- Hitool工具，用于自制【烧片器】；

## 进入安卓后台获取regname设备信息

![pic](pic/telnetinst.png)  
在安卓后台终端输入以下命令，读取盒子的 reg name 管脚对应名称;
```bash
cat /dev/block/mmcblk0p1 | grep -a hi3798m
```

得到下图的数值： ```hi3798mv100  mdmo1g```  

![pic](pic/grepreg.png)  

注意，当你输入```cat /dev/block/mmcblk0p1```返回信息是没有这个文件或者文件夹时，  
继续检查 ```ls -al /dev/block/``` ，假如看到有```mtdblk```字样，代表你这个盒子闪存是 NAND，请放弃。  

## 根据盒子型号自制烧片器

1.下载你对应的 reg 名称的 TTL 线刷固件包，解压；  
2.打开海兔工具，选择芯片，选择烧写 emmc 选项卡，浏览打开解压包里的 XML 分区表文件；  
3.按照下图例子，制作烧片器：  
![pic](pic/hitool-mkflash.png)  

:::tip
烧片器长度计算：最后一个分区的开始地址 + 最后一个分区的 img 文件的大小  
比如：610M + 616M = 1226M，你就输入 ```1226M``` 字样即可。  
:::

## 自制烧片器放到准备好的U盘

保存上面制作的emmc.flash文件，并复制到前面fat32格式化后的U盘根目录

## 插到盒子上进去adb后台烧写

将带有 emmc.flash 的 U 盘插入盒子的 usb 口上；  
在 adb shell 或者 telnet 登录安卓后台的窗口输入 df -h 查看u盘是否自动挂载好；  
如果发现有 sda1 存在，继续输入 ls -al /mnt/sda/sda1 查看是否存在 emmc.flash 文件；  

![pic](pic/usbfile.png)  

检查上面步骤都正确以后，输入以下命令进行烧写。  
```bash
dd if=/mnt/sda/sda1/emmc.flash of=/dev/block/mmcblk0 bs=1024
```

![pic](pic/doflash.png)  

## 注意事项

:::caution
注意: 整个烧写过程大概历时 5-8 分钟，全程不可关闭终端窗口，不可碰盒子和 u 盘。  
注意：烧写完成后，直接手动断电重新上电启动，继续等待 3 分钟初始化。  
注意：初始化完成后，到路由器查看重新分配的 IP 地址，mac 是 00:11:22:33:44:55  
注意：这是一次性的刷机，一旦 dd 命令执行，就再也回不去了。如果刷入不正确的包，只能TTL救砖！
:::
