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

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

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

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

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

■ メモリ容量の確保

準備として、十分なメモリを確保すること。4GBしか積んでないPCで焼いたところメモリ不足で失敗した。今回は10GMのメモリを搭載した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

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

  1. 以下のリンクからファクトリイメージを入手。私の場合は Nexus 5。
    Nexus Files for Developer
  2. ダウンロードが終わったら、アーカイバなどを使って TGZ 圧縮ファイルを解凍。
  3. 端末とPCを接続する。
  4. ブートローダを立ち上げる。
    $ adb reboot bootloader をPCからタイプするか
    ボリュームキーと電源ボタン同時押下。
  5. ブートローダのアンロック
    $ fastboot oem unlock
  6. 解凍したフォルダ内でターミナルを起動、入っている flash-all スクリプトを実行する。
    このスクリプトはブートローダ、リカバリ、システムデータすべて一気に書き換えてくれる。
$ flash-all.sh

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

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 bootloader-hammerhead-hhz12k.img
 target reported max download size of 1073741824 bytes
 sending 'bootloader' (3120 KB)...
 OKAY [ 0.308s]
 writing 'bootloader'...
 OKAY [ 0.532s]
 finished. total time: 0.840s

一旦、ブートローダの再起動

$ fastboot reboot-bootloader
rebooting into bootloader...
 OKAY [ 0.000s]
 finished. total time: 0.100s

ファームウェアの書き換え、radio-ビルドナンバー.img を指定してフラッシュ。KDE や Gnome 環境では fastboot flash radio の後にイメージファイルをドラッグドロップ、タブキーを使うと簡単。

$ fastboot flash radio radio-hammerhead-m8974a-2.0.50.2.27.img
target reported max download size of 1073741824 bytes
 sending 'radio' (45425 KB)...
 OKAY [ 1.615s]
 writing 'radio'...
 OKAY [ 3.120s]
 finished. total time: 4.735s

ブートローダ再起動

$ fastboot reboot-bootloader
rebooting into bootloader...
 OKAY [ 0.000s]
 finished. total time: 0.100s

システムデータ書き換え、 -w オプションはワイプを意味する。データを保持したまま焼きたい場合は -w を削除して実行しよう。

$ fastboot -w update image-hammerhead-mra58n.zip
target reported max download size of 1073741824 bytes
 archive does not contain 'boot.sig'
 archive does not contain 'recovery.sig'
 archive does not contain 'system.sig'
 archive does not contain 'vendor.img'
 Creating filesystem with parameters:
 Size: 29236371456
 Block size: 4096
 Blocks per group: 32768
 Inodes per group: 8192
 Inode size: 256
 Journal blocks: 32768
 Label:
 Blocks: 7137786
 Block groups: 218
 Reserved block group size: 1024
 Created filesystem with 11/1785856 inodes and 156120/7137786 blocks
 Creating filesystem with parameters:
 Size: 734003200
 Block size: 4096
 Blocks per group: 32768
 Inodes per group: 7472
 Inode size: 256
 Journal blocks: 2800
 Label:
 Blocks: 179200
 Block groups: 6
 Reserved block group size: 47
 Created filesystem with 11/44832 inodes and 5813/179200 blocks
 --------------------------------------------
 Bootloader Version...: HHZ12k
 Baseband Version.....: M8974A-2.0.50.2.27
 Serial Number........: 014db40e259c941d
 --------------------------------------------
 checking product...
 OKAY [ 0.100s]
 checking version-bootloader...
 OKAY [ 0.100s]
 checking version-baseband...
 OKAY [ 0.100s]
 sending 'boot' (9156 KB)...
 OKAY [ 0.510s]
 writing 'boot'...
 OKAY [ 0.777s]
 sending 'recovery' (10016 KB)...
 OKAY [ 0.563s]
 writing 'recovery'...
 OKAY [ 0.830s]
 erasing 'system'...
 OKAY [ 0.930s]
 sending 'system' (1019257 KB)...
 OKAY [ 32.674s]
 writing 'system'...
 OKAY [ 68.935s]
 erasing 'userdata'...
 OKAY [ 22.392s]
 sending 'userdata' (139109 KB)...
 OKAY [ 4.641s]
 writing 'userdata'...
 OKAY [ 9.372s]
 erasing 'cache'...
 OKAY [ 0.651s]
 sending 'cache' (13348 KB)...
 OKAY [ 0.640s]
 writing 'cache'...
 OKAY [ 1.072s]
 rebooting...
finished. total time: 144.941s

以上

コメント

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