Pixelをブートローダーアンロック・Magisk導入(Root化)した状態でアップデートする

Android

Android 13リリース時に、ブートローダーアンロック・Magisk導入(Root化)したPixel 6へOTAが降って来ましたが、Magisk(Root)環境なのでAndroid OS”からは”アップデートをインストールできません。

Magisk(Root)状態でアップデートしたので、メモとして記事に残します。多分、Pixelシリーズ共通で使えるはずです。

Magisk導入(Root化)した状態のPixelをアップデート

システムデータは初期化しないで保持したまま更新できますし、モジュールのインストール内容などもそのままですが、更新後にAndroid起動前でパッチ適用していても、AOSPModsのように一部アプリ・モジュールでは設定がリセットされるので、事前に設定をエクスポート・バックアップしておいた方が良いです。

ブートローダーを起動する

デバイス(Pixel)とadb/fastboot環境のPCをUSBケーブルで、USBデバックモードで接続します。

PC側でコマンドプロンプト(ターミナル)を起動し、以下のコマンドもしくは電源キーとボリュームキー下を同時に長押しでブートローダーを起動させます。

adb reboot bootloader

Factory Imageをダウンロード・web経由でフラッシュ

Googleが公開しているFactory Imageのページを開き、対象デバイスのダウンロード項目からアップデートするFactory Imageのzipファイルをダウンロードし、そのままFlashをクリック。

今回は9月のAndroid 13ビルドから10月のビルドに更新するので、10月のFactory Imageを選択

web側で自動的にビルドをインストールしてくれる、Android Flashツールが起動するので「始めましょう」をクリックし、adbのアクセス許可などを求められるので許可します。

Pixelと接続し、ツールにデバイスを認識させてインストールするビルド内容を選択します。

今回はアップデートの適用なので、全てのオプションのチェックを外してビルドのみインストールしました。

インストールを開始し内容を確認したら、後の操作は全てAndroid Flashツール側で行われるので何もしないで待ちます。

5分くらいでインストールが完了し、ツール側から「プラグを抜いても安全」と表示されていればOKです。

ビルドのインストール後、自動的にAndroid OSが起動しますがロック画面を解除せずに、このまま再びブートローダーへ再起動させます。

そのままPCとUSBデバックモードで接続し、adbコマンド打てば良いだけです。

デバイス側はFastboot Modeで起動させたまま待機します。

Magiskを再度適用させる

ダウンロードしておいたFactory Imageのzipファイルを解凍し、出てきたファイルの中に「image~zip」というファイルがあるので、更にそのファイルを解凍。

二重解凍後のフォルダの中にboot.imgがあるので、boot.imgだけ任意の場所にコピーしておきます。

既にMagisk導入済みの別デバイスを使い、Factory Imageのboot.imgにパッチを当てます。

(画像はブートローダーアンロック時のものを流用したので日付が古い)

任意の場所にコピーしたboot.imgを、Magiskがインストールされたデバイスのストレージにコピー。

Magiskを起動、インストールをタップし、パッチするファイルの選択から内部ストレージにコピーしたboot.imgを選択。

boot.imgにパッチを適用し、Magiskアプリ側で「ALL done!」と表示されれば完了です。

ダウンロードフォルダ内に格納されているboot.imgをPC側へ送り返し、Fastboot Modeで待機させているPixelとPCを接続。

fastbootコマンドを入力し、パッチを適用したboot.imgをPixelにフラッシュします。

fastboot flash boot 〈パッチを適用したboot.img〉

「Finished. Total time: ◯◯s」と表示されていれば、boot.imgをフラッシュできているので作業は完了です。

確認

更新前は”インストールエラー”を吐いていましたが、ビルドインストール後は何事も無かったように”最新の状態”って表示するようになります。

セキュリティ、ビルド番号もしっかりアップデートされてます。

Magisk・Root権限が必要なアプリの動作も問題なし、国内モデルへグローバルアップデートの適用&Magisk環境ですがFeliCaもしっかり使えます。

あとがき

他にもMagisk(Root)状態でアップデートする方法はいくつかあるのですが、Android Flashツールでビルドをインストールしてパッチを再度適用するのが、殆どリスク無く簡単かつ確実だったのでAndroid 13&Magisk導入と同様の方法で更新しました。

Factory Imageをダウンロードするので、去年の12月に更新したやり方と同様にAOSPのリカバリを起動させて”apply update from ADB”からアップデートをデバイスへ流し込み、更新後にリカバリからadb sideload経由でMagiskのzipを適用する方法でも同様のことができると思います。

もしくはOTA適用後にMagiskからa/bパーティションの別スロットにインストールする形で適用するトカ…。

何れにせよアップデート後に再度、Magiskを適用し直さないといけないので、ビルドのインストールは自動でやってくれるAndroid Flashツールで更新するのが面倒なくて楽です。