どんな記事?
Pixel 7 / Pixel 7 ProのBootloader Unlockと、Magiskを用いてRootを取る手順を紹介します。
Bootloader UnlockおよびRoot化したAndroidデバイスでSafetyNetをパスする方法、決済アプリや銀行系アプリなどを使う方法については以下の記事も併せてご覧ください。
MagiskモジュールやLSPosedモジュールなどをインストールして便利に使う方法も近日中にまとめる予定です。
要点
慣れている方ならこの要点だけで理解できる内容となっています。
Magiskでパッチするのは従来のboot.imgではなくinit_boot.img
Android 13 を搭載してリリースされるデバイスの場合、汎用 RAM ディスクが boot イメージから削除され、別の init_boot イメージに配置されています。この変更により、boot イメージには GKI カーネルのみが残ります。
Android 12 以前のカーネル バージョンを引き続き使用するデバイスをアップグレードする場合、汎用 RAM ディスクは、新しい init_boot イメージを必要としない状態が維持されます。
https://source.android.com/docs/core/architecture/bootloader/partitions/generic-boot
ドキュメントを参照するとこのように書いてありました。つまりAndroid 13が初期イメージのPixel 7ではinit_boot.img
に対してパッチを当てる必要があるということです。Pixel 6の場合は初期イメージがAndroid 12でしたので、Android 13にアップデートしたあともboot.imgでOKです。
SafetyNetやPlay IntegrityもOK(追記あり)
方法は後日公開予定の記事で詳しく言及しますが、取り急ぎ追記。
詳しい記事を公開しました! 併せてご参照ください。
追記(2023/07/31)
Googleにより穴がふさがれてしまったため、MEETS_STRONG_INTEGRITYをパスすることはできなくなりました。
追記(2023/07/21)
v2.4.0-MOD_2.0がリリースされています。
これによりMEETS_STRONG_INTEGRITYをパスすることが可能になりました!

追記6(2023/02/12)
本家に追従する形でUniversal SafetyNet Fix v2.4.0-MOD_1.0 がリリースされています。
追記5(2023/02/10)
Universal SafetyNet Fix v2.3.1-MOD_3.0 がリリースされています。
2023/01更新およびPlayシステムアップデート後にSafetyNetやGoogle Payの認証が外れるときがあったのですが、これで解決するかな…?🤔
追記4(2023/01/10)
Universal SafetyNet Fix 2.4.0にてPlay Integrity APIのチェックを通過できるようになりました。
追記3
v2.3.1-MOD_2.0で動作するようになりました。
追記2
僕はテスト版を使ったのですが、safetynet-fix-v2.3.1-MOD_2.0だと正常に動きませんでした。
# avoid breaking encryption, set shipping level to 32 for devices >=33 to allow for software attestation.
if [[ "$(getprop ro.product.first_api_level)" -ge 33 ]]; then
resetprop ro.product.first_api_level 32
fi
API 32(Android 12L)をサポートしているデバイスなら、単に
resetprop ro.product.first_api_level 32
と修正しておけば動くはず。
追記1
Universal SafetyNet Fix MODの作者がXDAで新しいバージョンを公開していましたので試したところ、無事にSafetyNetとPlay Integrityの認証が通りました!(MEETS_STRONG_INTEGRITY以外)

Android 13以上でリリースされたデバイスはPlay Integrity APIのハードウェア認証を使用してMEETS_DEVICE_INTEGRITYおよびMEETS_STRONG_INTEGRITYに合格する必要があるのですが、実際にはro.product.first_api_level=33を検出するとハードウェア認証を行うらしくro.product.first_api_level を下げることで回避しているようです。
追記前
現時点ではSafetyNetを完全にパスすることはできていません。

Google Payや銀行系のアプリ(住信SBIなど)も使える
こちらも後日公開予定の記事で詳しく説明しますが、Google Payや銀行系のアプリも使うことができました。ソーシャルゲームに関してはプレイしないので分かりません。

Bootloader Unlock
MagiskでRootを取るには前提条件としてBootloaderのUnlockが必要です。
必要なもの
SDK Platform-Tools
Bootloader Unlockの手順
- まずは動作確認(初期不良対策)
Googleデバイスの場合BootloaderをUnlockすると保証が無効になりますので、最初にハードウェアの不良がないか確認します。正常に電源が入るかどうか、またタップの反応などを確認しておくといいです。ただしのちほど初期化されますので、アレコレ設定しても無駄になります。
- システムアップデート
Pixel 7 / Pixel 7 Proにはゼロデイアップデートが配布されていましたので、 設定 → システム → システムアップデート でアップデートを適用しておきます。
- 開発者向けオプションを有効にする
設定 → デバイス情報 → ビルド番号 を7回タップ

- USBデバッグを有効にする
設定 → システム → 開発者向けオプション → USBデバッグ

- OEMロック解除を有効にする
設定 → システム → 開発者向けオプション → OEMロック解除

- Bootloaderに再起動する
USBデバッグが有効な状態でadb reboot bootloader
するか、ボリュームダウンボタンを押しながら電源ONにしてもOKです。再起動後、赤字でFastboot Modeと表示されていることを確認します。
- BootloaderをUnlockする
fastboot flashing unlock
Pixel 7 / Pro の画面にUnlockの警告が出ますので、ボリュームボタンで選択し、電源ボタンで決定します。このときデバイスは完全に初期化されますのでご注意ください。
- 再起動
Device state: unlocked になっていることを確認します。
確認できたらボリュームボタンで Start を選択し、電源ボタンを押して起動します。
- 初期設定
無事に起動したら初期設定を済ませましょう。設定 → システム → 開発者向けオプション → 自動アップデート を無効にしておきます。

Root
BootloaderのUnlockができれば、あとはもうひと息です。
必要なもの
後述手順にて詳しく説明します。
デバイスに応じたFactory Image
Magisk
Magiskを使ってRootを取る手順
- Magiskをダウンロード
Googleの最新デバイスで最新OSですので、StableよりCanaryビルドを使ったほうがいいかと思います。正式に対応したらStableビルドに切り替えてもいいですね。

- Magiskをインストール
エクスプローラでドラッグ&ドロップして転送後、デバイス側で開きインストールしてもいいですが、USBデバッグがONになっていればadb install app-release.apk
で簡単にインストールできます。
- 該当機種のFactory Imageをダウンロード
2022年10月15日現在、Pixel 7向けはpanther-td1a.220804.031-factory-2f036a47.zipが最新でした。

- ダウンロードしたFactory Imageを展開
panther-td1a.220804.031-factory-2f036a47.zipを例に進めます。

これを解凍すると……

こうなるので、panther-td1a.220804.031フォルダを開きます。

panther-td1a.220804.031フォルダの中にimage-panther-td1a.220804.031.zipがあるので、これを開いて次の手順へ。
- init_boot.imgを取り出す
Magiskでパッチするinit_boot.img
のみを解凍します。

- init_boot.imgをデバイスに転送
エクスプローラ上でドラッグ&ドロップしてコピーしてもいいですし、adb push .\init_boot.img /sdcard/Download/
などと転送してもOKです。

- Magiskでパッチを当てる
転送したinit_boot.imgにMagiskでパッチを当てます。Magiskを起動しインストールを選び、パッチするファイルの選択をタップするとファイル選択になるので、init_boot.img を選ぶと自動でパッチが適用されます。

- パッチしたinit_boot.imgをPCに転送
前項でパッチが当たったイメージはデバイスのDownloadフォルダにmagisk_patched-25203_JPU20.imgのような名前で保存されますので、それをPCに転送します。
- Bootloaderに再起動する
adb reboot bootloader
- init_boot.imgをデバイスに焼く
このとき注意したいのは、Pixel 7 / Pixel 7 Proではパッチしたイメージを焼くパーティションがinit_bootに変わっていることです。間違えるとブートループになる可能性もあるので気をつけてください。fastboot flash init_boot .\magisk_patched-****.img
普通に使うだけならvbmeta.imgを焼く必要はありませんが、あとでカスタムカーネルを焼いたりするかもという方は、やはり引き続き最初に
fastboot flash vbmeta vbmeta.img --disable-verity --disable-verification
しておいたほうがいいです。
すでにいくつかのカスタムカーネルが公開されていますが ( Despair Kernel, CleanSlate kernel, Kirisakura-Kernel, など)、いずれのカーネルも現状だとVerityとVerification両方を無効にしないと使用することができません。
開発者は少なくともVerificationについては無効にせずとも使えるようにしたいと考えているようですが、リリースまでにはしばらく時間がかかると思います。
ちなみにPixel 6向けのカスタムカーネルの場合、両方を無効にしても動作するものがリリースされるまで1~2ヶ月ほどかかったそうです。
また一度VerityとVerification両方を無効にした場合、ファクトリーイメージを使ってファームウェアを更新したら毎回必ずあらためて無効にする必要があります。
もし忘れたまま起動してしまうと、再度無効にするにはァクトリーリセットをする必要があるのでご注意ください。
参考URL
- 再起動
無事にmagisk_patched-****.img
が焼けたらfastboot reboot
で再起動します。これでMagiskによるRootが取得できているはずです。ひとまずお疲れさまでした!

まとめ
- Magiskでパッチするのは従来のboot.imgではなくinit_boot.img
- SafetyNetやPlay IntegrityもOK
- その状態でもGoogle Payや銀行系のアプリ(住信SBIなど)も使えた
Bootloader UnlockおよびRoot化したAndroidデバイスでSafetyNetをパスする方法、決済アプリや銀行系アプリなどを使う方法については以下の記事も併せてご覧ください。
MagiskモジュールやLSPosedモジュールなどをインストールして便利に使う方法も近日中にまとめる予定です。
僕がPixel 7用に買ったアクセサリー

コメント
vbmetaをflashせずにカスタムカーネルを焼くことは将来的にはできるんでしょうか?
結論としては、待てばリリースされる可能性はあると思います。
すでにXDAにはPixel 7シリーズ向けにいくつかカスタムカーネルが公開されています。
Despair Kernel
https://forum.xda-developers.com/t/kernel-despair-kernel.4505725/
CleanSlate kernel
https://forum.xda-developers.com/t/kernel-cleanslate-t1-4-0-s2s-adblock-vib-batterysvr-oct-24.4509793/
Kirisakura-Kernel
https://forum.xda-developers.com/t/kernel-24-10-2022-android-13-0-0-stable-kirisakura-1-0-0-for-pixel-7-pro-aka-pantah.4509795/
どれも現状だとVerityとVerification両方を無効にしないと使用することができません。
開発者は少なくともVerificationについては無効にせずとも使えるようにしたいと考えているようですが、リリースまでにはしばらく時間がかかると思います。
ちなみにPixel 6向けのカスタムカーネルの場合、両方を無効にしても動作するものがリリースされるまで1~2ヶ月ほどかかったそうです。
また一度VerityとVerification両方を無効にした場合、ファクトリーイメージを使ってファームウェアを更新したら毎回必ずあらためて無効にする必要があります。
もし忘れたまま起動してしまうと、再度無効にするにはァクトリーリセットをする必要があるのでご注意ください。
参考URL
https://forum.xda-developers.com/t/unlock-bootloader-root-pixel-7-pro-cheetah-safetynet-working-again-all-relevant-links.4502805/page-35#post-87593381
分かりやすく、とても丁寧にまとめてくださってありがとうございます!
こちらこそ! コメントありがとうございました!
分からないことがあればいつでもお気軽に!
play integrity API checkerを使ってroot化後にチェックしたところ、
MEETS_DEVICE_INTEGRITY
がokにならずに✕になってしまいます。
なにか対処法はあるでしょうか?
また、✕であることによる欠点にはどのようものがあるでしょうか?
コメントありがとうございます!
YASNACでのCTS profile matchはどうなっていますか?
こちらの記事をご参照いただき、Universal SafetyNet FixやShamikoなどを導入してから、再度チェックしてみてもらえますか?
Google Play ストア/Google Pay/開発者サービスのデータを消して再起動する必要があるかもしれません。
✕の場合はGoogle Payが使えなくなると思います。
CTS profile matchはfailになっています。
・magiskを隠す
・playサービスなどの再起動
・denylistを構築&アプリの追加
・再起動
を行いましたが変わらずです。
SafetyNetが通っていないようですね。
MOD版のUniversal SafetyNet Fixはお試しになりましたか?
お使いの機種はPixel 7シリーズでしょうか、もしMagiskのStableを使っている場合はCanaryも試してみるといいかもです。
とてもわかりやすく非常に助かります。
質問があります。
bootloaderアンロックでesim情報は消去されてしまうのでしょうか?
アンロックでのesim情報消去有無が分からず躊躇しています。
ご存知でしたらご教授いただきたいです。
よろしくお願いいたします。
コメントありがとうございます。
結論から言えばeSIMはアンロックで消えることはないと思います。
探してみたところAndroPlusさんのRakuten Miniをアンロックする記事にもそのような記述がありました。
私は入手後すぐにアンロックしたためeSIM登録状態でのアンロックはしていませんが、アンロック時はファクトリーリセットがかかります。
ROM焼きの際に何度かファクトリーリセットしたり fastboot -w などでデータパーティションをワイプしていますが、私の端末で今までeSIMが消えたことはありませんでした!
ご回答大変ありがとうございました。
なるほど、esimは大丈夫そうですね。
久しぶりにroot、magiskに挑戦してみます。
有用な情報感謝いたします。
eSIM自体はデバイスに残るはずですが、APNはたしか毎回設定し直していた気がします。
Androidにも早くeSIMの転送などが実装されるといいですね。
またなにかありましたらいつでもコメントなどいただければと思います!
root化頑張ってください!
わかりやすい内容、ありがとうございます。
ひととおり紹介していただいた手順通り実施し、イメージ焼きも問題なく終了しているのですが、Rootが取れない状況に陥っております。
原因として考えられるのは、初回のイメージを焼く際に自身の端末と違うビルド番号の
イメージを一度焼いてしまったことです。
なにか打開策等あればご助言お願いします。
コメントありがとうございます。
ご使用中のデバイスは何でしょうか?
Pixel 7シリーズ以降はMagiskでパッチするファイルが init_boot.img に変更されていますので、もしかしたらそれが原因かもしれません。
起動は問題なくでき、Magiskアプリでの状態がNGということですかね?
初回に別ビルドのファクトリーイメージを焼いてしまったとのことですが、そのあと適正なものを再度焼いたのであれば問題ないと思われます。
またイメージ焼きの際はスロットのAとB両方に焼いて置いたほうが無難です。
かなで様
コメントありがとうございます!
使用端末はpixel7 proです。
Magiskでinit_boot.imgにパッチを当てる→bootloaderで正しく焼ける→root取れてない といった感じです。
rootは取れていないのにGPayはroot化されているから使えないと表示される始末…
一度初期化して再挑戦してみます。
むむ、それは謎ですね…パッチを当てたほうのスロットとは別のスロットで起動してしまっているのかな…?🤔
以前MagiskからMagisk Deltaに変更してみたときに、初期化せずやったらマネージャ上はRootが外れた状態になってしまったことがありますが、今回はそのパターンではなさそうですね。
もし初期化しちゃっても大丈夫であれば、ファクトリーリセットかけて焼き直すのが一番確実だと思います!
頑張ってください!
以前esimについて質問させていただきましたketaketaです。
root化でesimが消去されることはなさそうだとの情報をいただき久しぶりにroot化しました。
結論から言うとesimは全く消去されません!(^^)!
root化していろいろ設定していたら挙動がおかしくなりfactory imageでflash-all.bat初期化、さらにPixelFlasherで2回WIPE all dataにて焼き直しましたがesimは問題ありませんでした。
久しぶりのroot化で最初は戸惑いましたがすべてのアプリで問題なく起動できるようになりとっても快適です。
有益な情報大変ありがとうございました。
ご報告ありがとうございます!
うまく設定できたようでなによりです。
最近は日本語コミュも活発になってきてるので、もっと盛り上がってくれるといいですね!
7a発売に伴い最新のファクトリーイメージが公開されたので7ProにMagiskの導入を考えているのですが、こちら非rootのbootloader Lock状態に戻すことは可能なのでしょうか?
初期状態(Bootloader Lock状態)に戻すことはもちろん可能です!
一番簡単な方法だとGoogleのFactory Image配布ページからブラウザを使って初期化&イメージを焼く方法が挙げられると思います。
「Lock Bootloader」という項目がありますので、そちらにチェック入れれば大丈夫です!
ありがとうございます、試しにMagiskを敢えてアンインストールせずにAndroid Flash Toolで最新ビルドをフラッシュしてみましたが無事元の状態に戻りました、安心してroot取得ができます…!
無事に初期状態に戻せたようでよかったです!
ピクセル 7aに間違えてinit_boot.imgをboot.img に焼いてしまいました。
ブートループしています。
ファクトリーイメージをDL後flash-all.batを実行してもうまくいかないです。
何か対処法ありますでしょうか?
間違えたパーティションだけ上書きで焼けば問題ないはずです。
今回であれば正しいboot.imgをbootパーティションに焼くだけですね。
(私も間違えて焼いたことあります…笑)
ファクトリーイメージをすべて焼き直したなら正常に起動するはずですが、もしかしたら再起動時にスロットが変わっているかもしれません。
一度ファクトリーイメージを焼いたあと、fastbootで
fastboot set_active other
fastboot reboot bootloader
としてスロットを切り替えて、再度ファクトリーイメージを焼いてみてください。
返信ありがとうございます!
boot.imgを上書きしたのですがやはり起動しません。。。
init_boot.imgも上書きしました。
スロットを変えても変わりませんでした。
flash-all.batを起動してこのようなエラーが起きます。
fastboot: error: ANDROID_PRODUCT_OUT not set
リカバリーモードから工場出荷の状態へリセットもエラーを吐きます。
Wipe data/factory reset
Error recovery opne file : metadeta/ota :no such file or directory
ファクトリーイメージを手動で場合 どうすればいいでしょうか?
自分ももうちょっとggって来ます、、、
ANDROID_PRODUCT_OUT に関しては環境パスとかそういう話ですかね?
ファクトリーイメージを焼けないことはないと思うので、どこかで手順が違っているか、あるいはPCにドライバが入っていないとか認識されていないとか、そういう基本的なところの可能性もあります。
Chromeなどのブラウザでファクトリーイメージを焼き直すこともできるので、それも試してみるといいかもしれませんね。
ご丁寧にありがとうございます!
今回は諦めようと思います、、
Androidについてもうちょっと勉強して出直します、
ご報告、
Chrome上からファクトリーイメージ焼き付けでうまくいきました!!
ほんと今日はありがとうございました!
懲りずにroot化しようと思います笑
それはよかったです!
ブラウザでファクトリーイメージ焼けるなんて良い時代…!!
ぜひ快適なAndroidライフをお送りください、またなにかありましたらお気軽にどうぞ!
初めてのコメントで質問失礼します。pixcel 7 pro android13 (TQ2A.230505.002 現時点で最新)のものをroot化したいのですが、正しいfactory image の init_boot.img をパッチして焼いても起動できず、fastboot画面から抜けれません。。platfarm toolsのバージョンも最新だと焼けない現象があるらしく、それも考慮して旧バージョンでflashしてもうまくいきませんでした。また、起動のたびにthe bootloader unlokedと出るのでbootloader unlockはできています。
そのままだと普段困るので一旦はboot.imgを焼いて元に戻しています。
お時間いただけると助かります!
Magiskでパッチしたinit_bootを、同じくinit_bootパーティションに焼いても起動ができないということですね。
私はPixel 7ですが5月イメージでRoot取れてるので、どこかで手順が違っているかもしれません。
まずはスロットの変更をして焼いてみること、あとはデータをワイプしてみてはいかがでしょうか?
スロットを変更して別スロットにもFactory Imageを焼く手順はコメントの少し上のほうに、データのワイプはリカバリか fastboot -w でもできますのでお試しください。
回答ありがとうございます!
すごいしょうもないミスでした。。ずっとfastboot flash bootでやってましたね。。
init_boot.ingをパッチ当てるってだけだと思っていました。
無事root化できたので助かりました!ありがとうございます!
そういうミスありますあります!笑
コマンド補完してたらずっと間違えたやつ叩いてたりとか…
ともあれ無事にRoot取れたみたいでよかったです!
お疲れさまでした!