Magisk導入済みのXiaomi Mi A2でルート化を維持したままOTAアップデートを適用する方法
ルート化済みのXiaomi Mi A2にOTAアップデートを適用するのは、非常に手間のかかる作業です。一度ルート化を解除し、アップデート後に改めてすべての手順をやり直す必要があるケースも少なくありません。しかし幸いなことに、OTAアップデートに対応した形でMagiskをインストールする方法が存在します。
ルート化を解除することなくOTAアップデートを適用したい方は、以下のガイドに沿って慎重に進めてください。
必要なもの
- ADBおよびFastboot(WindowsへのADBのインストール方法はAppualsのガイドを参照)
- MiFlashツール
ブートローダーのアンロック
まず、ブートローダーのアンロックが必要です。ただし、Xiaomiのブートローダーアンロックプログラムは最近処理が非常に遅くなっており、アンロックコードが発行されるまでに数週間かかる場合があります。また、Xiaomi端末にはARB(Anti-Rollback Protection、ロールバック防止機構)が搭載されている点にも注意してください。
すでにブートローダーがアンロック済みであれば、そのまま次へ進みましょう。
「設定」>「システム」>「端末情報」の順に開き、「ビルド番号」を7回タップして開発者向けオプションを有効化します。
続いて「設定」>「開発者向けオプション」から「OEMロック解除」をオンにします。
端末の電源を切り、「音量下ボタン+電源ボタン」を同時に長押しします。Fastbootメニューが表示されたらボタンを離してください。
Xiaomi Mi A2をUSBケーブルでPCに接続し、ADBターミナルを起動します(ADBフォルダ内でShiftキーを押しながら右クリックし、「コマンドウィンドウをここで開く」を選択)。
ADBターミナルで以下のコマンドを入力します。fastboot oem unlock
これにより端末が再起動し、ブートローダーのアンロックと同時にすべてのデータが消去されます。
Magiskのインストール
最新版のMagisk Manager APKをダウンロードして端末にインストールします。
次に、パッチ済みのboot.imgを以下のリストからダウンロードします。あるいは、リストの後で紹介する手順に従って、オリジナルのboot.imgに自分でパッチを適用することも可能です。
パッチ済みboot.imgをダウンロードする場合は、自分の端末と同一のビルド番号であることを必ず確認してください。作業前に「設定」>「端末情報」でビルド番号をチェックし、ファイルを直接端末の内部ストレージに書き込まないでください。Magiskが正常に動作しなくなります。手順は記載どおり正確に実行してください。
パッチ済みboot.imgは、PC上のADBフォルダに保存してください。
- patched_boot 9.6.4.0(2018年7月アップデート)- Magisk 17.1でパッチ済み
- patched_boot 9.6.6.0(2018年8月アップデート)- Magisk 17.1でパッチ済み
- patched_boot 9.6.8.0(2018年9月アップデート)- Magisk 17.1でパッチ済み
誤って別のboot.imgを書き込んでしまった場合は、以下のオリジナルboot.imgを書き込めば復旧できます。
- original boot.img 9.6.4.0(2018年7月アップデート)- Fastboot ROMから抽出
- original boot.img 9.6.6.0(2018年8月アップデート)- OTAアップデートから抽出
- original boot.img 9.6.8.0(2018年9月アップデート)- OTAアップデートから抽出
手動でboot.imgにパッチを適用する場合は、オリジナルのboot.imgが必要です。これは公式Fastboot ROMのzipファイル(Mi A2のコードネーム「jasmine」用)の中に含まれています。ダウンロードするROMのバージョンが、端末側のビルド番号と一致していることを必ず確認してください。端末と同じビルド番号のboot.imgを入手するか、バージョンの更新・ダウングレードを行ってください。
オリジナルのboot.img(公式Fastboot ROMのzipから抽出)を用意したら、それを端末の外部メモリ(SDカード)にコピーします。
Magisk Managerアプリを開くと、Magiskをインストールするかどうか尋ねられるので、承認して「Patch Boot Image File」を選択し、転送しておいたboot.imgファイルを指定します。
処理には約1分ほどかかります。完了したら画面を閉じてください。「Download」ディレクトリ内に「patched_boot.img」というファイルが生成されているので、これをPCに転送し、ADBフォルダに配置します。
端末をFastbootモードで再起動し(電源+音量下)、PCでADBターミナルを起動します。
ADBターミナルで以下のコマンドを入力します。fastboot boot patched_boot.img
端末が通常どおり起動します。Androidシステムに戻ったら、Magisk Managerアプリを開きます。再びMagiskのインストールを求められるので、「Install」>「Direct Install」を選択し、完了したら再起動しましょう。
最後に、今後のOTAアップデートに備えて「設定」>「システム」>「開発者向けオプション」から「自動システムアップデート」を無効にしておきます。OTAアップデートは必ず手動でのみ適用してください。ルート化済みのAndroid端末で自動OTAを許可してはいけません。
今後のOTAアップデートを適用する手順
重要なポイントとして、OTAアップデートが成功するのは、端末のすべてのパーティションが未変更の状態である場合のみです。Magiskはオリジナルのboot.imgを復元できますが、build.propを直接編集するなどして/systemパーティションに変更を加えていると、OTAはインストールを拒否します。
Fastboot ROM全体を書き込まなくても、変更したパーティションだけを元に戻せばOTAを適用できる可能性があります。たとえば、オリジナルのFastboot ROMのzipから該当する.imgファイルを取り出し、/systemパーティションだけを書き込むといった方法です。
新しいOTAアップデートが配信されたら、まずMagisk Managerを起動し、「Uninstall」>「Restore Images」をタップします。ただし、まだ端末を再起動しないでください。
Magiskを閉じ、「設定」>「システム」>「システムアップデート」からOTAアップデートをインストールします。ダウンロードが完了すると、2段階のアップデートプロセスが始まります。処理には時間がかかるため、コーヒーを淹れるなどして気長に待ちましょう。
アップデートの各段階が完了すると再起動を求められますが、ここでは再起動しないでください。再びMagisk Managerを起動し、「Install」>「Install」>「Install to Inactive Slot (After OTA)」を選択してから、初めて再起動してください。
再起動後、Xiaomi Mi A2には最新のAndroidバージョンが適用され、Magiskも引き続き正常に機能しているはずです。
トラブルシューティング
注意:以下の操作を行う前に、画面ロック(PIN、パスワード、指紋認証など)を必ず無効にしてください。暗号化の問題でデータにアクセスできなくなる恐れがあります。事前のバックアップ作成を強くおすすめします。
ガイドに忠実に従わなかった場合、いくつかの問題が発生する可能性があります。
新しいバージョンが検出されると、アップデータは端末の全パーティションが未変更かどうかをチェックします。変更されたパーティションが1つでもあると、OTAアップデータはインストールを実行しません。
ユーザーによるカスタマイズで変更されやすいのは、主にbootパーティション(MagiskやTWRPがインストールされる場所)とsystemパーティション(設定ファイルの変更やシステムアプリの追加・削除など)の2つです。
Magiskモジュール経由でのみ変更されたsystemパーティションは、実質的に未変更とみなされます。Magiskは/systemへの変更内容を/dataパーティション内のファイルに記録し、Androidに対してあたかも/systemに実際の変更が適用されているかのように見せかけているためです。
一方、bootパーティションは実際に変更されます。ただし、このガイドに従ってMagiskをインストールしていれば、Magiskは未変更のbootパーティションのコピーを保存しており、OTA適用前にそれを復元すればアップデートは正常に完了します。
このガイド以外の方法でMagiskをインストールした場合、OTAアップデートを適用しようとした際に、Magiskがオリジナルのboot.img(bootパーティション)を復元できないと警告することがあります。
この問題を解決するには、本ガイドの手順6で入手したvanilla(オリジナル・未変更・無加工)のboot.imgを直接書き込みます。使用するコマンドは以下のとおりです。
fastboot getvar current-slot
fastboot flash boot_? boot.img
最初のコマンドで現在アクティブなスロット(aまたはb)が表示されます。2番目のコマンドでオリジナルのbootを書き込みますが、「?」の部分を最初のコマンドで得られたスロット(aまたはb)に置き換えてください。
boot.imgのバージョンは、端末で現在稼働しているAndroidビルドのバージョンと一致している必要がある点に注意してください。
それでもOTAアップデートが適用できない場合は、/systemパーティションを直接変更した可能性があります(例:Magiskモジュールを使わずにbuild.propを編集したなど)。この場合は、以下のコマンドでオリジナルのsystem.imgを書き込みます。
fastboot getvar current-slot
fastboot flash system_? system.img
先ほどと同様に、最初のコマンドで表示されるスロットを2番目のコマンドの「?」に代入してください。OTAアップデートのzipから抽出したsystem.img(およびその他の.imgファイル一式)は、以下から入手できます。
- 9.6.8.0(2018年9月)OTAアップデートのダンプ(.imgファイル)
- 9.6.6.0(2018年8月)OTAアップデートのダンプ(.imgファイル)
system.imgを自分で抽出したい場合は、Fastbootイメージの中にも含まれていますが、こちらはOTAほど頻繁には更新されません。そこで、OTAアップデートのzipからPythonスクリプトを使ってsystem.imgを直接抽出する方法が便利です。
Debian/Ubuntu系でPythonスクリプトを使用するには、「extract_android_ota_payload.py」と「update_metadata_pb2.py」の両方をダウンロードし、実行権限を付与したうえで、「python-protobuf」パッケージをインストールします。その後、OTAアップデートのzipから取り出したpayload.binを展開するために、以下のコマンドを実行します。
./extract_android_ota_payload.py /path/to/payload.bin
これにより、payload.bin内のすべての.imgファイル(system.imgを含む)がカレントディレクトリに抽出されます。Windowsでの詳細な手順は明確ではありませんが、最新のPython 2をインストールすればスクリプトが動作すると思われます。
最終手段として、利用可能な最新のFastbootイメージをMiFlashで直接書き込むこともできます(現在のバージョンより古い場合でも可)。「flash_all.bat」スクリプトを使用しますが、端末が完全に初期化されるため、事前に必ずデータのバックアップを取ってください。
バックアップなしで進めたい場合は、「flash_all_except_storage.bat」スクリプトを使用すればデータを保持したまま書き込めます。ただし、暗号化の問題によりデータにアクセスできなくなるケースがあるため、その点はご了承ください。
書き込み直後は、本ガイドの手順5または6から再開できます。
Androidのメジャーバージョンが同じである限り(現時点ではOreo 8.1)、Fastboot経由でビルドバージョンをダウングレードしても問題は発生しないはずです。
以下はMi A2(jasmine)用のパッチ済み・オリジナルbootファイルです(Mi A2 Lite(daisy)には使用しないでください。daisy用のファイルは本ガイドの前半セクションにあります)。
- patched_boot 9.6.9.0(7月アップデート)- Magisk 17.1でパッチ済み
- patched_boot 9.6.10.0(8月アップデート)- Magisk 17.1でパッチ済み
- original boot.img 9.6.9.0(7月アップデート)- Fastboot ROMから抽出
- original boot.img 9.6.10.0(8月アップデート)- Fastboot ROMから抽出
-
MacでBoot Campを使ってWindows 7を導入する方法【初心者向け手順解説】
MacにBoot Campを使ってWindows 7をインストールすれば、両方のOSをフルパフォーマンスで活用できます。Boot Campは、Macのハードディスクをパーティション分割してOS XとWindows 7の2つのOSを共存させ、起動時に切り替えて使えるようにするApple純正の機能です。Boot CampでWindows 7を使用する場合、OS XではなくWindowsを直接起動することになります。これにより、MacのメモリやCPU性能など、ハードウェアの全リソースをWindows側に割り当てられるのが大きなメリットです。一方、VMware FusionやParallelsといった
-
AndroidでOTAアップデート通知を無効にする方法【5つの対処法】
近年のAndroidスマートフォンでは、システムアップデートやセキュリティパッチが頻繁に配信されています。特にセキュリティパッチは毎月少なくとも1回は提供されるのが一般的です。しかし、アップデートを促す通知が何度も表示されると、次第に煩わしく感じることがあります。中には、通知バーに表示されたままスワイプしても消せないケースもあり、多くのユーザーを悩ませています。 OTAアップデートとは? OTAとは「Over-the-Air(オーバーザエア)」の略称です。 OTAアップデートにより、システムアプリやOS本体を最新の状態に保つことができます。 OTA通知が煩わしく感じる理由 頻繁にOTA