首页 > 代码库 > Nubia Z5S(高通MSM8974) QHSUSB_BULK模式救砖方法(以win7下恢复recovery分区为例)
Nubia Z5S(高通MSM8974) QHSUSB_BULK模式救砖方法(以win7下恢复recovery分区为例)
Nubia Z5S在某种异常或者按组合按键的情况下会进入QHSUSB_BULK模式, 此种模式的现象是, 如果在windows(比如win7)下连上数据线, 则会在电脑出现n多分区挂载,甚至会提示要格式化某些分区(这里要强调的是千万不要格式化任何分区,否则可能会变成真砖只有返厂了)
关于这个模式可以参考我之前发的一篇文章: http://blog.csdn.net/syhost/article/details/20435957
上面文章中也提到, QHSUSB_BULK模式实际是在sbl分区中实现的, 不过纯粹为了救砖的话也没必要知道这些细节!
当Z5S进到这个模式并且不能正常启动其他模式或者系统后, 那就只有考虑在这个模式下来救砖了, 出现这种模式的可能情况是:
1 recovery分区和系统(或者boot)分区同时损坏
2 boot分区可能有异常,
3 在某种条件下按了按键组合
转载请务必保留本篇链接:
http://blog.csdn.net/syhost/article/details/36972531
这种模式因为挂载了手机的所有分区, 而从上面的分析产生这种情况的可能无非是某些启动分区错误, 那直观的想法就是恢复这些错误的分区。
可以先参考我之前的一篇文章, 先熟悉下Z5S的具体分区情况:http://blog.csdn.net/syhost/article/details/21818563
要注意的是上面文章是以16G版本为例分析, 如果是32G的可能稍微有些差别,要特别注意下!
下面讲讲怎么在win7下恢复Z5S特定的分区, 以恢复recovery分区为例(此方法已经由@乱世殇歌 验证成功)
要使用到的工具是windows下的dd命令, 下载地址:
http://dl.vmall.com/c06d47p1fn
或者
https://mega.co.nz/#!B1lzlDJa!yfw8NrtWQCznodyxnaKbRIs6dboTyLHU1NNtky0waQw
步骤如下:
1、 首先是确保手机已经稳定运行到了QHSUSB_BULK模式,并且连上数据线, 在电脑系统里可以看到n多分区,要特别注意不要按照提示格式化任何分区,切记, 不然可能会真砖了!!
2、 将上面的dd工具解压,然后进到该文件夹下,如果是win7的系统,支持在当前目录打开终端命令行, 操作如下,在dd文件夹下按住shift键,然后点鼠标右键,选在当前目录打开终端命令,即可!
3、 运行 dd --list命令,查看电脑所有分区信息(当然也包括挂载的手机的分区信息)(@乱世殇歌提供):
D:\222>dd --list rawwrite dd for windows version 0.5. Written by John Newbigin <jn@it.swin.edu.au> This program is covered by the GPL. See copying.txt for details Win32 Available Volume Information \\.\Volume{14f93446-ea7b-11e3-8baf-806e6f6e6963} link to \\?\Device\HarddiskVolume1 fixed media Mounted on \\.\c: \\.\Volume{27fc973e-92de-706b-3d39-ff3b00c9862e} link to \\?\Device\HarddiskVolume146 fixed media Mounted on \\.\g: \\.\Volume{4faebde7-671c-5533-0c1e-c5cd93452cb3} link to \\?\Device\HarddiskVolume154 fixed media Mounted on \\.\h: \\.\Volume{59fe28dd-13a6-f2dd-1105-5b6a173a6e79} link to \\?\Device\HarddiskVolume159 fixed media Mounted on \\.\i: \\.\Volume{94ed69a1-a69d-b0c4-7d06-8f5039f55fc8} link to \\?\Device\HarddiskVolume160 fixed media Mounted on \\.\j: \\.\Volume{87f74cb9-9950-8f5b-48a5-3e4aadedcb0b} link to \\?\Device\HarddiskVolume161 fixed media Mounted on \\.\k: \\.\Volume{a92c0db2-bc8f-cb01-bfd7-ca99575da6d6} link to \\?\Device\HarddiskVolume162 fixed media Mounted on \\.\l: \\.\Volume{41f4a435-9559-66a2-ecbc-925db9220510} link to \\?\Device\HarddiskVolume163 fixed media Mounted on \\.\m: \\.\Volume{ca630bbc-e3bb-5e2d-d9ff-253b5188313b} link to \\?\Device\HarddiskVolume168 fixed media Mounted on \\.\n: \\.\Volume{14f93447-ea7b-11e3-8baf-806e6f6e6963} link to \\?\Device\HarddiskVolume3 fixed media Mounted on \\.\d: \\.\Volume{14f93448-ea7b-11e3-8baf-806e6f6e6963} link to \\?\Device\HarddiskVolume4 fixed media Mounted on \\.\e: \\.\Volume{14f93449-ea7b-11e3-8baf-806e6f6e6963} link to \\?\Device\HarddiskVolume5 fixed media Mounted on \\.\f: NT Block Device Objects \\?\Device\Harddisk0\Partition0 link to \\?\Device\Harddisk0\DR0 Fixed hard disk media. Block size = 512 size is 320072933376 bytes \\?\Device\Harddisk0\Partition1 link to \\?\Device\HarddiskVolume1 \\?\Device\Harddisk0\Partition2 link to \\?\Device\HarddiskVolume2 Fixed hard disk media. Block size = 512 size is 21474836480 bytes \\?\Device\Harddisk0\Partition3 link to \\?\Device\HarddiskVolume3 \\?\Device\Harddisk0\Partition4 link to \\?\Device\HarddiskVolume4 Fixed hard disk media. Block size = 512 size is 85911928832 bytes \\?\Device\Harddisk0\Partition5 link to \\?\Device\HarddiskVolume5 Fixed hard disk media. Block size = 512 size is 116023722496 bytes \\?\Device\Harddisk1\Partition0 link to \\?\Device\Harddisk1\DR8 Fixed hard disk media. Block size = 512 size is 15758000128 bytes \\?\Device\Harddisk1\Partition1 link to \\?\Device\HarddiskVolume146 Fixed hard disk media. Block size = 512 size is 67108864 bytes \\?\Device\Harddisk1\Partition10 link to \\?\Device\HarddiskVolume155 Fixed hard disk media. Block size = 512 size is 1572864 bytes \\?\Device\Harddisk1\Partition11 link to \\?\Device\HarddiskVolume156 Fixed hard disk media. Block size = 512 size is 1572864 bytes \\?\Device\Harddisk1\Partition12 link to \\?\Device\HarddiskVolume157 Fixed hard disk media. Block size = 512 size is 1048576 bytes \\?\Device\Harddisk1\Partition13 link to \\?\Device\HarddiskVolume158 Fixed hard disk media. Block size = 512 size is 10485760 bytes \\?\Device\Harddisk1\Partition14 link to \\?\Device\HarddiskVolume159 Fixed hard disk media. Block size = 512 size is 1288488960 bytes \\?\Device\Harddisk1\Partition15 link to \\?\Device\HarddiskVolume160 Fixed hard disk media. Block size = 512 size is 2684354560 bytes \\?\Device\Harddisk1\Partition16 link to \\?\Device\HarddiskVolume161 Fixed hard disk media. Block size = 512 size is 33554432 bytes \\?\Device\Harddisk1\Partition17 link to \\?\Device\HarddiskVolume162 Fixed hard disk media. Block size = 512 size is 524288000 bytes \\?\Device\Harddisk1\Partition18 link to \\?\Device\HarddiskVolume163 Fixed hard disk media. Block size = 512 size is 157286400 bytes \\?\Device\Harddisk1\Partition19 link to \\?\Device\HarddiskVolume164 Fixed hard disk media. Block size = 512 size is 10485760 bytes \\?\Device\Harddisk1\Partition2 link to \\?\Device\HarddiskVolume147 Fixed hard disk media. Block size = 512 size is 524288 bytes \\?\Device\Harddisk1\Partition20 link to \\?\Device\HarddiskVolume165 Fixed hard disk media. Block size = 512 size is 1572864 bytes \\?\Device\Harddisk1\Partition21 link to \\?\Device\HarddiskVolume166 Fixed hard disk media. Block size = 512 size is 1024 bytes \\?\Device\Harddisk1\Partition22 link to \\?\Device\HarddiskVolume167 Fixed hard disk media. Block size = 512 size is 8192 bytes \\?\Device\Harddisk1\Partition23 link to \\?\Device\HarddiskVolume168 Fixed hard disk media. Block size = 512 size is 10523482624 bytes \\?\Device\Harddisk1\Partition3 link to \\?\Device\HarddiskVolume148 Fixed hard disk media. Block size = 512 size is 32768 bytes \\?\Device\Harddisk1\Partition4 link to \\?\Device\HarddiskVolume149 Fixed hard disk media. Block size = 512 size is 32768 bytes \\?\Device\Harddisk1\Partition5 link to \\?\Device\HarddiskVolume150 Fixed hard disk media. Block size = 512 size is 524288 bytes \\?\Device\Harddisk1\Partition6 link to \\?\Device\HarddiskVolume151 Fixed hard disk media. Block size = 512 size is 512000 bytes \\?\Device\Harddisk1\Partition7 link to \\?\Device\HarddiskVolume152 Fixed hard disk media. Block size = 512 size is 10485760 bytes \\?\Device\Harddisk1\Partition8 link to \\?\Device\HarddiskVolume153 Fixed hard disk media. Block size = 512 size is 512000 bytes \\?\Device\Harddisk1\Partition9 link to \\?\Device\HarddiskVolume154 Fixed hard disk media. Block size = 512 size is 1048576 bytes Virtual input devices /dev/zero (null data) /dev/random (pseudo-random data) - (standard input) Virtual output devices - (standard output)
然后从这些分区信息中找到手机的分区信息, 参考我上面关于z5s分区信息的文章,对比就可以很容易的找出你想要恢复的分区的分区号(指的是在dd命令下识别的分区号)以及手机磁盘的磁盘号。
以recovery分区为例简单介绍下判断分区的方法:
a、 可以通过分区号大小判断, 比如上面文章中可以看到recovery分区对应的分区号是19, 而上面的dd信息里也可以看到 Partition19这个分区号,而一般电脑分区不会这么多,所以可以判断这里就是手机的分区,
b、 接上面的方法,判断是不是recovery分区,通过分区大小,比如上面的Partition19 在dd命令下显示大小是 size 10485760 bytes(即10485760字节),而从上面文章里看到的recovery分区的大小(32G的可能会有不同)为10240x1024=10485100 跟上面dd命令获取出来的大小基本一致(至于为什么不是完全一样先不去深究了),这基本就可以判断dd命令里获取到的Partition19 就是手机的recovery分区了(特别注意一般手机的boot分区跟recovery分区大小是相同的,注意区分,当然把recovery写入boot分区也没啥问题)!
c、 从Partition19前面的字符段Harddisk1判断, 自己电脑如果只有一个硬盘,那本身的硬盘应该就是Harddisk0了,那么这里Harddisk1就应该是手机分区对应的磁盘号了!
4、找到需要的分区号之后,就可以进行dd恢复操作了,具体方法:
1)将需要恢复的分区的img镜像文件放到dd命令所在的文件夹下,如果是recovery或者boot分区则只需要将刷机包里的recovery.img或者boot.img放进来即可!
2) 在当前目录下终端命令行中执行 dd if=recovery.img of=\\?\Device\Harddisk1\Partition19 即可,可以看到这里recovery.img 即是你放的分区镜像的文件名,而 \\?\Device\Harddisk1\Partition19 就是上面dd --list命令获取到的recovery分区的分区号信息,完全照搬过来的! 执行完该命令后,正确恢复recovery分区的截图(截图由@乱世殇歌提供)如下:
至此,已经完全恢复了recovery分区, 只要你放的recovery.img是正确的(这里所说的正确对于z5s而言是一定要跟你砖之前的基带版本搭配,因为有些recovery只能在对应的基带版本下使用)。
看似复杂,其实只两点:一是dd命令下正确判断你所要恢复分区的分区号,二是命令要输入正确并且分区镜像恢复文件一定要正确!
另外要特别强调, 如果用此方法恢复其他引导分区(除了boot和recovery分区之外的),包括: aboot、sbl1、tz、rpm、sdi 这些分区如果想恢复其中任何一个的话,就必须全部一起恢复,并且要版本对应,不然就真砖了!而这些分区镜像文件都可以在官方完整rom包里找到,其中aboot对应的是emmc_appsboot.mbn文件,其他分区看名字对应文件名即可!