rooted+MagiskなAndroidのアップデート

rooted＋MagiskなAndroid端末にアップデートをあてるには、いくつか作業があります。
今回は下記前提条件のもとでAndroid端末にアプデをあてたいと思います。

# ■前提条件
* bootloader unlock済かつmagiskを導入済
* Clockworkmod recovery等のカスタムRecoveryは**導入していない**
* Androidセキュリティアップデートを2020年12月5日から2021年1月5日へアップデート
* 端末はPixel 3 XL
* Androidは11(APIは30)
* Magiskは21.2

# ■作業
## １　必要なファイルの用意
すべて[Factory Images for Nexus and Pixel Devices](https://developers.google.com/android/images)で揃います。

### (1)Full OTA Image（zip）
[Factory Images for Nexus and Pixel Devices](https://developers.google.com/android/images)の左ペインから[「Full OTA Images」](https://developers.google.com/android/ota)へアクセスし、必要なOTAファイルをダウンロードします。
今回はPixel 3 XLに2021年1月15日のアップデートをあてるので、「"crosshatch" for Pixel 3 XL」の11.0.0 (RQ1A.210105.003, Jan 2021)をダウンロードします。
![スクリーンショット 2021-01-10 16.31.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505452/b7ed07fc-d811-5481-0e83-0f475d42154b.png)

ダウンロードしたzipファイルはadbのパスが通っているところに置いておきます。

### (2)(アップデート前のバージョンの)boot.img
アプデをあてる前に、弄っていないboot.imgを先に当てておく必要があります。
（Magiskを適用する際に、 patchedなboot.imgをあてた状態になっているため）
後述しますが、前回アップデート適用時に保存しておいたものを使ってください。
「保存し忘れた！」という人は下（３）を参考に、現在バージョンのboot.imgを用意してください。
（今回の例ならば、Factory Imageの11.0.0 (RQ1A.201205.003, Dec 2020, All carriers except Verizon)を使用します。）


### (3)(アップデート後の)boot.img
[Factory Images for Nexus and Pixel Devices](https://developers.google.com/android/images)の左ペインから[「Factory Images」](https://developers.google.com/android/images)へアクセスし、OTAと同じバージョンのFactory Image（今回は11.0.0 (RQ1A.210105.003, Jan 2021)）をダウンロードします。（今回は2021年1月15日版）
![スクリーンショット 2021-01-10 13.50.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505452/2423181e-d8c6-afbe-9afc-1b981902099a.png)

zipファイルをダウンロートしたら、任意の場所に解凍します。
解凍したファイルの中にあるimage-crosshatch-rq1a.210105.003.zipを更に解凍します。
（下のスクショだとimage-crossha....003.zipとなっているzip）
![スクリーンショット 2021-01-10 16.41.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505452/ec0ebf30-cd62-be26-0dae-20c29173c60d.png)


更に解凍したファイルの中にあるboot.imgが、今回必要な現在バージョンのboot.imgになります。![スクリーンショット 2021-01-10 16.36.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505452/55ae2d54-0238-e2e5-41a6-4ee7892d30e2.png)
このboot.imgは、次回アップデート時（今回の例では2021年2月5日前後のアップデート）に必要になるので、どこかに保存しておくと良いでしょう。（保存し忘れてもダウンロードできます。）

## ２　（現在バージョンの）boot.imgをあてる
ターミナル（コマンドプロンプト）から、現在バージョンのboot.imgをあてます。（便宜上、1205boot.imgというファイル名にしています。）

```cmd
adb reboot bootloader
fastboot flash boot 1205boot.img
fastboot reboot
```
![cmd1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505452/b0618fa8-e424-3fd2-4039-4bfb9f0438e7.png)

## ３　OTAをあてる
ターミナル（コマンドプロンプト）から、recoveryに入ります。

```cmd
adb reboot recovery
```

画面中央に腹が開いたドロイド君と「No command」と表示が出たら、電源ボタンを押しながら音量上ボタン（Volume+）を一度押すと、Android Recoveryに入ることができます。
「Apply update from ADB」を選択（音量ボタンで上下・電源ボタンで決定）すると、adbからの入力を受け付けるようになるので、ターミナル（コマンドプロンプト）からOTAをあてます。（便宜上、0105ota.zipというファイル名にしています。）

あてた後、Recoveryの「Reboot system now」を選択して再起動します。

```cmd
adb sideload 0105ota.zip
```

![cmd2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505452/631e5258-ddad-475e-342e-bd24e673ff47.png)

## ４　Magiskでpatchedなboot.imgを作成する。
ここまででOTAはあてられましたが、root権限が消失しているので、復活させます。
![Screenshot_20210110-172814.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505452/5da2a57b-8efc-96dc-48b2-5790f29e3dc2.png)

アップデート後のboot.imgを、端末内に配置します。（ファイル名は0105boot.imgとしています。）
Download内に置くと便利です。

Magiskからインストール→パッチするファイルの選択→Let's Goでpatchedなboot.imgがDownloadフォルダ内に生成されます。(magisk_patched_A4gr0.img)

![mgsk1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505452/eb7d81a3-60a3-931a-6538-28556bedffb1.png)
![mgsk2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505452/3b50ea00-ec0f-0edd-3d28-8a142c55e7e9.png)
![mgsk3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505452/3c81cfee-9478-7c77-6495-27e300fcc89b.png)
![Screenshot_20210110-193052.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505452/c661d760-71e1-07c8-5368-b287e0b82199.png)

このmagisk_patched_A4gr0.imgをAndroid端末からPCのadbパスが通っているフォルダに置いておきます。

## ５　patchedなboot.imgをあてる
magisk_patched_A4gr0.imgを、ターミナル（コマンドプロンプト）からあてます。
（ファイル名を便宜上0105boot_patched.imgとしています）

```cmd
adb reboot bootloader
fastboot flash boot 0105boot_patched.img
fastboot reboot
```
![cmd3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/505452/06618618-1d0e-3637-427a-1434d4c43ee8.png)

これで終了です。

参考：[How to sideload the Android 9 Pie OTA on Pixel, Pixel XL, Pixel 2, Pixel 2 XL - 9To5 Google](https://9to5google.com/2018/08/06/how-to-sideload-android-9-pie-ota-google-pixel/)