LoginSignup
11
17

More than 5 years have passed since last update.

Android OSのビルド方法

Posted at

Ubuntu14.04でAndroid OSをビルドしたときの手順を残しておく。

最新情報は以下を参照
https://source.android.com/source/initializing.html

PCの初期設定

http://packages.ubuntu.com/vivid/openjdk-8-jdk から以下をDLする。
自分のPCアーキチェクチャに合ったバイナリをDLすること。
・openjdk-8-jre-headless
・openjdk-8-jre
・openjdk-8-jdk

PCのアーキチェクチャ確認方法

$uname -m

x86_64→amd64
i386/i486/i586/i686→i386

自分の場合は以下をDLした。
・openjdk-8-jre-headless_8u45-b14-1_amd64.deb
・openjdk-8-jre_8u45-b14-1_amd64.deb
・openjdk-8-jdk_8u45-b14-1_amd64.deb

DLした三つのファイルそれぞれに対して以下を実行する。

$sudo dpkg -i {downloaded.deb file}

途中でエラーがでるので以下を実行する。

$ sudo apt-get -f install

先にJavaが入っていた場合でpathの切り替えが必要な場合は以下を実行する。

$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac

ビルドに必要なツール一式をインストールする。

$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip

USBアクセス許可を設定する。

$ wget -S -O - http://source.android.com/source/51-android.rules | sed "s/<username>/$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules

反映する。

$ /etc/init.d/udev restart

ソースコードのDLに必要となるRepoをインストールする。RepoはGitコマンドをまとめて実行してくれるようなもの。

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

Androidソースコードのダウンロード

基本的にはビルドしたいVersion毎にフォルダを作成し、そこへ目的のブランチをクローンする。ブランチ、タグの一覧はここで確認できる。
https://source.android.com/source/build-numbers.html

例えば"android-7.0.0_r1"のブランチをクローン場合は以下。

$ mkdir ~/git/aosp/android-7.0.0_r1
$ cd ~/git/aosp/android-7.0.0_r1
$ repo init -u https://android.googlesource.com/platform/manifest -b android-7.0.0_r1

そして同期する。ゼロからの同期には数時間かかる。

$ repo sync

特定のブランチではなくmasterをクローンしたい場合は"-b"オプションなしでinitする。

Androidソースコードの変更

同期直後は、指定したブランチのHEADを指している状態。ソースコードを変更する場合ははトピックブランチを作成しそこから枝を分岐させた方がよい。

$ repo start <topic_branch_name> <repository> ... <repository>

ソースコードのビルド

$ cd ~/git/aosp/android-7.0.0_r1
$ source build/envsetup.sh
$ lunch

lunchでビルド対象デバイスを指定する。一覧はここで確認できる。
https://source.android.com/source/running.html

ビルドする。

$ make

"-jN"オプションで並列処理が可能。

$ make -j4

手元の環境(Intel® Core™ i7 3.60GHz × 8 Memory32GB)でクリーンビルドに2,3数時間かかった。参考程度に。

11
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
17