TakayukiKoyama Geek Blog

Create, Entertain, Experience

Android OSを解析するための環境構築 Ubuntu 15.04

必要なもの

・仮想環境(VMware PlayerとかVMware FusionとかVirtualBoxとか)

・LinuxOS:Ubuntu(書籍やブログではUbuntuで紹介されているので)

参考資料

Androidのなかみ InsideAndroid

Androidのなかみ InsideAndroid

OSを理解する上ではこれが一番かな?

図解 Androidプラットフォーム開発入門

図解 Androidプラットフォーム開発入門

組み込みよりだけど、参考になることが色々書かれている

Android Hacks ―プロが教えるテクニック & ツール

Android Hacks ―プロが教えるテクニック & ツール

Androidアプリ開発始めた頃に頼りにしてた本

手順

1.仮想環境の用意

2.Ubuntuインストール

3.Ubuntu環境構築

4.Android OSソースコードをダウンロード

その先:Android OSをビルドする(また今度)

作業

1.仮想環境の用意

 元々、MacbookProにVMware Fusionをインストールしているので、それを使うことにする。

WindowsVirtualBoxを入れる場合:VirtualBoxの導入からOSインストールまでのチュートリアル解説 | 情シスハック

MacVirtualBoxを入れる場合:MacにVirtualBoxをインストールしてみた - VirtualBoxの使い方

2.Ubuntuインストール

 まずUbuntuOSをダウンロードする。

Ubuntuの入手 | Ubuntu Japanese Team

 僕の場合は15.04をダウンロードした。

 次にUbuntuを仮想環境にインストールする。VMware Fusionは[ファイル]>[新規]からダウンロードしたISOファイルを選択するだけ。ちなみに容量を50GBにした。Android6.0の場合、ビルドするとなると50GBでも足りなかったw

 Android OS全バージョンをインストールしたい場合は40GBじゃ足りないので注意。

WindowsVirtualBoxの場合:WindowsのVirtualBoxにUbuntu 13.04をインストールしてみた -VirtualBoxの使い方

MacVirtualBoxの場合:MacのVirtualBoxにLinuxのUbuntuをインストールする方法 / Inforati

3.Ubuntu環境構築

 こっからはコマンドかたかたするだけのお仕事。

・まずはソフトウェアを最新にする

$ sudo apt-get update

・Java7を入れる

$ sudo apt-get install openjdk-7-jdk

・必要なソフトウェアをインストール

 ほとんどAndroid Insideと同じ。Ubuntu15.04に合うようにちょっと調整。

$ sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw-w64 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 valgrind

・AndroidOSのrepo設定

$ mkdir bin
$ export PATH=~/bin:$PATH
$ echo $PATH
/home/tkoyama1988/bin:<元々のPATH>

 一応、echoで環境変数が正しいか確認しておく。

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

 書籍にはcommondatastorage.googleapis.comと書いてあったが、公式的にはstorage.googleapis.comの方が良さそう?

$ mkdir androidos
$ cd androidos
$ repo init -u https://android.googlesource.com/platform/manifest -b android-6.0.0_r1

 今回はAndroid6.0.0を入れることにする。全ソースコードが欲しい時は-b以降を外せばいい。他のバージョンをインストールしたいときは下記のサイトから欲しいバージョン名を探すといいと思う。

Refs - platform/manifest - Git at Google

4.Android OSソースコードをダウンロード

$ repo sync

 これでソースコードのダウンロードが開始される。

 ※「error: Exited sync due to fetch errors」というエラーで失敗することがある(途中でネットワークが切れるっぽい?)。途中で失敗しても、次は続きから開始されるので、繰り返しrepo syncすればダウンロードが完了する。repo sync中は他のネットワークは使わないようにした方がいいかもしれない?。

 ちなみに、-jオプションを使うと同時fetch数を増やせてダウンロードが早くなるらしい。その代わりネットワーク占有率が上がる。

$ repo sync -j4
広告を非表示にする