Pixel 4a : フル OTA イメージによるアップグレード
概要
Android 用のアプリを作る際に API バージョン (≒ Android のバージョン) によって、プログラム内で利用できる機能や制限が変わります。
そのため、実機を用いてのテストを行う際に、特定のバージョンの Android を用意したい といったことがあります。
Google から発売されているスマートフォンである Pixel は、Android のアップグレードやダウングレードが比較的行いやすい端末です。
Pixel 4a は、Android 10 ~ 13 までサポートされているので、幅広いバージョンの確認ができ、
かつ 最近は 中古で比較的手に入れやすい価格になってきているので、テストに使うにはちょうど良いかもしれません。
実際に試してみたので情報残しておきます。
注意: 特にダウングレードを行うとメーカーやキャリアの保証を受けられなくなる可能性がありますので、リスクなども確認の上、ご自身の判断・責任の下で実施をご検討いただく形となります。
標準的なアップグレード方法
通常のアップグレードは、[設定] – [システム] – [詳細設定] – [システムアップデート] から行う形です。
これは OTA (Over The Air) による方法と呼ばれています。
無線 (Air) 経由でアップグレード用のデータを受信してインストールする形です。
この方法だと、アップグレード後のバージョンやビルドは選べず、ダウングレードも行われません。
Pixel および Nexus 用の Android イメージ
Pixel や Nexus のアップグレードやダウングレードに利用する Android イメージは、Google 社のサイトから入手可能です。
2つのイメージがあります。
- ファクトリーイメージ
- フル OTA イメージ
ファクトリーイメージ
出荷時のファームウェアを復元できるイメージファイルです。
ファクトリーイメージをインストールするとデバイス上のすべてのデータが消去されますが、ダウングレードも可能です。
Nexus デバイスと Pixel デバイスのファクトリー イメージ
このページには、Nexus デバイスまたは Google Pixel デバイスの出荷時のファームウェアを復元できるバイナリ イメージ ファイルが含まれています。これらのファイルは、カスタムビルドをデバイス上にフラッシュして、デバイスを出荷時の状態に戻したい場合に役立ちます。
通常は、フル OTA イメージをサイドローディングする方が簡単で安全です。
ファクトリー イメージを使用する場合は、プロセスが完了したときにブートローダーを再ロックしてください。
これらのファイルは、個人の Nexus または Pixel デバイスでのみ使用でき、分解、逆コンパイル、リバース エンジニアリング、変更、再配布を行うことはできません。また、デバイスに付属のライセンス規約に明記されている以外の方法で使用することもできません。
Nexus デバイスと Pixel デバイスのファクトリー イメージ
フル OTA イメージ
工場出荷時の状態に戻すためのフル OTA アップデートパッケージも配布されています。
フル OTA イメージによるサイドローディングの場合は、データは削除されずに OTA でアップグレードされた時と同様な形で情報は残せます。
Nexus デバイスと Pixel デバイスのフル OTA イメージ
“アップグレード" パッケージと記載されているように、このフル OTA イメージを使ってダウングレードに相当する操作を行おうとしても エラーとなり進めません。
ちなみに、"サイドロード" とは 通常とは異なる方法でデータを端末に導入することを指すので、一般的な OTA アップグレードとは異なる方法で、OTA イメージでアップグレードする という意味合いになるかと思います。
このページには、Nexus デバイスまたは Google Pixel デバイスを工場出荷時の状態に戻すためのフル OTA アップデート パッケージを掲載しています。これらのファイルは、OTA の取得に失敗した場合に役立ちます。これは対応するファクトリー イメージを書き込むのと同じ効果がありますが、デバイスのワイプやブートローダーのロック解除は必要ありません。
これらのファイルは、個人の Nexus または Pixel デバイスでのみ使用でき、分解、逆コンパイル、リバース エンジニアリング、変更、再配布を行うことはできません。また、デバイスに付属のライセンス規約に明記されている以外の方法で使用することもできません。
Nexus デバイスと Pixel デバイスのフル OTA イメージ
フル OTA イメージを使ったサイドローディングによるアップグレード方法
ここでは、フル OTA イメージを使ったサイドローディングによるアップグレード方法について記載します。
ここまでに記載した通り、これは一般的な OTA アップグレードと似たような処理が行われる形となり、より簡単で安全となっています。
単に 特定のバージョン・ビルドにアップグレードしたいということであれば、この方法がとれます。
詳細手順やフル OTA イメージの利用規約などは、Google のページも確認してください。
Nexus デバイスと Pixel デバイスのフル OTA イメージ
以下、実際に Pixel 4a で試した結果です。
(1) adb ツールの用意
adb ツールは、Android Studio をインストールしている環境であれば、SDK Manager からインストール可能です。
(Android Studio インストール済みであれば、一緒にインストール済みの環境が多いと思います。)
この場合、デフォルトでは、以下のフォルダ配下にあります。
%USERPROFILE%\APPDATA\Local\Android\Sdk\platform-tools
例) C:\Users\ユーザ名\\APPDATA\Local\Android\Sdk\platform-tools
個別で用意したい場合は、Android SDK Platform-Tools パッケージをダウンロードして、適当なフォルダに解凍して配置する形です。
Android SDK Platform-Tools パッケージは以下からダウンロード可能です。
SDK Platform-Tools リリースノート
adb ツールがインストールされているフォルダを PATH 環境変数に追加するか、実行可能ファイルを含むディレクトリに移動してから実行する必要があります。
以下の実行例では、adb.exe の実行可能ファイルを含むディレクトリに移動してから実行しています。
(2) アップグレード用の フル OTA イメージをダウンロードします。
利用する端末は Pixel 4a ( Pixel 4a (5G) ではない) なので、“sunfish" for Pixel 4a のところから、アップグレード用のイメージをダウンロードします。
今回は、アップグレード前は 10.0.0 (QD4A.200317.024.A1) なので、いずれのイメージも利用可能ですが、
ここでは
13.0.0 (TP1A.220624.014, Aug 2022)
にアップグレードしてみることにします。
13.0.0 (TP1A.220624.014, Aug 2022) の右の Link をクリックします。
sunfish-ota-tp1a.220624.014-296281b7.zip がダウンロードできます。
ダウンロードした sunfish-ota-tp1a.220624.014-296281b7.zip は、adb と同じフォルダに配置しておきます。
(3) ダウンロードしたファイルの確認
念のため、ファイルの破損がないか確認します。
ここでは、PowerShell の Get-FileHash コマンドレット でハッシュ値を計算します。
PS C:\Users\ユーザ名> cd C:\Users\ユーザ名\AppData\Local\Android\Sdk\platform-tools
PS C:\Users\ユーザ名\AppData\Local\Android\Sdk\platform-tools> Get-FileHash -Algorithm SHA256 .\sunfish-ota-tp1a.220624.014-296281b7.zip
Algorithm Hash Path
--------- ---- ----
SHA256 296281B7F7D9BBCDD4C77C290FC1E1EB34A1B70480250A082CB83B0E95D2FA27 C:\Users\ユーザ名\AppData\Local\A...
計算された Hash 値と、ダウンロードページの値を比較します。
(4) Pixel 4a の電源を入れて、USB デバッグを有効にします。
USB デバッグを有効にするには、まず開発者向けオプションを有効にする必要があります。
ビルド番号のところを 7回連続でタップすると、開発者向けオプションが有効になります。
USB ケーブルで Pixel 4a と PC を接続します。
開発者向けオプションを有効にした後、設定 – システム – 開発者向けオプション – USB デバッグ を有効にします。
USB デバッグに関する表示が出たら許可します。(5) の実行時に表示される場合もあります。
(5) コマンドプロンプトを起動して、次のコマンドを実行し、リカバリモードにします。
cd C:\Users\ユーザ名\AppData\Local\Android\Sdk\platform-tools
adb reboot recovery
adb を使用して再起動してリカバリモードに移行できない場合は、代わりにデバイスのキーの組み合わせを使用してリカバリモードに移行します。
(6) Pixel 4a が再起動して、リカバリモードになります。
メニューを表示させるために、電源キーを押しながら、音量大ボタンを1回押します。
メニューが表示された後 [Apply update from ADB] を選びます。(音量大小ボダンで上下にカーソル移動、電源ボタンで決定)
(7) 作業用の PC のコマンドプロンプトに戻ります。((5) で起動していたもの。)
次のコマンドを実行して デバイス名の欄に sideload となっていることを確認します。
adb devices
(8) 次のコマンドを実行して、フル OTA イメージのサイドロードを開始します。
adb sideload ota_file.zip
ota_file.zip の部分は、(2) で用意したダウンロードファイルを指定します。
例) adb sideload sunfish-ota-tp1a.220624.014-296281b7.zip
(9) 処理が完了するまで待ちます。
コマンドプロンプト上では、進捗のパーセントが進むくらいですが、Pixel 4a の画面は、進捗状況によって若干表示が変わります。
(10) adb sideload 完了後、コマンドプロンプトの表示は、以下となります。
Pixel 4a の表示は以下となります。完了すると画面上部にメニューが再度表示されます。
(11) [Reboot system now](システムを今すぐ再起動)を選択して Pixel 4a を再起動します。
初回の再起動は少し時間がかかります。
起動が完了した後、UI からもわかるかもしれませんが、フル OTA の zip のビルドの Android 13 にアップグレードされていることが確認できます。
長くなったので、ファクトリイメージを使ったダウングレード(アップグレード) については別ページに記載します。
参考となれば幸いです。