Nexus6PにAndroid Nを書き込んでみた
udev周りでちょっと手こずったけど、概ねうまくいった
動機とか
Androidの次期バージョン、Android Nのデベロッパープレビューが始まり、
対応デバイスであればfastbootで焼いてもいいよって状態になりました。
人柱精神旺盛なんで、試そうと思ったんだけど、
唯一持ってるNexus7(2013)がサポートデバイスから外されてました。。
でも試してみたかったんで、
Expansysで安くなってたNexus6Pを買って、Android Nを焼いてみることにしました。
Ubuntu14.04LTSとAndroid端末を接続する
Windowsのパーティションをふっ飛ばしたのも懐かしい話。。
やることとしては
・PCにAndroid SDK をインストールする
・udevのルールを作って、リロードしておく
・Android端末側で、USBデバッグをONにする
・PCとAndroidをUSBケーブルで接続する
■Android SDKの導入
AndridStudioを導入する記事を見ればなんとかなるでしょう。
adb と fastboot を使えるようにしておく。
■udevのルール作り
/etc/udev/rules.d/51-android.rules をrootで作成する。
■Android端末側で、USBデバッグをONにする
「設定アプリ」→「端末情報」→「ビルド番号」を連打する
その後、「開発者向けオプション」から
・「OEMロック解除」
・「USBデバッグ」
をONにする
OEMロック解除は、このあとfastbootでロック解除するときに必要になる設定
■PCとAndroidをUSBケーブルで接続する
物理的にね。これで認識してくれるはず。
端末側に「このPCと繋げていいか?」とダイアログが出るんで、OKする。
ターミナルは以下な感じ。
ブートローダーのアンロック
あの、自己責任でね。
端末が完全にフォーマットされちゃうし、メーカーサポート対象外になるので。
まずfastbootモードで再起動する。
(音量キーで上下移動、電源キーで決定)
YESすると、ターミナルはこんな感じに。
「お前の端末、OEMアンロックされてるよ」
という表示が出るけど、電源キー1回押せばOKっぽい
(ってかこれ、毎回出るの…?)
Android Nを焼く
GoogleからNexus6P用のイメージファイルを落としてくる。
http://developer.android.com/intl/ja/preview/download.html#top
落としてきたtgzファイルを解凍し、その中にあるzipファイルも解凍しておく。
5分ほどすると、焼きあがって端末が再起動する。
お疲れ様でした
動機とか
Androidの次期バージョン、Android Nのデベロッパープレビューが始まり、
対応デバイスであればfastbootで焼いてもいいよって状態になりました。
人柱精神旺盛なんで、試そうと思ったんだけど、
唯一持ってるNexus7(2013)がサポートデバイスから外されてました。。
でも試してみたかったんで、
Expansysで安くなってたNexus6Pを買って、Android Nを焼いてみることにしました。
Ubuntu14.04LTSとAndroid端末を接続する
Windowsのパーティションをふっ飛ばしたのも懐かしい話。。
やることとしては
・PCにAndroid SDK をインストールする
・udevのルールを作って、リロードしておく
・Android端末側で、USBデバッグをONにする
・PCとAndroidをUSBケーブルで接続する
■Android SDKの導入
AndridStudioを導入する記事を見ればなんとかなるでしょう。
adb と fastboot を使えるようにしておく。
■udevのルール作り
/etc/udev/rules.d/51-android.rules をrootで作成する。
$ sudo nano /etc/udev/rules.d/51-android.rules
ファイルの中身は以下。#Acer
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0664", GROUP="plugdev"
#ASUS
SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0664", GROUP="plugdev"
#Dell
SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0664", GROUP="plugdev"
#Foxconn
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0664", GROUP="plugdev"
#Fujitsu & Fujitsu Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="04c5", MODE="0664", GROUP="plugdev"
#Garmin-Asus
SUBSYSTEM=="usb", ATTR{idVendor}=="091e", MODE="0664", GROUP="plugdev"
#Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0664", GROUP="plugdev"
#Haier
SUBSYSTEM=="usb", ATTR{idVendor}=="201e", MODE="0664", GROUP="plugdev"
#Hisense
SUBSYSTEM=="usb", ATTR{idVendor}=="109b", MODE="0664", GROUP="plugdev"
#HTC
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0664", GROUP="plugdev"
#Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0664", GROUP="plugdev"
#Intel
SUBSYSTEM=="usb", ATTR{idVendor}=="8087", MODE="0664", GROUP="plugdev"
#K-Touch
SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0664", GROUP="plugdev"
#KT Tech
SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0664", GROUP="plugdev"
#Kyocera
SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0664", GROUP="plugdev"
#Lenovo
SUBSYSTEM=="usb", ATTR{idVendor}=="17ef", MODE="0664", GROUP="plugdev"
#LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0664", GROUP="plugdev"
#Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0664", GROUP="plugdev"
#MTK
SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", MODE="0664", GROUP="plugdev"
#NEC
SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0664", GROUP="plugdev"
#Nook
SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0664", GROUP="plugdev"
#Nvidia
SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0664", GROUP="plugdev"
#OTGV
SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0664", GROUP="plugdev"
#Pantech
SUBSYSTEM=="usb", ATTR{idVendor}=="10a9", MODE="0664", GROUP="plugdev"
#Pegatron
SUBSYSTEM=="usb", ATTR{idVendor}=="1d4d", MODE="0664", GROUP="plugdev"
#Philips
SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0664", GROUP="plugdev"
#PMC-Sierra
SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0664", GROUP="plugdev"
#Qualcomm
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0664", GROUP="plugdev"
#SK Telesys
SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0664", GROUP="plugdev"
#Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0664", GROUP="plugdev"
#Sharp
SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0664", GROUP="plugdev"
#Sony
SUBSYSTEM=="usb", ATTR{idVendor}=="054c", MODE="0664", GROUP="plugdev"
#Sony Ericsson
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0664", GROUP="plugdev"
#Teleepoch
SUBSYSTEM=="usb", ATTR{idVendor}=="2340", MODE="0664", GROUP="plugdev"
#Toshiba
SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0664", GROUP="plugdev"
#Wileyfox
SUBSYSTEM=="usb", ATTR{idVendor}=="2970", MODE="0664", GROUP="plugdev"
#YU
SUBSYSTEM=="usb", ATTR{idVendor}=="1ebf", MODE="0664", GROUP="plugdev"
#ZTE
SUBSYSTEM=="usb", ATTR{idVendor}=="19d2", MODE="0664", GROUP="plugdev"
#ZUK
SUBSYSTEM=="usb", ATTR{idVendor}=="2b4c", MODE="0664", GROUP="plugdev"
これを保存したあとに、udevルールをリロードする。$ sudo sh -c "(udevadm control --reload-rules && udevadm trigger --action=change)"
■Android端末側で、USBデバッグをONにする
「設定アプリ」→「端末情報」→「ビルド番号」を連打する
その後、「開発者向けオプション」から
・「OEMロック解除」
・「USBデバッグ」
をONにする
OEMロック解除は、このあとfastbootでロック解除するときに必要になる設定
■PCとAndroidをUSBケーブルで接続する
物理的にね。これで認識してくれるはず。
端末側に「このPCと繋げていいか?」とダイアログが出るんで、OKする。
ターミナルは以下な感じ。
user@fenrir:~$ adb devices
List of devices attached
CVH7N16128000921 device
ブートローダーのアンロック
あの、自己責任でね。
端末が完全にフォーマットされちゃうし、メーカーサポート対象外になるので。
まずfastbootモードで再起動する。
user@fenrir:~$ adb reboot bootloader
user@fenrir:~$ fastboot devices
CVH7N16128000921 fastboot
んで、OEMロックを解除する。user@fenrir:~$ adb reboot bootloader
user@fenrir:~$ fastboot flashing unlock
すると端末側に「ロック解除していい?」と確認が出るので、YESを選択。(音量キーで上下移動、電源キーで決定)
YESすると、ターミナルはこんな感じに。
user@fenrir:~$ adb reboot bootloader
user@fenrir:~$ fastboot flashing unlock
...
(bootloader) Please select 'YES' on screen if you want to continue...
(bootloader) Unlocking bootloader...
(bootloader) Unlocked!
OKAY [ 52.227s]
finished. total time: 52.227s
端末再起動のタイミングで「お前の端末、OEMアンロックされてるよ」
という表示が出るけど、電源キー1回押せばOKっぽい
(ってかこれ、毎回出るの…?)
Android Nを焼く
GoogleからNexus6P用のイメージファイルを落としてくる。
http://developer.android.com/intl/ja/preview/download.html#top
落としてきたtgzファイルを解凍し、その中にあるzipファイルも解凍しておく。
$ tar zxvf hogehoge.tgz
$ unzip fugafuga.zip
中身はこんな感じになるはず。drwxr-x--- 2 user user 4096 3月 16 20:37 ./
drwxrwxr-x 3 user user 4096 3月 16 20:35 ../
-rw-r--r-- 1 user user 101 1月 1 2009 android-info.txt
-rw-r--r-- 1 user user 12518630 1月 1 2009 boot.img
-rw-r----- 1 user user 3610624 3月 9 05:39 bootloader-angler-angler-03.51.img
-rw-r--r-- 1 user user 5890220 1月 1 2009 cache.img
-rw-r----- 1 user user 962 3月 9 05:39 flash-all.bat
-rwxr-x--x 1 user user 833 3月 9 05:39 flash-all.sh*
-rwxr-x--x 1 user user 790 3月 9 05:39 flash-base.sh*
-rw-r----- 1 user user 1162170548 3月 9 05:39 image-angler-npc56p.zip
-rw-r----- 1 user user 49766400 3月 9 05:39 radio-angler-angler-03.61.img
-rw-r--r-- 1 user user 13513962 1月 1 2009 recovery.img
-rw-r--r-- 1 user user 2561465900 1月 1 2009 system.img
-rw-r--r-- 1 user user 142279856 1月 1 2009 userdata.img
-rw-r--r-- 1 user user 188755084 1月 1 2009 vendor.img
その後、Android端末をfastbootモードでPCと接続し、flash-all.shを実行する。5分ほどすると、焼きあがって端末が再起動する。
お疲れ様でした
それなりに使えるとだけ聞いてたけど、まぁベータ版だからね。
期待しすぎない。
例えば、画面遷移すると1つ前のActivityのスクロール位置が吹っ飛んでたり、
AppSwitchの画面がなんかおかしかったりする。
onPause()かonStop()されると描画内容飛んじゃってる?
マルチウインドウの関係なのかなーって予想してる。
ちなみに、タスクスイッチボタン(画面右下の□)を長押しすると、マルチウィンドウになる。
画面が大きいNexus6Pだと、これはなかなか面白い。
Androidバージョン N
あ、元に戻したくなったらMarshmallowのFactoryImageを焼きこめばOK
fastboot使うのは一緒。
コメント
コメントを投稿