デバイスのフラッシュ

このページでは、特定のデバイスでビルドを実行する方法を詳しく説明します。これは Android のビルドの情報を補足するものです。

fastboot と adb をビルドする

fastbootadb をまだ所持していない場合は、通常のビルドシステムを使用してビルドできます。Android のビルドの手順に沿って、メインの make コマンドを次のように置き換えます。

make fastboot adb

Android Debug Bridge(ADB)について詳しくは、Android Debug Bridge(ADB)をご覧ください。

Fastboot モードでブートする

デバイスは、fastboot ブートローダー モードの場合にフラッシュできます。コールドブート中のデバイスを fastboot モードにするには、下の表に示すキーの組み合わせを使用します。

adb reboot bootloader コマンドを使用して、直接ブートローダーを再起動することもできます。詳しくは、フラッシュの手順をご覧ください。

デバイス コードネーム キーの組み合わせ
Google Pixel 6 Pro raven 音量小を押したまま、電源を長押しします。
Google Pixel 6 oriole 音量小を押したまま、電源を長押しします。
Google Pixel 5a (5G) barbet 音量小を押したまま、電源を長押しします。
Google Pixel 5 Redfin 音量小を押したまま、電源を長押しします。
Google Pixel 4a (5G) Bramble 音量小を押したまま、電源を長押しします。
Google Pixel 4a Sunfish 音量小を押したまま、電源を長押しします。
Google Pixel 4 XL Coral 音量小を押したまま、電源を長押しします。
Google Pixel 4 Flame 音量小を押したまま、電源を長押しします。
Google Pixel 3a XL Bonito 音量小を押したまま、電源を長押しします。
Pixel 3a Sargo 音量小を押したまま、電源を長押しします。
Pixel 3 XL Crosshatch 音量小を押したまま、電源を長押しします。
Pixel 3 Blueline 音量小を押したまま、電源を長押しします。
Pixel 2 XL Taimen 音量小を押したまま、電源を長押しします。
Pixel 2 Walleye 音量小を押したまま、電源を長押しします。
Pixel XL Marlin 音量小を押したまま、電源を長押しします。
Pixel Sailfish 音量小を押したまま、電源を長押しします。
HiKey HiKey J15 のピン 1~2 とピン 5~6 を接続します。
Nexus 6P Angler 音量小を押したまま、電源を長押しします。
Nexus 5X Bullhead 音量小を押したまま、電源を長押しします。
Nexus 6 Shamu 音量小を押したまま、電源を長押しします。
Nexus Player Fugu 電源を長押しします。
Nexus 9 Volantis 音量小を押したまま、電源を長押しします。
Nexus 5 Hammerhead 音量大音量小を両方押したまま、電源を長押しします。
Nexus 7 Flo 音量小を押したまま、電源を長押しします。
Nexus 7 3G deb 音量小を押したまま、電源を長押しします。
Nexus 10 Manta 音量大音量小を両方押したまま、電源を長押しします。
Nexus 4 Mako 音量小を押したまま、電源を長押しします。
Nexus 7(2012) Ggrouper 音量小を押したまま、電源を長押しします。
Nexus 7 3G(2012) Tilapia 音量小を押したまま、電源を長押しします。
Nexus Q Phantasm デバイスの電源を入れたら、LED が点灯してから赤色に変わるまで片手でカバーします。
Galaxy Nexus GSM Maguro 音量大音量小を両方押したまま、電源を長押しします。
Galaxy Nexus(Verizon) Toro 音量大音量小を両方押したまま、電源を長押しします。
Galaxy Nexus(Sprint) Toroplus 音量大音量小を両方押したまま、電源を長押しします。
Motorola Xoom Wingray 音量小を押したまま、電源を長押しします。
Nexus S Crespo 音量大を押したまま、電源を長押しします。
Nexus SG Crespo4g 音量大を押したまま、電源を長押しします。

ブートローダーのロックを解除する

カスタム システムをフラッシュできるのは、ブートローダーがそれを許可している場合に限られます。ただし、デフォルトではブートローダーはロックされています。ブートローダーのロックは解除できますが、その場合、プライバシー上の理由でユーザーデータが削除されます。ロックを解除すると、デバイス上のすべてのデータが消去されます。消去対象には、個人のアプリデータと、USB 経由でアクセスできる共有データ(写真や動画など)が含まれます。ブートローダーのロックを解除する前に、デバイス上にある重要なファイルをすべてバックアップしてください。

ブートローダーのロックを解除する必要があるのは 1 回だけです。必要に応じて再ロックすることもできます。

最近のデバイスのロックを解除する

2014 年以降にリリースされたすべての Nexus デバイスと Pixel デバイス(Nexus 6 および Nexus 9 以降)は、出荷時設定へのリセットに対する保護機能を備えています。そのため、ブートローダーのロックを解除するには、複数の手順を踏む必要があります。

  1. デバイスに対して OEM ロック解除を有効にする手順は以下のとおりです。
    1. [設定] で、[デバイス情報] をタップして、[ビルド番号] を 7 回タップします。
    2. 「デベロッパー設定が有効になりました」というメッセージが表示されたら、[戻る] ボタンをタップします。
    3. [設定] で、[システム]、[開発者向けオプション] の順にタップして、[OEM ロック解除] と [USB デバッグ] を有効にします([OEM ロック解除] が無効になっている場合は、インターネットに接続して、少なくとも 1 回デバイスをチェックインします。無効のままだと、デバイスは携帯通信会社によって SIM ロックされ、ブートローダーのロックを解除できなくなります)。
  2. ブートローダーを再起動し、fastboot を使用してブートローダーのロックを解除します。
    • 比較的新しいデバイスの場合(2015 年以降):
      fastboot flashing unlock
    • 古いデバイスの場合(2014 年以前):
      fastboot oem unlock
    ヒント: 再起動前に「adb devices」という出力が表示されるにもかかわらず、fastboot やフラッシュ スクリプトが誤動作している場合は、USB ケーブルに問題がある可能性があります。ポートを変えてみたり、コネクタを切り替えてみたりしてください。パソコンの USB C ポートを使用している場合は、USB A ポートをお試しください。
  3. 画面でロックが解除されたことを確認します。

ブートローダーを再ロックする

以下のコマンドを使用して、ブートローダーを再ロックできます。

  • 比較的新しいデバイスの場合(2015 年以降):
    fastboot flashing lock
  • 古いデバイスの場合(2014 年以前):
    fastboot oem lock

フラッシュ ロック状態を使用する

getFlashLockState() システム API は、ブートローダーの状態を送信し、PersistentDataBlockManager.getFlashLockState() システム API は、対応デバイスのブートローダーのロック ステータスを返します。

戻り値 条件
FLASH_LOCK_UNKNOWN 以前はブートローダー変更機能をサポートしていなかったデバイスを Android 7.x 以降にアップグレードしたことで、フラッシュ ロック / ロック解除機能をサポートするようになった場合に限り返されます。ブートローダー変更機能は、フラッシュ ロック ステータスを取得するうえで必要になります。
  • 元々 Android 7.x 以降を搭載している新しいデバイスの場合、FLASH_LOCK_LOCKEDFLASH_LOCK_UNLOCKED の状態になっている必要があります。
  • Android 7.x 以降にアップグレードしたデバイスで、アップグレード後もフラッシュ ロック / ロック解除機能をサポートしていない場合は、FLASH_LOCK_LOCKED 状態が返されます。
FLASH_LOCK_LOCKED フラッシュ ロック / ロック解除機能をサポートしていないデバイス(つまり、常にロックされているデバイス)の場合や、フラッシュ ロック / ロック解除機能をサポートしていて、ロック状態にあるデバイスの場合に返されます。
FLASH_LOCK_UNLOCKED フラッシュ ロック / ロック解除機能をサポートしていて、ロック解除状態にあるデバイスの場合に返されます。

メーカーは、ブートローダーがロック状態の場合とロック解除状態の場合にそれぞれデバイスから返される値をテストする必要があります。たとえば、Android オープンソース プロジェクト(AOSP)には、ro.boot.flash.locked ブート プロパティに基づいて値を返すリファレンス実装が用意されています。サンプルコードは、以下のディレクトリにあります。

  • frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
  • frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java

デバイスビルドを選択する

lunch メニューから、おすすめのデバイスビルドが利用できます。このメニューには、引数なしで lunch コマンドを実行するとアクセスできます。利用可能なビルドタイプや lunch コマンドの詳細については、ターゲットを選択するをご覧ください。

Google Pixel デバイス用と Nexus デバイス用のファクトリー イメージとバイナリは、developers.google.com からダウンロードできます。ダウンロードに関しては、デバイス バイナリをご覧ください。詳細や追加リソースについては、プロプライエタリ バイナリを取得するをご覧ください。

デバイス コードネーム ビルド構成
Google Pixel 6 Pro raven aosp_raven-userdebug
Google Pixel 6 oriole aosp_oriole-userdebug
Google Pixel 5 Redfin aosp_redfin-userdebug
Google Pixel 4a (5G) Bramble aosp_bramble-userdebug
Google Pixel 4a Sunfish aosp_sunfish-userdebug
Google Pixel 4 XL Coral aosp_coral-userdebug
Google Pixel 4 Flame aosp_flame-userdebug
Google Pixel 3a XL Bonito aosp_bonito-userdebug
Pixel 3a Sargo aosp_sargo-userdebug
Pixel 3 XL Crosshatch aosp_crosshatch-userdebug
Pixel 3 Blueline aosp_blueline-userdebug
Pixel 2 XL Taimen aosp_taimen-userdebug
Pixel 2 Walleye aosp_walleye-userdebug
Pixel XL Marlin aosp_marlin-userdebug
Pixel Sailfish aosp_sailfish-userdebug
HiKey HiKey hikey-userdebug
Nexus 6P Angler aosp_angler-userdebug
Nexus 5X Bullhead aosp_bullhead-userdebug
Nexus 6 Shamu aosp_shamu-userdebug
Nexus Player Fugu aosp_fugu-userdebug
Nexus 9 Volantis(flounder) aosp_flounder-userdebug
Nexus 5(GSM / LTE) hammerhead aosp_hammerhead-userdebug
Nexus 7(Wi-Fi) razor(flo) aosp_flo-userdebug
Nexus 7(モバイル) Razorg(deb) aosp_deb-userdebug
Nexus 10 Mantaray(Manta) full_manta-userdebug
Nexus 4 Occam(Mako) full_mako-userdebug
Nexus 7(Wi-Fi) Nakasi(grouper) full_grouper-userdebug
Nexus 7(モバイル) Nakasig(tilapia) full_tilapia-userdebug
Galaxy Nexus(GSM / HSPA+) Yakju(maguro) full_maguro-userdebug
Galaxy Nexus(Verizon) Mysid(toro) √aosp_toro-userdebug
Galaxy Nexus(試験運用版) Mysidspr(toroplus) aosp_toroplus-userdebug
Motorola Xoom(米国、Wi-Fi) Wingray full_wingray-userdebug
Nexus S Soju(crespo) full_crespo-userdebug
Nexus S 4G Sojus(crespo4g) full_crespo4g-userdebug

デバイスをフラッシュする

1 つのコマンドで Android システム全体をフラッシュできます。このコマンドは、フラッシュ対象のシステムと、インストールされているブートローダーおよび無線通信との互換性を検証して、ブート用、リカバリ用、システム用のパーティションをすべて書き込み、システムをリブートします。フラッシュすると、fastboot oem unlock と同様、ユーザーデータはすべて消去されます。

デバイスをフラッシュする手順は次のとおりです。

  1. ブート時に適切なキーの組み合わせを長押しするか、以下のコマンドを使用して、デバイスを fastboot モードにします。
    adb reboot bootloader
  2. デバイスが Fastboot モードになったら、以下のコマンドを実行します。
    fastboot flashall -w
    -w オプションは、デバイス上にある /data パーティションをワイプします。これは、対象デバイスを初めてフラッシュする際に便利ですが、それ以外の場合は不要です。

デバイスを出荷時の状態に復元する

Google デバイスのファクトリー イメージは、Nexus デバイスおよび Pixel デバイスのファクトリー イメージから入手できます。Motorola Xoom のファクトリー イメージは、直接 Motorola から入手できます。