『Android関連』 Nexus7をマルチブートにする

Nexus7、Androidに戻したけれども、Ubuntuをいつでも使えるようにしておきたいということもあり、マルチブート化しました。
ついでに、データのバックアップもとれるようになった(´∀`)

参考にしたページ
Nexus 7をデュアルブート(Dual Boot)化して、AOKPとParanoidAndroidを切り替えて使う方法。
Nexus 7にUbuntuをインストールしてAndroidとのデュアルブートで使う方法。

TWRPなどのダウンロード

そもそも、TWRPってなに?状態。。。。
ユーザデータのバックアップ、リストアやカスタムROMを導入できるになるツールのようなのです。
これのバージョンにROMを切り替えてブートできるようにするのがあるようで、それを導入しました。

上記選考サイトと説明がかぶりますが、書きます。

まずは必要なROMイメージをダウンロード
MultiROM: multirom_v2_n7-signed.zip
Modified recovery (TWRP 2.3.2.3): TWRP_multirom_n7_20121202.img

TWRPのインストール

PC母艦からの作業になります。私はWindowsから行いました。
Nexus7はbootloaderを起動させておきます。ドロイド君が切腹開腹している状態の画面になるヤツです。
コマンドプロンプトをひらて先ほどダウンロードしたイメージファイルがある所で

$ fastboot flash recovery TWRP_multirom_n7_20121202.img

を実行してやります。

DSCF0988
念のため、bootloaderを再起動してやった後、ボリュームボタンで「Recovery Mode」選択してTWRPを起動してやります。

起動すると、
DSCF0990
こんな画面になります。

マルチブート対応

まず、Androidを立ち上げて母艦から先ほどダウンロードしたmultirom_v2_n7-signed.zipをコピーしてやります。
Downloadディレクトリあたりが都合良さそうです。

さいど、bootloaderを立ち上げてRecovery Modeに入ります。
TWRPのメニューから、
Install>ディレクトリ移動>multirom_v2_n7-signed.zipを選択>Swipe to Confirm Flashをスワイプ
で導入されます。

ここまで来たらTWRPのメニューからReboot>Systemでrebootしてやります。

すると、
DSCF0986
このようなROMの選択画面がでます。Internalが元々インストールされているAndroidです。
この画面では、Ubuntuもありますが、この写真をUbuntu導入後に撮影したからです。

これで、Ubuntuを立ち上げたり、カスタムROMを入れてみたりとさらに活用できるようになりました。
自分でROMイメージを作る方法を確立しないとだな!

『Android関連』 Android-x86をビルドしてVirtualBoxで動かす

そんなわけで次は、Android-x86をビルドしてVirtualBoxで動かしてみます。

基本手順はAndroid-x86 – Porting Android to x86 : Get Sourceでつまずくところは特にないかと。

ソースのダウンロード

ターゲットはAndroid 4.2です。

$ mkdir android-x86
$ cd android-x86
$ repo init -u http://git.android-x86.org/manifest -b jb-x86
$ repo sync

4.2なのでbranchとして”jb-x86″を指定してやります。
kernelソース込みなので、結構な時間かかります。

ビルド

4.2はandroid_x86を指定しろと書いてあるので、それに従います。

$ source build/envsetup.sh
$ lunch

You’re building on Linux

Lunch menu… pick a combo:
1. full-eng
2. full_x86-eng
3. vbox_x86-eng
4. full_mips-eng
5. android_x86-eng
6. android_x86-userdebug
7. android_x86-user

Which would you like? [full-eng] android_x86-eng

メモを残していなかったけど、android_x86-engはビルド失敗してandroid_x86-userdebugを選択したような記憶が

$ make -j8
$ make iso_img

成功すると、out/target/product/x86/以下にandroid_x86.isoができます。

VirtualBoxへのインストールと動作

Linux 2.6をターゲットにして、プライマリマスタにHDDイメージ、セカンダリマスタにこのCDイメージをセットして起動してやります。

android_x86_1
Installationを選択してインストール。

Debianをインストールするような感じでインストール出来ます。
LiveCDとして使う、つまりCDブートとして使ってもOK。

android_x86_2
あっさり動いてくれました。
が、マウスを移動させてもカーソルが表示されない(;つД`)
感で操作するかキーボードで操作するかです。

x86CPU上で動いてくれるので、ARMエミュレータより速くて快適なので、デバッグも捗ると言いたいところですが、x86シミュレータがAndroid SDKに入るようになったので、微妙ですな。

プリンストンテクノロジー Jot Flip Capacitive Touch Stylus (シルバー) JOTF-SV
プリンストンテクノロジー (2012-05-25)
売り上げランキング: 867

『Android関連』 AOSPのソースファイルをビルドしてNexus7にインストール

『Android関連』 AOSPのソースをビルドの続きで、自分で作ったROMをインストールしてみます。
2013年2月22日追記
確認してみたら、ずいぶん抜けがあるので追加しました

設定とビルド

Version 4.1.2じゃないと、Nexus7の項目が出てこないので、わーくん具セットを切り替えます。

repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.2_r1
repo sync -j8

Wi-Fi等のドライバはソースに含まれてないので、Binaries for Nexus Devicesからダウンロードします。
“Nexus 7 (Wi-Fi) binaries for Android 4.1.2 (JZO54K)”の所にある6ファイルをダウンロードします。
それぞれのtgzファイルを解凍すると、シェルスクリプトが出てくるのでそれらを実行すると、ドライバが解凍されます。

以上の準備が終わったら、Nexus7をターゲットとして実行します。

$ lunch full_grouper-userdebug
$ make -j8

正しく終わると、out/target/product/grouper/以下にROMイメージができていると思います。

$ cd out/target/product/grouper
$ ls
android-info.txt
boot.img
・・・
system.img
・・・
recovery.img
・・・
userdata.img
・・・

焼き込み

今回はdebianマシンでやろうとしたのですが、なんかね、nexus7を認識してくれないので、Windowsマシンでやりました。
『Android関連』 Nexus7を工場出荷状態に初期化する Factory Imageを焼き込むで使ったファイルをコピーして、置き換えました。

注意* 初めの書き込みではFactory Imageは4.2.1 (JOP40D)を使いました。
が、4.1.2 (JZO54K)を使わないと失敗するかもしれません。ので修正しました。

具体的に説明すると、
android-info.txt、boot.img、recoverry.img、system.img、userdata.img
の5ファイルをzipファイルに圧縮します。
名前は、nexus7.zipとしました。

次に、flash-all.batの25行目を

fastboot -w update image-nakasi-jzo54k.zip

から

fastboot -w update nexus7.zip

に変更したbatファイルをつくって、実行しました。

ROM書き換え後

勝手に再起動はじまります。
DSCF0984

エミュレータを起動させたときと同じ画面やな。

Screenshot_2013-02-07-13-00-03
Google Playすらありませぬw

まとめ

この方法が正しいのかわかっていないけど、カスタムなROMを作って遊ぶパスを確立できたのは大きい。
さて、Factory Imageをまた焼くかw

『Android関連』 Nexus7を工場出荷状態に初期化する Factory Imageを焼き込む

Nexus7にUbuntuを入れてはみたものの、当初目論見のOpenGLを動かすことができなかったので、Androidに戻すことにしました。

参考にしたページ。
穀風: Nexus7 を工場出荷状態に初期化してみた

前提として、Android SDKがインストールされているWindowsマシンか、Macか、Linuxマシンが必要です。
当然、パスを通すとかは住んでいると言うことで。

Factory Imageの入手

まずこれが無いとはじまりません。
Factory Images for Nexus Devicesから所望のROMをダウンロード。

Nexusは4.1.2と4.2のどちらもダウンロード出来るようになっているので、4.2を試してみたら起動しなかった(´・ω:;.:…
なので、4.1.2でやりました。

ロムを展開すると、色々ファイルが出てきます。

ROM焼き

DSCF0982
まずは、ボリュームの下ボタンと電源ボタンを同時押しでfastbootモードにします。

あるいは、コマンドプロンプトから

$ adb reboot bootloader

と打ち込んでやります。

あとは、USBケーブルでPCと接続してやって、

Windowsでやる場合は、コマンドラインを立ち上げてファイルを展開したディレクトリに移動した後、

.flash-all.bat

Linux,Macならファイルを展開したディレクトリに移動した後、

と書いてありますので、この通りにコマンドプロンプトから実行してあげます。

./flash-all.sh

を実行します。
数分ほど待つと・・・

DSCF0983
再起動が始まって

Screenshot_2013-02-07-20-27-52
てきぱきとセットアップしてセットアップ完了。楽すぎる。。。

これで安心して色々といじれるぞ!

『Android関連』 【39s】 タブレットPC用スタンド コンパクト ブラック

アマゾンをブラウジングしていた、面白そうで評価も高い商品を見つけたので紹介。
39s株式会社のタブレットPC用スタンド コンパクト ブラックです。

値段も安いしNexus7用に良いかなと思って買ってみました。
結果は大正解。

写真を撮影したので雰囲気を。

DSCF0974
値段の割に高級感があるケースです。

DSCF0976
ポーチに入っていて

DSCF0977
スタンドを前回にした感じ。

DSCF0978
これが基本スタイル

DSCF0979
Nexus7をのっけてみました。

DSCF0980
横から見た感じ

DSCF0981
スマホはちと厳しい。スマホだと前回紹介したメガネですな

ちょっと写真では伝わりにくいかとも思いましたが、これは良い製品ですよ。

『Android関連』 Nexus7用の液晶保護フィルムを購入

Nexus7用の液晶保護フィルムですが、結局Amazonで注文しました。
購入した商品は、Google nexus PRO GUARD HD Professional Front film (for Google nexus 7 防指紋 AF / PGAF-GN7)です。

Google nexus PRO GUARD  HD Professional Front film (for Google nexus 7 防指紋 AF / PGAF-GN7)
マイクロソリューション Micro Solution Inc.
売り上げランキング: 44

ユーザー評価を見ていて評価が高かったので購入。結果は大正解でした。
添付品もしっかりしていて、大きめのクリーニングクロスと埃取り用のシールも添付していました。

Tシャツ姿になって風呂場でフィルム貼り。気泡も発生しなく中々良い商品と感じました。

Nexus7徹底活用ガイド (三才ムック vol.588)
秋葉けんた 井上真花 勝山弘一 松村武宏 水野蒼 Roger MemnOck Rice
三才ブックス (2012-12-21)
売り上げランキング: 1,017

『Android関連』 AOSPのソースをビルド

Android OSビルド環境もできたので、AOSPソースをビルドしてみました。

ソースの取得

ソースの取得は、公式ページの通りなのですが、

$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

といった感じで前準備をした後、どれを落とすかですが、これを書いていた時点でandroid-4.2.1_r1.2があったので、これをトライ

$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.1_r1.2
$ repo sync -j8

repo syncもマルチスレッドで実行できるので、-jオプションを指定。マシンがCore2 Duoなので8スレッドくらい。
DISK I/O律速なので、もっとスレッド数を増やしても良いかもしれない

ビルド

$ source build/envsetup.sh
$ lunch

Virtual Boxで試したいので、vbox_x86-engを設定しました。

$ make -j8
$ make installer_vdi

同じ理由で8スレッド指定でビルド。Virtual Box用のインストールイメージを作成。
out/target/product/vbox_x86/installer.vdi ができていたら成功。

実行

プライマリに空のDiskイメージ、セカンダリにこのインストールイメージを設定してVirtual Boxを起動。

vb_x86

ちょっと名前を変えてあるけどこんな感じに設定。
で、起動させてF12キーを連打してインストーラ起動。

そうしたら、「GRUB」って文字で止まる orz

android-4.1.2_r1で試してみたら、GRUBは立ち上がるけどインストール出来ない。
むむむ、Virtual Boxで動かそうと思ったら、AOSPじゃなくてAndroid-x86 Projectのソースを使わないとダメなのかな???

基礎からのAndroidプログラミング (基礎からシリーズ)
金田 浩明
ソフトバンククリエイティブ
売り上げランキング: 116,846

『Android関連』 スマホ小物をいくつか購入

Nexus7購入に会わせていくつか小物を買ったので紹介

スマートフォン用スタンド “megane”

スマートフォン用スタンド “megane”
日本橋のソフマップを除いたら処分特価500円で売っていたので購入。

実際にGalaxy Nexusで試してみた。
DSCF0972

DSCF0973

悪くはないんだけど、吸盤がすぐ外れてダメだ。処分特価な理由がわかった。
Galaxy Nexusで何とか使えるって感じで、Nexus7じゃ吸盤がくっつかん。

アイディアは良かったが、商品にしたら残念な結果になったと言う感じ。

Bluevision SuperMount F Long

Bluevision SuperMount F Long プレアデスダイレクト限定品 Blueも買いました。
ITMedia mobile – スマホをしっかり固定できる便利な三脚マウント「Bluevision SuperMount F」で紹介されていた商品です。
スマホを三脚に固定できるし、スタンドにもできるのでこれは良いなと思って。

Nexsus7で試してみました。

DSCF0971
USBキーボードをつなげて使うときに良い感じw

Bluevision SuperMount F Long プレアデスダイレクト限定品 Blue
Bluevision
売り上げランキング: 30,646

SANWA SUPPLY タブレットスリップインケース PDA-TABS7

Nexsus7のケース用にSANWA SUPPLY タブレットスリップインケース PDA-TABS7を買いました。
大きさ的にぴったりです。
初めはスタンドにもなるカバーを買おうかと考えていたのですが、スタンド兼用タイプだとかさばるタイプのしかなかったので見送りました。
スタンドは三脚スタンドで代用できるし、鞄に入れるときだけケースが欲しくなるから、スリップケースで良いかなと思って購入。
実際に装着してみたらかなりGoodで良い買い物をしたと思います( ̄ー ̄)ニヤリ

SANWA SUPPLY タブレットスリップインケース PDA-TABS7
サンワサプライ
売り上げランキング: 125
SANWA SUPPLY タブレット手帳ケース PDA-TABT7
サンワサプライ
売り上げランキング: 854

『Android/Linux関連』 FirefoxOSをビルド

FireFox OSをビルドしてみたので簡単にメモを。
元々、Nexus7を買っちゃった動機の一つが、Firefox OSを動かすだったのです。
throw Life – FirefoxOSをビルドしてNexusSにインストールする方法を読んで、Nexus7でも動くと勘違いしちゃったわけです。
まぁ、動かないんですがね。

Galaxy Nexusでは動くらしいのですが、メインスマホのGalaxy Nexusは潰したくない。
あ~、新規0円祭りの時に既存回線も機種変してもう1台確保しておくんだった。。。

気を取り直してビルドしてみた

上記のページにも書いてありますが、公式のページの通りにやればビルドできます。
Debianだから嵌まったところもなかったです。
Firefox OS のビルドとインストール

細かいコマンドは上記ページを見たらわかるので書きません。

で、./config.shを実行すると

./config.sh
Usage: ./config.sh (device name)

Valid devices to configure are:
– galaxy-s2
– galaxy-nexus
– nexus-s
– nexus-s-4g
– otoro
– unagi
– pandaboard
– emulator
– emulator-x86

とでてきて、とりあえずemulatorで動かそうと思いemulator-x86を試したのですが、ビルド失敗する。
emulator-x86、emulator、pandaboard、unagi、otoro、galaxy-nexus、nexus-sと試してみてビルドできたのは、galaxy-nexusのみ。
いやぁ、そりゃ手元にあるけど、メインスマホだから無理だって・・・

本日時点でsyncしたソースでは上記の状態みたいです。
今後も継続してウォッチしてエミュレータが動き出したらまたブログを書こうと思います。
Galaxy Nexusをもう1台手に入れるかな。でも2万位するんだよね。。。

AndroidのためのHTML5本格アプリ開発
古籏 一浩
リックテレコム
売り上げランキング: 442,560

『Android/Linux』 nexus7でUbuntuを動かす。

第1目的である、Ubuntuのnexus7へのインストールができました。
色々と苦労がありましたが( ; ゚Д゚)

参考にしたページ
[memo] Nexus 7にUbuntuをネイティブインストール
新世代タブレット Nexus7 UbuntuLinux 12.10 インストール編 その1

ubuntuをインストール方法は2種類あって、
1) Ubuntuからaptをつかってインストーラを使ってインストール
2) ROMイメージをダウンロードしてきて、adbをつかってインストール

結論から言うと、1)の方法でインストールするとインストールはできるのですが、なぜかソフトウェアキーボードから入力ができないのでインストーラでユーザー登録ができなくて詰まる。
2)のROMイメージは、ユーザー作成済み&自動ログインに設定してある、ソフトキーボードも使えるので今日この日ではこれがベスト。
1)の方法は、開発が安定してからですかね。

アンロック

まずはアンロック。
Android SDKをインストール。この話は省略。

インストールが終わったらPCとnexus7をUSBケーブルでつないで、以下のコマンドを実行。

adb reboot bootloader
fastboot oem unlock

Ubuntuインストール

http://hwe.ubuntu.com/uds-r/nexus7/から手持ちの端末にあったサイズのROMイメージをダウンロード。

ROMを適当なディレクトリに置いておいて、コマンドプロンプトを開いて、ROMをおいたディレクトリに写って以下のコマンドを実行

fastboot erase boot
fastboot flash boot boot.img
fastboot erase userdata
fastboot flash userdata rootfs.img

ROMを焼き終わったらreboot

fastboot reboot

うごいたうごいた

DSCF0968
右上の無線LANのアイコンをクリックしたら、無線LANの設定ができるので、APにつないでやりましょう。

DSCF0969
USB機器が普通に繋がります。
キーボード
マウス
USBメモリ
が動きました。
参考にしたページによると、ほとんどのデバイスが動くようですね。
HDDつないで動くのはよいなw

他のARM Cortex-A9で動いているアプリが動きそうだな。OpenGLアプリとか。

動いたらブログで紹介するですよ。

必ずやるべき事

デフォルトログインするユーザーのユーザー名はubuntu、パスワードもubuntuなので、パスワードを変更するか新しいユーザーを作りましょう。

SANWA SUPPLY USBホスト変換アダプタケーブル(MicroBオス-Aメス) 10cm AD-USB18
サンワサプライ (2012-03-31)
売り上げランキング: 64