LoginSignup
10
12

More than 5 years have passed since last update.

AOSPをビルドする

Last updated at Posted at 2015-11-27

はじめに

Android Kernelをビルドしました.
かなり面倒でした.
環境はUbuntu15.10です.

android-sdkのインストール

Installing the Android SDK|Android Developersから最新のSDKをダウンロードする.
~/android以下にインストール.
特定のSDKのバージョンをインストールしたい時はandroidコマンドから管理ができるのでご安心を.

$ export PATH=~/bin:$PATH # repo command
$ export PATH=~/android/tools # android, emulator command
$ export PATH=~/android/platform-tools # adb command

ビルド環境の設定

emulatorのパスがbashの設定に書き込まれるのでbashで作業を
行うことを推奨.

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

RepoはGit上に構築されたツールで,多数のGitレポジトリの管理を容易にする.
そのため,Android開発においてはrepoコマンドが推奨される.

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

androidのソースコードはandroid Git repositoriesで管理されている.
Refs-platform/manifestから自分のビルドしたいブランチを探す.
repoコマンドでソースコードを取ってくることになるが,
今後同期するときにできるだけネットワークを介さないように
あらかじめローカルにミラーをとっておく.
(全リポジトリ合わせて数十GBととても長大である)

ミラーをローカルに作成.

$ mkdir -p /usr/local/aosp/mirror
$ cd /usr/local/aosp/mirror
$ repo init -u https://android.googlesource.com/mirror/manifest --mirror
$ repo sync -j8

ローカルのミラーからソースを取得

$ mkdir -p /usr/local/aosp/master
$ cd /usr/local/aosp/master
$ repo init -u /usr/local/aosp/mirror/platform/manifest.git -b master
$ repo sync -j8

本家のリポジトリと同期したい場合はローカルのミラーリポジトリのディレクトリでrepo syncすれば良い.

$ cd /usr/local/aosp/mirror
$ repo sync

キャッシュの使用

ビルド後のサイズはとてつもなく大きくなるし,それだけあってビルドの時間もかかる.
今後ビルドを繰り返すときに待ち時間を減らすためにCCACHEを使う.

$ export USE_CCACHE=1
$ mkdir /usr/local/aosp/master/.ccache
$ export CCACHE_DIR=/usr/local/aosp/master/.ccache
$ prebuilts/misc/linux-x86/ccache/ccache -M 50G

コードのビルド

lunchコマンドでは[機種]_[アーキテクチャ]-[デバッグ指定]のようにビルドの設定ができる.
fullとaospが選べるが違いは工場出荷相当か開発段階かということである.
KVMサポートはホストとゲストのアーキテクチャが同じ時のみ有効になるのでx86を選択した.
デバッグレベルはengが最高なのでengを選んだ.

$ source build/envsetup.sh
$ lunch aosp_x86-eng
$ make -j8

ビルドのテスト

エミュレータを起動しよう.

$ emulator -qemu -m 512 -enable-kvm

エミュレータを起動中以下のコマンドをうつことでシェルが起動する.

$ adb shell

参考

10
12
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
10
12