1
经过自己半个月的摸找到的方法,没想到有大大早在网上发了贴,现转载... 方法确认可行,
风险很大,如果此步骤刷成砖的话,真的只有送联想了,后果自负
不怕死的机友往前冲吧....
2
主要使用QPST中的eMMC Software Download工具进行修复
这里使用的版本主要是QPST_2.7_374,也可以下其他更新的版本(366等旧版本不支持8660的hex,会报错)
3
此时QPST的主要用处就是将手机重新分区,并写入bootloader等底层,最终实现将手机启动到S/W刷机模式或fastboot模式来进行刷机。
需要的文件主要有MPRG8660.hex,8660_msimage.mbn,还有根据对应手机编写的的rawprogram0.xml
4
MPRG8660.hex的生成可以参考http://www.anyclub.org/2012/04/how-to-build-emmc-flash-programmer.html
不过显然我们是无法得到那些文件的,所以这里就只能借用小米手机fastboot包中的MPRG8660.hex
不过这个hex文件是个刷机程序(flash programmer),在我看来应该就是一个让cpu知道如何把数据写入到ROM中并启动bootloader的程序,所以它应该是相同的cpu之间通用的
5
而8660_msimage.mbn应该就是bootloader了,小米的8660_msimage.mbn的作用就是让手机启动到U盘模式(此时手机的emmc作为磁盘接到电脑上进行操作,方便进行重新分区并写入正确的底层)
这个文件的生成可以参考http://www.anyclub.org/2012/05/how-to-generate-8660msimagembn.html
6
需要相应手机的sbl1.mbn,sbl2.mbn,sbl3.mbn,rpm.mbn,tz.mbn和partition_boot.xml来生成(注意,并不推荐这样做,这样生成的文件A820L不能使用,会造成手机无法再进入QHSUSB_DLOAD模式,只能使用JTAG进行恢复)
7
需要用到eMMC Software Download工具来生成8660_msimage.mbn(版本366)emmcswdownload.exe -f 8660_msimage.mbn -x partition_boot.xml -s 1G -g 4M
8
当然,这个文件你可以直接用小米的fastboot包中的8660_msimage.mbn,应该是可以通用的,它的作用是让手机启动到U盘模式,可以让我们直接对emmc进行访问读写
也可以尝试使用自行制作的8660_msimage.mbn,这样应该就能够直接启动到S/W模式或Fastboot模式下进行恢复分区表及分区了
rawprogram0.xml这个文件就需要个人根据手机的不同进行改写了,因为它是描述如何分区并在各个中写入什么文件的
当然,这个不可能凭空的写出来,可以根据
adb shell cat /proc/partitions
和
adb shell su -c "fdisk -l /dev/block/mmcblk0"
的结果来写
9
下面是备份完整partition0.bin,和分析它生成分区信息的脚本,强烈建议运行备份分区表,方便恢复
这个脚本应该支持所有/dev/block/mmcblk0的手机
10
其中num_partition_sectors是Size括号里的第一个数值,size_in_KB是第二个数值了,start_sector就是Start
最后关于partition0.bin的项里,MBR项一般不用改,EXT项num_partition_sectors是逻辑分区数就是EBR数,size_in_KB就是它的一半,start_sector就是MBR 4那一项的Start,需要注意的是两项的size_in_KB加起来就是partition0.bin的大小
11
最后,把这些个文件,还有partition.xml或rawprogram0.xml中用到的文件放到同一文件夹中
以下运行版本均为374
运行eMMC Software Download工具
点击Browse选择手机对应的端口,当然需要先在QPST Configuration中添加对应端口
Flash Programmer file name 中填MPRG8660.hex
Boot Image中填8660_msimage.mbn
去掉Program MMC device的勾选
勾选Search path 2并填入或选择文件所在目录
最后,点击Download吧
12
若是使用的是小米的2个文件,成功的话应该会将手机启动到U盘模式
此时便可随意操作手机的eMMC了
之后,最简单的恢复方法:若是有mmcblk0前面几十兆的备份,此时就可以直接到Linux环境下(或在windows下用一些工具)直接写回去,而不用管分区到底是怎样的
13
再说一下使用QPST恢复
选中代表手机的那项,载入rawprogram0.xml点Download
END