Android 5.1がリリースされたが、Nexus 7(2012 Wi-Fi)にOTAが降ってくるのを待たずにadb sideloadでアップデートしてみた。Android 5.0.2(端末暗号化済の環境)でホーム画面に戻る時などに数秒かかっていたのが5.1にするとホームボタン押してすぐにホーム画面が表示されるなど快適になっていてヤバイ。ちなみにEqualizerというアプリがAndroid 5.1に対応していないのか音が極端に小さくなる不具合が発生し焦ったがEqualizerを切ったら直ったのは秘密。アップデート手順は続きを読むから。
sideloadやってみた
0.Android SDKやUSBドライバのインストール or 更新を済ませておく。USBデバッグを有効化*1した端末とPCをUSBケーブルで接続しておく。
1.Nexus 7(2012 Wi-Fi)のAndroid 5.0.2→5.1へのOTAファイルをダウンロードする。→OTAファイル
2.端末をブートローダーモードで起動する。電源を切ってからボリュームダウン+電源で入れなおすか、以下のコマンドで起動させる。
$ adb reboot bootloader
3.ブートローダーが起動したらボリュームダウンを何回か押してRecovery modeを選択し電源ボタンを押す。
4.リカバリーモードになったら(三角の中に!があるアイコンが表示される)電源+ボリュームアップを押す。
5.ボリュームダウンでapply update from ADBを選択、電源ボタンを押す。
6.待機状態になるので、PC側で以下のコマンドを打って端末側にデータを流し込む。
$ adb sideload /path/to/9f163586073265c54d86679efd63513a4477cfd8.signed-nakasi-LMY47D-from-LRX22G.9f163586.zip
7.しばし待つ。進行具合(今何%)はPC側に表示される。
8.Install from ADB completeと表示されたらreboot system nowで再起動。
Linuxでの注意
Linuxでは、6のsideloadの段階でパーミッションが足りないというエラーメッセージが出ることがある。
$ adb sideload /path/to/9f163586073265c54d86679efd63513a4477cfd8.signed-nakasi-LMY47D-from-LRX22G.9f163586.zip loading: '9f163586073265c54d86679efd63513a4477cfd8.signed-nakasi-LMY47D-from-LRX22G.9f163586.zip' error: insufficient permissions for device $
この場合はadbのデーモンをroot権限で起動しなおす。
$ adb kill-server $ sudo adb start-server
以下の内容で/etc/udev/rules.d/51-android.rulesを作成(要root権限)しておくと今後Nexusデバイス(GoogleのUSBベンダーID 18d1を指定している)に限りroot権限でadbデーモンを動かす必要はなくなる。
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"