环境
- android 9
- mtk方案
简介
本文介绍了如何导出 Android
设备的分区镜像。通过使用 Android Debug Bridge
(ADB
)工具,可以与设备进行通信并获取特定分区的副本,如 system
分区、boot
分区和 recovery
分区。文章提供了简单的步骤指南,导出的镜像文件可以用于设备备份、分析、修改或还原。然而,对设备分区的操作需要谨慎,请确保了解相关风险并遵守法律和政策。
实操
这边的情况是串口输出,因此可以直接进入 Android
系统终端
# 切换到root权限
su
# 保存在本地存储上,by-name文件夹下面有多个镜像,如常见的boot、system、recovery、userdata等,需要哪个就导出哪个
cat /dev/block/platform/$平台/by-name/boot > /mnt/shell/emulated/0/boot.img
# 也可以使用dd命令
dd if=/dev/block/platform/$平台/by-name/boot of=/mnt/shell/emulated/0/boot.img
导出的镜像需要保存下来,这里可以使用系统内的存储位置(要求可写),或者是外部的存储,比如接个 U
盘,然后通过 mount
命令查看设备是否上线以及对应的挂载点,这样就可以写入保存了。
如果无法像我这里一样直接进入系统终端,可以在 PC
上通过网络的方式进行 adb
连接,提前是 Android
设备能够进入开发者模式,这里以 windows
为例,打开 cmd
# 这步需要在设备上确认连接
adb connect $Android设备的IP
# 在连接的 Android 设备上启动一个交互式的 shell 终端
adb shell
# 使用dd导出
dd if=/dev/block/platform/$平台/by-name/boot of=/mnt/shell/emulated/0/boot.img
# 重新开启一个cmd,然后拉取文件到本地电脑
adb pull /mnt/shell/emulated/0/boot.img .
FAQ
"* daemon not running. starting it now on port 5038 *
ADB server didn't ACK
* failed to start daemon *
error: cannot connect to daemon"
这个错误一般是由于没有执行 su
命令引起的。
如果执行了 su
也无法解决的话,可以先尝试重新启动下 Android
设备,然后去看看端口5038是否已经被打开
netstat -ano | grep 5038
接着重启下 adb
的服务,命令如下
adb kill-server
adb start-server