Old Sunset Days

PixelのOSバージョンを巻き戻したりアップデートする

日付 タグ mac カテゴリ others

目次

Android Flash ToolでPixelへのファクトリーイメージ書き込み

Google Pixelといえば、OSアップデートやセキュリティアップデートの提供が早く、かつ余計なアプリが入っていないということで使っている人も多いと思うが、開発や検証で使っている人にとってはそれ以外にも公式のFactory Imageが公開されているので、OSバージョンの焼き直しがしやすいという利点もある。

https://developers.google.com/android/images - Factory Images for Nexus and Pixel Devices

自分が持っているPixel2はAndroid 8, 9, 10, 11に対応しているとあって、これらのバージョンをいつでもFactory Imageの焼き直しをすれば変更できるとあって、非常に便利だが、以前はバッチを叩いてイメージ焼きをしていたのが、最近ではAndroid Flash ToolというWEBブラウザベースでイメージ焼きができるようになっていた。

先日、Android 11に更新した状態であったのをAndroid 8に戻す時に実際に使って無事Android 8に焼きなおすことができたので、その手順を振り返って確認していきたい。

https://source.android.com/setup/contribute/flash - Android Flash Tool

なお、Imageの焼き直しはデータが消えるものと思ってやった方が良いので、大事なデータはSDカードなり、クラウドにバックアップを取っておくこと。

Android Flash Toolが使える前提条件

公式ページにあるように、今回はMacとChromeブラウザを使うので要件を満たしているが、Google公式の案内によると、以下の環境が必要となる。GoogleなのでChromeを使うのが無難であろう。
(2020/11/27現在)

  • ブラウザ
    • WebUSB をサポートする任意のブラウザ(例: Chrome、Edge 79 以降)
  • プラットフォーム:
    • Linux
    • macOS
    • Chrome OS
    • Windows(USB ドライバの追加が必要)

また対応している端末だが、最近のPixelシリーズであれば対応している。
(2020/11/27現在)

  • DragonBoard 845c (db845c)
  • HiKey 960
  • HiKey
  • Glass Enterprise Edition 2 ビルド
  • Pixel 4 XL
  • Pixel 4
  • Pixel 3a XL
  • Pixel 3a
  • Pixel 3 XL
  • Pixel 3
  • Pixel 2 XL
  • Pixel 2

開発者オプションをオンにしてUSBデバッグできる状態に

Factory Imageの焼き直しには、開発者オプションがオンになっており、かつブートローダーがアンロック状態である必要がある。

いずれにしてもadbコマンドツールは利用するので、Android Studio等をインストールしておらず、adbコマンドツール等だけ使いたい場合は、 adbコマンドを含むplatformツールをダウンロード、解凍してディレクトリ中にadbコマンドツールがあることを確認しておく。

https://developer.android.com/studio/releases/platform-tools?hl=ja

今回はMacを利用しているので、「Platform-Tools for Mac をダウンロード」からダウンロードして解凍をしておく。 ブートローダー解除に利用するのはadbコマンドとfastbootコマンド。

ここで開発者オプションを以下を参考にしてオンにしておく。

https://developer.android.com/studio/debug/dev-options#enable - デバイスの開発者向けオプションを設定する

開発者向けオプションがオンになったら、USBデバッグ項目をオン。

USBケーブルでPixel端末をMacに接続した状態でUSBデバッグができることを確認する。

$ adb devices

デバイスが認識されてリストに表示されるかどうか確認。

ブートローダーをアンロックする

なお、ブートローダーをアンロックすると端末リセットがかかるので、端末にある大事なデータ等はくれぐれも事前にバックアップ。

[開発者向けオプション] メニューで、[OEM ロック解除] を有効にしたのち、Fastbootモードで端末を再起動させる。 (キャリアのSIMロックがかかっている状態だと、OEMロック解除ができない場合があるので注意。 また北米Verizon版の端末は経験的にSIMロック解除でもOEMロック解除ができないことがあるようだ)

一旦電源を落としてボタン操作でもいいのだが、adb接続している状態からなら、以下のコマンドを打てばFastbootモードで端末が再起動する。

$ adb reboot bootloader

こんな感じになっていれば、Fastbootモードで起動している。

$ fastboot devices

ここでリスト表示で端末が出てくるか確認。

問題なくfastbootコマンドが端末を認識できていれば、ブートロック解除コマンドを実行。

$ fastboot flashing unlock

(なお、Pixel2 XLの場合は、fastboot flashing unlock_critical)

ブートロックが解除された後、通常モードで再起動したら、開発者オプションをオンにしてUSBデバッグできる状態にしておく。

開発者オプションメニューで、OEMロック解除になっていることを確認しておく。

Android Flash ToolでFactory Imageを焼く

adbサーバーが動いているとコンフリクトが発生する可能性があるので、すでに動いているadbサーバーは止めておく。

$ adb kill-server

Chromeブラウザで以下URLを開く。

https://developers.google.com/android/images

から対象端末の焼きたいImageを選択する。

今回の対象はPixel2なので、一番古い8.0.0 (OPD1.170816.010, Sep 2017)を選択してみる。

ページから「Flash」のリンクを踏むと、

Allow site access to your ADB keys in order to communicate with devices ?

という許可ダイアログが出るので、OKを選択。

「Add new device」を選択して、接続したいデバイスを選択して「接続」

端末側でデバッグ接続許可ダイアログが出ている場合は、許可を与える。

対象端末を「select」して

「Selected build:」にインストールしたいイメージになっているか確認して「インストール」
(ここではすでに焼きたいバージョンに一度焼いてしまっているので、たまたま現在と焼く対象のバージョンが同じになっている)

作業が終わるまでケーブルを抜いたり、操作しないように注意が出るので、

Do not interact with the device unless instructed to do so Do not unplug your device

問題なければ、「Confirm」を選ぶ。

ソフトウェアライセンスに同意するかどうかで「I Accept」

ステータスがPreparing your deviceになる。

この間にUSBケーブルで接続された端末はFastbootモードで再起動している。

そのまま待つと、なぜかデバイス認識できないのでデバイス再選択するように促された。

どうもFastbootモードで起動した時に接続デバイス名が変わったからのようで、
「Reselect device」から接続デバイスをチェック。

どうやら先ほどのPixel2接続デバイス名がAndroidという名前になったようだ。これはFastbootモードのせい?

接続デバイス名Androidを選択して「接続」

するとFactory Imageのダウンロードが始まり、

ダウンロードが終わると、自動的にインストールに進む。

しばらく待つと、インストールが完了してChromeブラウザに以下の表示が出たら完了。

ここまで来て完了したら端末をUSB接続から外してもOKだ。あとは初期状態から端末の設定をすれば良い。

以上でFactory Imageを焼きなおすことができた。 自分が試した限り、Android 11 => Android 8のようなダウングレードでも特に問題がなかった。

任意のバージョン(といっても端末が対応しているバージョン)にOSを焼き直せるPixel端末はやはり重宝する。