zoukankan      html  css  js  c++  java
  • 备份和恢复Android手机的NAND分区

    备份:
    Android使用的是Linux系统,因此通过使用内建的命令控制台可以备份大部分闪存中的内容(除开hboot和特殊的隐藏区段)。如果手机的HBOOT是处于S-OFF的状态,还可以通过 fastboot.exe 直接进行恢复。

    先决条件:安装ADB驱动,具备adb shell环境,手机ROOT过。

    首先,运行以下命令:

    adb shell

    su

    cat /proc/mtd

    在运行了 cat /proc/mtd 后,会显示出当前的ROM分区情况,注意看mtd后面的数字,通常是mtd0至mtd5。如果你的NAND重新分区过,建议执行以下命令进行导出到存储卡:

    cat /proc/mtd >>/sdcard/mtd.txt

    备份分区表名后,即可开始备份分区了,分别执行以下命令即可将分区导出到存储卡:

    cat /dev/mtd/mtd0 >>/sdcard/mtd0.img

    cat /dev/mtd/mtd1 >>/sdcard/mtd1.img

    cat /dev/mtd/mtd2 >>/sdcard/mtd2.img

    cat /dev/mtd/mtd3 >>/sdcard/mtd3.img

    cat /dev/mtd/mtd4 >>/sdcard/mtd4.img

    cat /dev/mtd/mtd5 >>/sdcard/mtd5.img

    备份的速度取决于存储卡的速度,备份完毕后,将存储卡根目录下的 mtd.txt 和 mtd0.img至mtd5.img 拷贝到电脑上即可。


    恢复:
    如果要恢复分区,则需要安装fastboot(HBOOT)驱动,并且具备fastboot.exe和运行环境。

    每个分区镜像的名字(mtd0.img)都对应一个分区,比如mtd0对应的是misc,这些名字都可以在上文中导出的分区表中看到。比如我的是:

    dev:    size   erasesize  name 
    mtd0: 000a0000 00020000 "misc" 
    mtd1: 00480000 00020000 "recovery" 
    mtd2: 00300000 00020000 "boot" 
    mtd3: 05a00000 00020000 "system" 
    mtd4: 00a00000 00020000 "cache" 
    mtd5: 151a0000 00020000 "userdata"

    假如我们需要恢复misc分区,那么将手机进入HBOOT状态(HTC Desire是按住返回键开机),通过USB连接上电脑,然后运行:

    fastboot flash misc mtd0.img

    这样,备份的misc分区就被写回了手机,以上表为例,recovery对应的是mtd1,boot对应的是mtd2,以此类推。



  • 相关阅读:
    字节输入流抽象类InputStream
    CentOS6.2使用yum安装LAMP及phpMyadmin(转)
    文件字节流类(不是抽象的)FileInputStream和FileOutputStream
    字节输出流抽象类OutputStream
    编译安装GD库出错解决(转)
    关于empty函数的判断
    PHP获取用户的用户的真实IP地址(转)
    字符输入输出流与字节输入输出流
    关于empty函数的输出
    thinkphp 多表 事务(转)
  • 原文地址:https://www.cnblogs.com/puncha/p/3876981.html
Copyright © 2011-2022 走看看