UbuntuでAndroid 12オープンソースをダウンロードしてビルド

AOSP(Android Open Source Project)は多くのgitプロジェクトで構成されています。 Full Buildをするには、それぞれのgit projectをダウンロードしてフォルダごとに整理した後にBuildをしなければなりません。非常に面倒な作業なので、GoogleはREPOというツールを作成して簡単にダウンロードしてアップデートできるように管理しています。

したがって、まずrepoというツールをインストールし、repoを介してAOSPコードをダウンロードしてください。

AOSPダウンロードの詳細については、AOSP Download Guideに紹介されています。

1. REPOのインストール

Repoはスクリプトで実装されたツールです。ダウンロードしてもらえます。 まず〜/ binフォルダを作成してPATHに登録してください

$ mkdir ~/bin
$ PATH=~/bin:$PATH

curlコマンドでrepo toolを〜/ binフォルダにダウンロードします。そしてrepoに実行権を与えました。

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

2. Android 12 ソースコードのダウンロード

Repoを使用してAndroidのオープンソースを取得する前に、フォルダを最初に作成します。 適切な場所に作成し、作成したフォルダ内に移動してください。

$ mkdir android12
$ cd android12

そしてRepoはgitを使うので、gitをインストールする必要があります。 gitをインストールしたら、デフォルト設定のuser nameとuser emailを登録する必要があります。 自分の名前とemailを入力してください。

$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"

準備はすべて完了し、RepoでAOSPのどのバージョンを受け取るかを設定する必要があります。 以下のコマンドでオプション -b android-12.0.0_r27android-12.0.0_r27 ブランチソースを受け取るという意味です。 これを入力しない場合は、最新のソースを受け取ると言われています。

AOSPのすべてのブランチ情報は、Source Code Tags and Buildsで確認できます。 android-12.0.0_r27より最新のブランチがある場合は、それをダウンロードしてください。

以下のように repo initコマンドでRepository情報をダウンロードしてください。

$ repo init -u https://android.googlesource.com/platform/manifest -b android-12.0.0_r27

Downloading Repo source from https://gerrit.googlesource.com/git-repo
repo: Updating release signing keys to keyset ver 2.3

... A new version of repo (2.17) is available.
... You should upgrade soon:
    cp /home/js/Desktop/android12/.repo/repo/repo /home/js/.bin/repo

Downloading manifest from https://android.googlesource.com/platform/manifest
remote: Sending approximately 125.99 MiB ...
remote: Counting objects: 1395, done
remote: Finding sources: 100% (55/55)
remote: Total 94791 (delta 30041), reused 94778 (delta 30041)
Receiving objects: 100% (94791/94791), 126.04 MiB | 10.82 MiB/s, done.
Resolving deltas: 100% (30041/30041), done.

Your identity is: farfs <farfs.dev@gmail.com>
If you want to change this, please re-run 'repo init' with --config-name

repo has been initialized in /home/js/Desktop/android12

repo initでrepo情報を受け取ったら、repo syncでAOSPのgit projectのすべてのソースをダウンロードします。ファイルサイズが非常に大きいため、少し時間がかかります。

$ repo sync

... A new version of repo (2.17) is available.
... You should upgrade soon:

Receiving objects: 100% (6238/6238), 5.32 MiB | 25.67 MiB/s, done.
Resolving deltas: 100% (1584/1584), done.
Receiving objects: 100% (13918/13918), 7.89 MiB | 37.74 MiB/s, done.
Resolving deltas: 100% (4645/4645), done.
Receiving objects: 100% (1493/1493), 1.10 MiB | 43.47 MiB/s, done.
.....

3. AOSPダウンロード確認

repo syncが完了すると、すべてのコードがダウンロードされます。

ダウンロードが完了したら、以下のようにファイルを確認できます。

$ ls
Android.bp  bionic    bootstrap.bash  compatibility  dalvik      development  docs      frameworks  kernel   libnativehelper  packages  platform_testing  sdk     test       tools
art         bootable  build           cts            developers  device       external  hardware    libcore  Makefile         pdk       prebuilts         system  toolchain

4. AOSPビルド

まず、ダウンロードしたプロジェクトで次のコマンドでビルド関連の依存関係を設定します。

$ source build/envsetup.sh

sourceコマンドを入力するときは、ダウンロードしたAOSPフォルダの最上位フォルダからコマンドを入力する必要があります。最上位フォルダーのすぐ下に build/ フォルダーがあります。

そして、次の命令でどのタイプのデバイスまたはアーキテクチャをビルドするかを選択します。

$ lunch
You\'re building on Linux
Lunch menu... pick a combo:
     1. aosp_arm-eng
     2. aosp_arm64-eng
     3. aosp_mips-eng
     4. aosp_mips64-eng
     5. aosp_x86-eng
     6. aosp_x86_64-eng
....

Which would you like? [aosp_arm-eng] 6

デバイスとアーキテクチャまで設定が完了したら、次のコマンドで完全なビルドを行うことができます。 -jN は、ビルド時に使用するスレッド数を設定するオプションです。

$ m -j8

5. エミュレータでAndroidを実行

ビルドが完了すると、画像が作成されます。エミュレータとコンパイルされた画像でAndroidを実行できます。

次のコマンドを入力すると、コンパイルされたAndroidイメージがエミュレータで実行されます。

$ emulator

上記の環境設定時にQEMUも設定されているため、簡単な命令で実行が可能です。個別にQEMUをインストールした場合は、実行命令に画像の場所をオプションとして与えても実行できます。 emulator

##注

codechachaCopyright ©2019 codechacha