AOSP: Membangun Build Environment

From OnnoWiki
Jump to navigation Jump to search

Bagian ini menjelaskan cara mengatur local work environment untuk membangun source code Android. Hidup kita akan lebih mudah jika menggunakan Linux atau Mac OS. Proses code-review & code-update dari Android Open Source Project (AOSP) menggunakan tool berbasis web yang di kenal dengan Gerrit.

Memilih Branch

Beberapa persyaratan untuk membangun build environment ditentukan oleh versi source code yang di rencanakan untuk di-kompilasi. Lihat Build Number untuk daftar lengkap dari branch yang dapat kita pilih. Anda juga dapat memilih untuk men-download dan membangun source code terbaru (disebut master), dalam hal ini Anda hanya akan menghilangkan spesifikasi branch ketika Anda menginisialisasi repositori.

Setup Linux build environment

Instruksi di bawah ini berlaku untuk semua brach, termasuk master. Android build secara rutin di test di Google menggunakan versi terbaru dari Ubuntu LTS, tetapi distribusi lain harusnya memiliki build tools yang di butuhkan. Untuk Gingerbread (2.3.x) dan versi yang lebih baru, termasuk master branch, membutuhkan lingkungan 64 bit. Versi yang lebih tua dapat di compile menggunakan sistem 32 bit.

Install JDK

Master brach dari Android di Android Open Source Project (AOSP) membutuhkan Java 8. Di Ubuntu, menggunakan OpenJDK. Jalankan perintah berikut,

$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk

Versi java terbaru di Ubuntu 16.04 adalah 8u77. Jika anda harus menggunakan OpenJDK 7 dst, dapat menggunakan perintah,

$ sudo add-apt-repository ppa:openjdk-r/ppa  
$ sudo apt-get update   
$ sudo apt-get install openjdk-7-jdk

Untuk mengcompile android versi < 4.3.1 mau tidak mau harus mundur ke Sun/Oracle JDK 1.6. Jika kita ingin mengcompile android < 4.3.1, kita perlu menginstalasi sun/oracle JDK 1.6, caranya:

sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java6-installer
sudo apt install oracle-java6-set-default
javac -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

Versi JDK yang mungkin cocok untuk android < 4.3.1 adalah 6u45. Untuk memilih versi default yang digunakan dapat menggunakan perintah,

sudo update-alternatives --config java

Install paket yang dibutuhkan

Kita membutuhkan Ubuntu 64 bit. Minimal Ubuntu 14.04 yang di rekomendasikan.

$ 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 python-lunch \
  libswitch-perl

Bagi anda yang menggunakan Ubuntu 16.04 maka kemungkinan akan di instalasi make 4.1. Ini bisa di cek menggunakan perintah

make --version

GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Ini akan menjadi masalah jika ingin meng-compile android versi <4.3.1. Kita harus menggunakan make 3.81 dan meng-compile secara manual, caranya,

Download source make 3.81 dari http://ftp.gnu.org/gnu/make/ dan lakukan

cd /usr/local/src/
wget http://ftp.gnu.org/gnu/make/make-3.81.tar.gz
tar zxvf make-3.81.tar.gz
cd /usr/local/src/make-3.81
./configure
make
make install

Timpa make 4.1 agar menjadi make 3.81

cd /usr/bin
cp make make-4.1
cp /usr/local/src/make-3.81/make /usr/bin
hash -r make
make -version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for x86_64-unknown-linux-gnu

Untuk mengembalikan

sudo make uninstall
cd /usr/bin
cp make-4.1 make
hash -r make
make -version

Mengkonfigurasi Akses pada USB

Di bawah sistem GNU / Linux (dan khususnya di Ubuntu), pengguna biasa tidak dapat langsung mengakses perangkat USB secara default. Sistem perlu dikonfigurasi untuk mengizinkan akses tersebut. Cara yang di rekomendasikan, sebagai root, membuat file

/etc/udev/rules.d/51-android.rules

Cara yang perlu dilakukan, termasuk memodifikasi file tersebut agar memasukan username anda, adalah sebagai berikut,

$ 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

Rules yang baru ini akan berfungsi jika sesuatu saat nanti device di colok. Oleh karena-nya sebaiknya unplug semua device android yang ada, dan colok kembali ke komputer setelah rules ini di buat.