Linux で Nexus のファクトリーイメージを焼く

Linux
この記事は約5分で読めます。

Linux 環境での Android カスタム情報とかあんまりないから自分用のメモとしても載せておく。ROM焼き失敗した時に非常に便利。まあ Linux 使ってる人は英語を読解できる人は多いだろうしやり方自体簡単だから需要ないと思う。

工場出荷時のイメージを焼くと端末内のすべてをデータが削除されるのでバックアップしよう。データを保持したまま焼くことも可能だが、念の為にコピーをとっておこう。

尤も、連絡先やアプリのデータをGoogleサーバに保存する設定にしている場合がほとんど。一部の引き継ぎコードが必要なゲーム、写真やダウンロードしたファイルも一緒に削除される点だけ注意。

メモリ容量の確保

準備として作業用のPCに十分な物理メモリを確保すること。イメージファイルが非常に大きいため、この書き込み作業にはDRAMを大量に専有してしまう。4GBしか積んでないPCで焼いたところメモリ不足で失敗した。今回は16GMのメモリを搭載したPCで実行。

ADB と fastboot 実行環境

あと ADB と fastboot 実行環境を整えておく必要がある。予め Android Studio などを導入しておこう。当方の環境(ArchLinux)では android-udev と android-tools パッケージだけインストールした状態だったが fastboot を実行できた。また、Gnome 使ってる人は gvfs-mtp を入れてると Nautilus が自動認識する。

Ubuntu の場合は下記のコマンドでインストールできる。

$ sudo apt-get install android-tools-adb
$ sudo apt-get install android-tools-fastboot

ファクトリーイメージを焼く

まず、Google デベロッパーサイトからファクトリイメージを入手する。

Factory images for Nexus and Pixil https://developers.google.com/android/images

ダウンロードを終えたら、TGZ圧縮ファイルを解凍する。

Nautilus

次に端末をブートローダを起動。音量キーと電源ボタンの同時押しか、PCと接続した状態で $ adb reboot bootloader をタイプする。

イメージを焼くためにブートローダをアンロックする必要がある。

$ fastboot oem unlock

上記のコマンドを実行すると下の画像のような警告文が表示され、データの削除が行われる。

ブートローダアンロック警告文

個人情報保護の観点からデータを削除しますよというもの。

アンロックが完了したら LOCK STATE – Unlocked に変わる

最後に先程解凍したフォルダ内の flash-all スクリプトを実行する。

$ flash-all.sh

これで正常に公式ROMを焼けるはずだが、サードパーティのリカバリーツールなどを焼いている場合はもう少し面倒くさい手順を踏む必要がある。

非公式リカバリーを導入している場合

私の環境では以下のようなエラーメッセージが表示されて正常に焼けなかった。

おそらく非公式ROMやリカバリを導入したりせいだろう。

error: cannot load 'bootloader-hammerhead-hhz12k.img'
rebooting into bootloader...
OKAY [ 0.093s]
finished. total time: 0.143s
error: cannot load 'radio-hammerhead-m8974a-2.0.50.2.27.img'
rebooting into bootloader...
OKAY [ 0.093s]
finished. total time: 0.143s
error: failed to load 'image-hammerhead-mra58n.zip': No such file or directory

この場合、スクリプトを介さず一つ一つシステムイメージを焼いてあげれば通る。

$ fastboot flash bootloader ~/image-hammerhead-m4b30z/bootloader.img
$ fastboot reboot-bootloader

$ fastboot flash radio ~/image-hammerhead-m4b30z/radio.img
$ fastboot reboot-bootloader

$ fastboot flash system ~/image-hammerhead-m4b30z/system.img
$ fastboot flash userdata ~/image-hammerhead-m4b30z/userdata.img 
$ fastboot flash boot ~/image-hammerhead-m4b30z/boot.img
$ fastboot flash recovery ~/image-hammerhead-m4b30z/recovery.img
$ fastboot erase cache

番外編:過去にアンロックされたデバイスか確認する

Nexus にはタンパーフラグ(改竄フラグ)という機能が組み込まれている。これはブートローダが過去にアンロックされたかどうが記録する機能だ。

中古で Nexus を購入する際の参考になるだろう。

$ fastboot oem device-info
(bootloader) 	Device tampered: true
(bootloader) 	Device unlocked: true
(bootloader) 	off-mode-charge: true
OKAY [  0.003s]
Finished. Total time: 0.003s

このデバイスはアンロックされたことがあることを示している。一度もアンロックされたことがなかったら、Device tampered : false となっている。

コメント

タイトルとURLをコピーしました