moto 跨区跨版本刷机相关




昨天作死给我的Moto X 2014(XT1085,已解锁,twrp2.8.6.0,官方5.1,分区表等级04,已root) 升级marshmallow。

有两种方案,

  1. 刷XT1097的5.1底包(分区表等级05),再刷5.1到6.0(分区表等级06)的OTA包。
  2. 在任何版本下直接在Recovery里恢复别人提供的6.0的TWRP备份包。(并不是!!)

于是我开始动手操作第二种方案,发现system分区刷写至95%的时候会报错ERROR=255.

Image 235

↑来感受一下iPad2的摄像头

这时候系统是可以引导的,只不过会卡在第二屏。

这时候我想既然恢复包是基于1097的ROM的,那么刷成1097的底包大概就可以了。(别着急动手,看后面!)

然后我找来1097的5.1底包,VICTARA_RETBR_XT1097_5.1_LPE23.32-14.2_cid12_CFC.xml.zip

用fastboot刷入了gpt.bin,boot.img和system.img的所有chunk。

因为一般情况下不需要也不建议动bootloader,也就是motoboot.img,所以没有刷。

这时候悲剧发生了。刷完之后开机直接卡在第一屏,recovery无法挂载任何文件系统。

Image 237

直到这时我才想起来去看底包的分区表等级,得知分区表等级是05,但与此同时其他版本的等级都是04,也就意味着,我现在如果想刷回国行或其他版本的5.1底包,那会有极大的变砖的风险。

就像这里提到的:[WARNING] Do NOT Downgrade Your Bootloader o… | Moto X (2014) | XDA Forums

The Moto X 2014 is not a Nexus device – you CANNOT safely downgrade your bootloader (motoboot.img) or partition table (gpt.bin). You risk bricking if you do, especially if you downgrade the bootloader!!!

而且一般情况下,在刷机的时候是不需要,也不应该动Bootloader(也就是motoboot.img)的,但是由于我刷入了不同区域且不同等级的分区表,因此需要一个能够引导05等级分区表的bootloader。

Also, you should not attempt to have a bootloader-partition table mismatch in terms of versions. Both your bootloader and your partition table should be the same version – i.e., if your bootloader is the 5.0 bootloader, your partition table should be the 5.0 partition table.

然后我再刷入了motoboot.bin,随后就可以正常启动1097的5.1官方ROM,恢复6.0的备份包也没有报错了。

另外,我在刷入boot.img的时候,fastboot界面上会显示粉色的hab check failed,但是系统可以正常启动,我很好奇这个东西是什么原因引起的。


更新:但是我给朋友的moto x 2014用相同方法刷机的时候遇到了诡异的问题:

@今天XANA出橙了吗_69包5橙 的手机型号以及状态跟我的完全一样,唯一的区别是为了他保修所以刷了原厂的5.1镜像和第一屏。

我用与本文相同的方法和顺序(gpt→boot→system→motoboot)刷入1097的5.1底包,结果刷完之后卡在第一屏,recovery的状态跟上文第二张图完全一样。

但是这完全说不通,因为我认为我的手机上出现这样的现象是由于我没有刷05等级的motoboot导致Bootloader无法引导05等级的分区表,但是在这台手机上我已经刷了1097的可以引导05等级gpt的motoboot。我怀疑是我的判断哪里出了问题。

由于两部手机的区别之一是他的logo并不是官方的logo,于是我刷了1097底包中的logo.bin,但是并没有什么卵用。接下来我只能假定刚才的步骤有什么地方出了问题,因此把刚才的所有步骤又执行了一遍,重复两次,问题依旧。

因为是卡第一屏,直觉告诉我问题出在boot,于是这次我等到刷完system之后再刷boot,而且竟然成功了。不过我承认这么做没有任何道理,纯粹是为了碰运气。

总而言之,我以后再也不想作死去碰bootloader和gpt了。


顺便惊叹一下官方的marshmallow竟然比官方CM还要早。

因此:

  1. 如果bootloader和gpt等级相同,则没有必要刷写bootloader。但是bootloader和分区表版本需要匹配,如果等级不同的话则需要刷入同一等级的motoboot和gpt。此外,尽量不要试图降级分区表,更不要降级bootloader。
  2. 正常情况下,除了1085之外的任何版本都可以正常使用TWRP备份包和包括CM在内的大部分第三方ROM,一般来说欧版(XT1092)的底包是比较好用的。也就是说,我本不需要冒着升级分区表和bootloader的风险去刷1097的底包,而是刷入同等级的XT1092底包即可。
  3. 避免在完整底包未放出时使用OTA升级。因为OTA大多会升级bootloader和分区表,而降级分区表和bootloader是极其危险的(但是这次是一个例外,巴西版6.0的06等级的分区表可以安全降级到国行5.1的04等级),一旦出现问题就只能等到完整底包放出之后才能救活。
  4. 用fastboot仅刷入自己需要的部分,而不是用RSD刷入完整包。因为一般来说基带,fsg等分区是不需要动的。如果必须用RSD的话,也最好将通信相关的部分从xml里去掉。
  5. 动手前记得备份。



Posted

in

by

Comments

9 responses to “moto 跨区跨版本刷机相关”

  1. 想咬人的吐槽星人XANA Avatar

    所以我的手机被你当小白鼠用了
    我还请你吃了顿饭
    (我现在就这个表情.jpg)

    1. Frank Avatar

      是我的手机先当的小白鼠好不好,只不过你那出了意料之外的问题

      1. 想咬人的吐槽星人XANA Avatar


        (我现在就这个表情.jpg)

  2. tcdw Avatar

    唉,分区表
    悲伤的回忆
    给自己的 Moto 手机刷机一大坑
    年少无知的我曾经通过官推升级把 xt910 的分区表等级升到 4
    然后就再也回不到 Android 2.3 系统了
    想想 2.3 系统炫丽的官方启动器和特效
    再看看官方 4.x 系统那四不像的样子
    遗憾

    1. Frank Avatar

      我觉得4.0还好吧,至少有自己的设计规范了,虽然跟material相比我也觉得holo不好看。
      但是不能自由降级确实让人很头疼。

  3. 冻酸奶泡芙_RKMBI Avatar

    从第一篇可见文章翻到了最新的一篇[哆啦A梦互粉]

    1. Frank Avatar

      视奸狂魔[哆啦A梦报警]

发表回复/Leave a Reply

您的电子邮箱地址不会被公开。/Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.