2018/07/27(金)Huawei nova liteをAndroid 8.0(Oreo)に強制アップデート
nova lite用のOreoが公開されました。EMUIを起動している(非root/無改造)状態から、システム更新が降ってくるのを待ってもよいのですが、他の方法を試してみました。
P10やP10 Lite等の他機種でも同じようにできるはずです。また、この方法だと、応用でダウングレードもできます。
EMUI5.0からAndroid 8.0 (Oreo)に強制更新
必要なもの。
- SDカード
- unlock / FRP-unlock されたHuaweiスマホ
- スマホの型番(PRA-LX2C635)
- 自分の機種用のカスタムリカバリTWRP(nova lite用)
- 自分の機種用のNoCheck Recovery*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
- SDカードに OTA フォルダを作り、先程ダウンロードした3つのファイルをコピーします。
- この際、リネームは必要ありません!
- OTA-update_PRA-LX2.zipをダウンロードして、OTAに入れます。
- fastbootを起動
- TWRPを recovery2 に焼きます。
fastboot flash recovery2 TWRP-xxxx.img
- NoCheck RECOVERYを recovery に焼きます。
fastboot flash recovery PRA_RECOVERY_NoCheck.img
- TWRPを recovery2 に焼きます。
- TWRPを起動し、OTA-update.zip を Install します。
- リカバリが起動され、インストールが開始されるはずです。
- イントール後、再起動して更新されていれば成功。
改造済公式リカバリが起動しない場合は、うまく起動するリカバリをがんばって探してください。きちんと起動するリカバリを探しておくほうが良いと思います。
改造リカバリが無事導入できたら、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
リカバリに対して、アップデート指示を出しています。
Oreo/TrebleでのストックROMへの復元(ダウングレード可)
試してはいませんが、7.x(Nougat)に戻すことも可能なはずです。
必要なもの。
- SDカード
- unlock / FRP-unlock されたHuaweiスマホ
- スマホの型番(PRA-LX2C635)
- Oreo対応のNoCheck Recovery。
- nova lite用はココ(類似機種でも使えます)
- Oreo用のTWRPを予め焼いておく。
- RecoveryNoCheckOreoHi6250.imgをSDカードにコピー。
- 焼きたい公式ROMイメージ(FullOTA)のダウンロード
- 執筆時点では、PRA-LX2C653B188あたりがNougatの最新だと思います。
- update.zip, update_data_full_public.zip, update_full_PRA-L22_hw_jp.zip をダウンロード。
- SDカードに OTA フォルダを作り、先程ダウンロードした3つのファイルをコピー。
- OTA-update_PRA-LX2.zipをダウンロードして、OTAにコピー。
- TWRPを起動。
- Install imageを選択して、RecoveryNoCheckOreoHi6250.imgを Recovery Ramdisk に焼く。
- 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