mtk平台dump系统分区(内含RK平台)

mtk平台dump系统分区

1. 为什么要dump Android分区?
一般来讲,Android设备可以正常开机情况下,我们可以通过各种方式和手段访问Android各个分区内容,比如通过adb获取cache分区中recovery目录下的OTA升级日志等。但有时候,遇到设备无法开机的情况,或者需要将设备中的分区内容与刷机镜像进行比对等情况,就需要使用工具将设备中的分区内容dump出来了。在以前写的一篇博文《OTA升级失败排查》和《rkflashkit的安装与使用》中有详细介绍过Rockchip平台下是如何将Android设备中 的各个分区导出来的。

最近在工作中,也遇到同样的需求,需要将一台OTA失败后开不了机的设备cache分区导出来(获取升级日志)。与之前不同的是,这台设备是mtk平台(MediaTek,即台湾联发科,全球著名IC设计厂商)的。

下面以CACHE分区为例,记录一下mtk平台导出系统分区的方法。

2. mtk平台如何将Android分区dump出来?
导出系统分区,一般需要利用厂商提供的flash下载工具,比如Rockchip平台是用rkflashkit,而对于mtk平台,厂商则提供了Flash_Tool工具。打开Flash_Tool工具,默认界面显示的是下载界面,即刷机界面。 


这里多说几句,mtk平台的刷机步骤相对简单,在Scatter-loading File 这一栏选中编译出来的分区表文件(out产品编译目录),即MTxxx_Android_scatter.txt文件,就自动将Android各个分区的在flash中的起始地址和结束地址就分配好了。xxx的名字一般和mtk芯片的名字是一致的,比如mtk 6580的芯片平台,对应的分区表文件为:MT6580_Android_scatter.txt。

选好MTxxx_Android_scatter.txt文件后,点击Download按钮,接着让设备进入关机状态,FlashTool就会自动识别,开始将镜像烧写到设备中。

在MTxxx_Android_scatter.txt中,可以详尽地知道,各个分区的的“规划”情况。类似如下图所示:

比如cache分区,从描述可以明确知道,cache分区要下载的镜像为cache.img, 以ext4文件系统的格式挂载到系统中,在flash中的起始物理地址为:0xcb000000,分配的大小为:0x10000000(即268435456/1024/1024=256MB)….

言归正传,现在要反向将设备中的cache分区导出来,一般需要以下几个步骤:

FlashTool切换到“ReadBack”模式,即读取flash模式

新增一个导出项,设置保存的文件名和存放位置,这里简单取名为cache.img,存放在桌面上

设置cache分区在整块flash中的物理起始位置和分区大小。其中,物理位置和分区大小的数值,可以从上面介绍的MTxxx_Android_scatter.txt分区表中得到。

点击ReadBack按键,和刷机步骤一样,让设备进入关机即可将设备中指定的flash块dump出来。

3. 旧事重提
将dump出来的cache.img放到linux环境下,创建一个目录(比如cache),将cache.img挂载到cache_dir

sudo mount -t ext4 cache.img cache/

sudo chmod -R 775 cache/

即可访问cache分区里面的内容:

其中, /cache/recovery/last_log 就是整个OTA升级的过程日志,通过该日志便可排查OTA的相关问题.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值