はじめに
先日、slackから2021年9月1日以降は Android 8 以降でないと動作しないという連絡が来ました。自分の使っているZenFone 3 LaserのAndroidは7.1.1だったので、このままだと使えなくなってしまいます。端末が古いので、これ以上のアップデートの提供もまず期待できません。自分はslackのヘビーユーザなので、スマホを買い替えることも考えましたが、海外版のファームウェアなら8以降にアップデートできるという情報を見つけ、トライしてみました。
できなかった方法
まず試してみたのが、海外版のファームフェアを入手してSDカード経由で手動アップデート する方法です。この方法は以下URLに手順が示されています。
https://techtrickz.com/how-to/manually-update-asus-zenfone-3-ze520klze552kl-to-android-7-0-nougat-guide/
ただし、結論から言うとこの方法では無理でした。ZenFoneのファームウェアはJP SKU (stock keeping unit)、WW SKUといった日本版や世界版といったような国向けの管理がされていたのですが、JP版のSKUのファームウェアにWW版のSKUのファームウェアをアップデートする処理をするとエラーが出てしまいました。
うまく動いた方法
次に試したのは、AndroidのシステムファイルをWW版のSKUのファームウェアで直接上書きするという方法(おそらく)です。失敗したら使えなくなるリスクがあるのですが、どうせアップデートできなければ買い替えになると思って思い切ってやってみました。自分はうまくいきましたが、知識不足・検証不足な点も多く、もしかすると必ずしもうまくいくものではないかもしれないので、試される場合はバックアップ等、万が一壊れてしまった場合の準備をしっかり行っておいてください。
手順
手順はざっくり以下の通りです。
- 書き込み用のイメージファイルを作成
- ADBとFastbootをPCにインストール
- スマホをFastbootモードにしてイメージファイルを書き込んで起動
書き込み用のイメージファイルを作成
この処理を実行するためには以下を順に進める必要があります。
- 公式ページからファームウェアをダウンロードして解凍
- githubからイメージファイル作成プログラム(sdat2img)を取得
- sdat2imgを実行してイメージファイル作成
ファームウェアは以下に示す公式ページからダウンロードできます。
https://www.asus.com/supportonly/ASUS ZenFone 3 Laser (ZC551KL)/HelpDesk_BIOS/
2017/11/08から更新がないJP版と違い、WW版は2019/02/11まで更新されていたようです。自分はWWの最新版であるVersion WW-80.20.52.90をダウンロード・解凍しました。
イメージファイル作成プログラム(sdat2img)はgithubから入手できます。このプログラムの動作にはpythonが必要なのでもし入っていなければインストールが必要です。
https://github.com/xpirt/sdat2img
入手したsdat2img.pyをファームウェアを解凍したフォルダにコピーしたのが以下図の状態。
githubの説明を参考に、ここから以下のコマンドを打ってイメージファイルを作成します。(正常に動けば、UL-Z01B_1-WW-80.20.52.90-user.imgというイメージファイル(4GB弱)が作成されます。 )
python .\sdat2img.py .\system.transfer.list .\system.new.dat UL-Z01B_1-WW-80.20.52.90-user.img
ADBとFastbootをPCにインストール
ADB(Android Debug Bridge) とFastbootはどちらもPCからAndroidを遠隔操作するためのツールです。ADBは通常状態のAndroidを、Fastbootはリカバリーモードなどの特殊な起動時のAndroidを操作するためのもののようです。Android studioをインストールしたり、Android sdkだけをインストールすればどちらも使えるようになります。
https://developer.android.com/studio/run/win-usb
インストール後、usbケーブルでPCとAndroidを接続し、USBデバッグを許可した上で、ターミナルで以下のコマンドを打ってデバイスが表示されればOKです。
# 接続されているデバイスの確認 adb devices
スマホをFastbootモードにしてイメージファイルを書き込んで起動
この状態で以下のコマンドを実行するとAndroidはbootloaderモード(Fastbootモード)に移行します。Android側の画面がそれっぽいものに切り替わっていることを確認してください。
# Androidをbootloaderモードに変更 adb reboot bootloader
この状態で以下を実行してadbの時と同様にデバイスが認識できればOKです。
# 接続されているデバイスの確認 fastboot devices
ADBはうまくいくがfastbootではうまくいかない場合、以下サイトのやり方で解決する可能性があります。自分の場合はWindowsではどうやってもだめで、Ubuntuで試したらうまくいきました。
https://miriwo.hatenablog.com/entry/2021/01/25/182620
ここからはデバイスを書き込んでいきます。まずターミナルを上の方の工程で作った(UL-Z01B_1-WW-80.20.52.90-user.img)があるところで開き、fastboot devicesで接続が出来ている状態にしてから、以下のコマンドを実行します。
# イメージをAndroidのsystem領域に書き込み fastboot flash system UL-Z01B_1-WW-80.20.52.90-user.img # イメージをAndroidのboot領域に書き込み fastboot flash boot boot.img
これらのコマンドは以下のサイトを参考にしました。
https://app.bettermobileapp.com/article/12832226/%5BTUTORIAL%5D%5BZS550KL%5D%5BZS570KL+PRO%5D+How+to+change+device+SKU+to+WW+%5B29-09-2017%5D
また、systemやbootの意味は以下のサイトを参考にさせていただきました。
https://mijinc0.github.io/blog/post/20190503_how_install_custom_rom/
https://source.android.google.cn/devices/bootloader/flashing-updating
最後にandroidを操作して起動すると立ち上がり、自動的にアップデートも始まります。自分は最初表示が変でしたが、もう一度再起動したら普通に使えるようになりました。
まとめ
AndroidのシステムファイルをWW版のSKUのファームウェアで直接上書きするという方法で、JP版のSKUのZenFone 3 LaserのAndroidをWW版にしてAndroid 8にアップデートすることが出来ました。これでもう1年くらい寿命が延びたと思うので、様子を見ながら引き続き使っていきたいと思います。
突然のコメント失礼いたします
イメージファイルの作成には記載の方法しかないものでしょうか?
pythonでなければできないでしょうか?
コメントありがとうございます。そうですね、私が見つけられた手順ではpythonが必要でした。
おなじくfastbootで苦労したのですが、デバイスドライバで “Asus Android ADB Interface”を探し出してなんとかインストールしたところfastbootをWindows上で使用できました。
ファイル名は”asus_zenphone_usb_driver_win.zip”で8483KBほどで、タイムスタンプが2014年でしたので不安でしたが正常に書き込めました。
windowsでもできるんですね、むごんくんさん、どうもありがとうございます。