2018/07/27(金)Huawei nova liteをAndroid 8.0(Oreo)に強制アップデート

nova lite用のOreoが公開されました。EMUIを起動している(非root/無改造)状態から、システム更新が降ってくるのを待ってもよいのですが、他の方法を試してみました。

P10やP10 Lite等の他機種でも同じようにできるはずです。また、この方法だと、応用でダウングレードもできます。

関連記事:nova lite/OreoにカスタムROMを導入

EMUI5.0からAndroid 8.0 (Oreo)に強制更新

必要なもの。

  • SDカード
  • unlock / FRP-unlock されたHuaweiスマホ
  • スマホの型番(PRA-LX2C635)
  • 自分の機種用のカスタムリカバリTWRP(nova lite用
  • 自分の機種用のNoCheck Recovery*1イメージ
    • nova liteの場合はこのサイトのHWOTAリンク先のHWOTA.rarに含まれる「PRA_RECOVERY_NoCheck.img」
    • Huaweiのスマホなら、各機種用のを探せば(HWOTA等で検索)同じことができます。
  1. Android 8.x の公式ROMイメージ(FullOTA)のダウンロード*2
    • Firmware databaseに型番を入れて探します。nova liteなら「PRA-LX2C635」。
    • filelistをクリックしてファイルのURLを調べます。
    • update.zip, update_data_full_public.zip, update_full_PRA-L22_hw_jp.zip をダウンロードします。*3
  2. SDカードに OTA フォルダを作り、先程ダウンロードした3つのファイルをコピーします。
    • この際、リネームは必要ありません!
  3. OTA-update_PRA-LX2.zipをダウンロードして、OTAに入れます。
  4. fastbootを起動
    • TWRPを recovery2 に焼きます。
      fastboot flash recovery2 TWRP-xxxx.img
      
    • NoCheck RECOVERYを recovery に焼きます。
      fastboot flash recovery PRA_RECOVERY_NoCheck.img
      
  5. TWRPを起動し、OTA-update.zip を Install します。
  6. リカバリが起動され、インストールが開始されるはずです。
  7. イントール後、再起動して更新されていれば成功。

改造済公式リカバリが起動しない場合は、うまく起動するリカバリをがんばって探してください。きちんと起動するリカバリを探しておくほうが良いと思います。

改造リカバリが無事導入できたら、TWRPで「OTA-update_PRA-LX2.zip」を書き込むところから再開します。

補足

HWOTA.rar の中には、インストール作業用の「OTA_catuva21.zip」が含まれますが、パーティション番号で直接dd(上書き)していて怖いので、使わないようにしました。

ただ「OTA_catuva21.zip」を使えば、PCからfastboot接続せずに、スマホ内だけで完結して更新することが可能です。

余談

この方法を応用するとハードウェアが同じスマホ同士で機種変(型番変更)もできるようなのですが、危険が伴うので試してはいません。気になる人は最後のリンクを見てください。

OTA-update_PRA-LX2.zipについて

以下のスクリプトを実行しているだけです。TWRPの Terminal から手で入力しても同じです。

#!/sbin/sh

echo --update_package=/sdcard/OTA/update.zip > /cache/recovery/command
echo --update_package=/sdcard/OTA/update_data_full_public.zip >> /cache/recovery/command
echo --update_package=/sdcard/OTA/update_full_PRA-L22_hw_jp.zip >> /cache/recovery/command

reboot recovery

リカバリに対して、アップデート指示を出しています。

*1 : Huaweiチェック除去済リカバリ

*2 : この作業はAndroid端末上でFirmware Finder for Huaweiを使ってで行ってもok。

*3 : ファイル名が違う場合はこのファイル名に変えてください。

Oreo/TrebleでのストックROMへの復元(ダウングレード可)

試してはいませんが、7.x(Nougat)に戻すことも可能なはずです。

必要なもの。

  • SDカード
  • unlock / FRP-unlock されたHuaweiスマホ
  • スマホの型番(PRA-LX2C635)
  • Oreo対応のNoCheck Recovery。
  1. Oreo用のTWRPを予め焼いておく。
  2. RecoveryNoCheckOreoHi6250.imgをSDカードにコピー。
  3. 焼きたい公式ROMイメージ(FullOTA)のダウンロード
    • 執筆時点では、PRA-LX2C653B188あたりがNougatの最新だと思います。
    • update.zip, update_data_full_public.zip, update_full_PRA-L22_hw_jp.zip をダウンロード。
  4. SDカードに OTA フォルダを作り、先程ダウンロードした3つのファイルをコピー。
  5. OTA-update_PRA-LX2.zipをダウンロードして、OTAにコピー。
  6. TWRPを起動。
  7. Install imageを選択して、RecoveryNoCheckOreoHi6250.imgを Recovery Ramdisk に焼く。
  8. Install Zip に戻して OTA-update_PRA-LX2.zip を焼く。

あとは自動で更新されるはずです。

メモ(Oreoパーティション一覧)

bootfail_info		/dev/block/mmcblk0p48
cache			/dev/block/mmcblk0p42
cust			/dev/block/mmcblk0p52
dfx			/dev/block/mmcblk0p40
dto			/dev/block/mmcblk0p35
dts			/dev/block/mmcblk0p34
erecovery_kernel	/dev/block/mmcblk0p27
erecovery_ramdisk	/dev/block/mmcblk0p28
erecovery_vbmeta	/dev/block/mmcblk0p38
erecovery_vendor	/dev/block/mmcblk0p29
fastboot		/dev/block/mmcblk0p5
frp			/dev/block/mmcblk0p4
fw_hifi			/dev/block/mmcblk0p26
fw_lpm3			/dev/block/mmcblk0p3
hisitest0		/dev/block/mmcblk0p44
hisitest1		/dev/block/mmcblk0p45
hisitest2		/dev/block/mmcblk0p46
kernel			/dev/block/mmcblk0p30
misc			/dev/block/mmcblk0p20
modem_fw		/dev/block/mmcblk0p36
modem_om		/dev/block/mmcblk0p18
modemnvm_backup		/dev/block/mmcblk0p10
modemnvm_factory	/dev/block/mmcblk0p6
modemnvm_img		/dev/block/mmcblk0p11
modemnvm_system		/dev/block/mmcblk0p12
modemnvm_update		/dev/block/mmcblk0p21
nvme			/dev/block/mmcblk0p7
odm			/dev/block/mmcblk0p43
oeminfo			/dev/block/mmcblk0p8
patch			/dev/block/mmcblk0p47
persist			/dev/block/mmcblk0p16
product			/dev/block/mmcblk0p55
ramdisk			/dev/block/mmcblk0p31
recovery_ramdisk	/dev/block/mmcblk0p32
recovery_vbmeta		/dev/block/mmcblk0p37
recovery_vendor		/dev/block/mmcblk0p33
reserved1		/dev/block/mmcblk0p17
reserved2		/dev/block/mmcblk0p22
reserved3		/dev/block/mmcblk0p9
reserved4		/dev/block/mmcblk0p14
reserved5		/dev/block/mmcblk0p15
reserved8		/dev/block/mmcblk0p39
reserved9		/dev/block/mmcblk0p50
rrecord			/dev/block/mmcblk0p49
secure_storage		/dev/block/mmcblk0p13
sensorhub		/dev/block/mmcblk0p25
splash2			/dev/block/mmcblk0p19
system			/dev/block/mmcblk0p51
teeos			/dev/block/mmcblk0p23
trustfirmware		/dev/block/mmcblk0p24
userdata		/dev/block/mmcblk0p56
vbmeta			/dev/block/mmcblk0p41
vendor			/dev/block/mmcblk0p54
version			/dev/block/mmcblk0p53
vrl			/dev/block/mmcblk0p1

参考リンク