<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lms.onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=OS%3A_AOSP_-_Membangun_Building_Environment</id>
	<title>OS: AOSP - Membangun Building Environment - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://lms.onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=OS%3A_AOSP_-_Membangun_Building_Environment"/>
	<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=OS:_AOSP_-_Membangun_Building_Environment&amp;action=history"/>
	<updated>2026-04-21T06:14:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=OS:_AOSP_-_Membangun_Building_Environment&amp;diff=46528&amp;oldid=prev</id>
		<title>Onnowpurbo at 02:45, 20 January 2017</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=OS:_AOSP_-_Membangun_Building_Environment&amp;diff=46528&amp;oldid=prev"/>
		<updated>2017-01-20T02:45:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://lms.onnocenter.or.id/wiki/index.php?title=OS:_AOSP_-_Membangun_Building_Environment&amp;amp;diff=46528&amp;amp;oldid=46527&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=OS:_AOSP_-_Membangun_Building_Environment&amp;diff=46527&amp;oldid=prev</id>
		<title>Onnowpurbo: Created page with &quot;Membangun Build Environment Bagian ini menjelaskan cara mengatur local work environment untuk membangun source code Android. Hidup kita akan lebih mudah jika menggunakan Linux...&quot;</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=OS:_AOSP_-_Membangun_Building_Environment&amp;diff=46527&amp;oldid=prev"/>
		<updated>2017-01-20T02:41:40Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Membangun Build Environment Bagian ini menjelaskan cara mengatur local work environment untuk membangun source code Android. Hidup kita akan lebih mudah jika menggunakan Linux...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Membangun Build Environment&lt;br /&gt;
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 &amp;amp; code-update dari Android Open Source Project (AOSP) menggunakan tool berbasis web yang di kenal dengan Gerrit.&lt;br /&gt;
Memilih Branch&lt;br /&gt;
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.&lt;br /&gt;
Setting up a Linux build environment&lt;br /&gt;
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.&lt;br /&gt;
Installing the JDK&lt;br /&gt;
Master brach dari Android di Android Open Source Project (AOSP) membutuhkan Java 8. Di Ubuntu, menggunakan OpenJDK. Jalankan perintah berikut,&lt;br /&gt;
&lt;br /&gt;
$ sudo apt-get update&lt;br /&gt;
$ sudo apt-get install openjdk-8-jdk&lt;br /&gt;
&lt;br /&gt;
Versi java terbaru di Ubuntu 16.04 adalah 8u77.&lt;br /&gt;
Install paket yang dibutuhkan&lt;br /&gt;
Kita membutuhkan Ubuntu 64 bit. Minimal Ubuntu 14.04 yang di rekomendasikan.&lt;br /&gt;
&lt;br /&gt;
$ sudo apt-get install git-core gnupg flex bison gperf build-essential \&lt;br /&gt;
  zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 \&lt;br /&gt;
  lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache \&lt;br /&gt;
  libgl1-mesa-dev libxml2-utils xsltproc unzip python-lunch&lt;br /&gt;
Mengkonfigurasi Akses pada USB&lt;br /&gt;
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&lt;br /&gt;
&lt;br /&gt;
/etc/udev/rules.d/51-android.rules&lt;br /&gt;
&lt;br /&gt;
Cara yang perlu dilakukan, termasuk memodifikasi file tersebut agar memasukan username anda, adalah sebagai berikut,&lt;br /&gt;
&lt;br /&gt;
$ wget -S -O - http://source.android.com/source/51-android.rules | sed &amp;quot;s/&amp;lt;username&amp;gt;/$USER/&amp;quot; | sudo tee &amp;gt;/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
Penggunan Directory terpisah untuk output&lt;br /&gt;
Secara default, output dari setiap build disimpan di out/ subdirektori dari source tree yang cocok.&lt;br /&gt;
&lt;br /&gt;
Pada beberapa mesin dengan beberapa perangkat penyimpanan, build lebih cepat ketika menyimpan file dource dan output pada volume yang terpisah. Untuk menambah kinerja, output dapat disimpan pada filesystem dioptimalkan untuk kecepatan bukannya ketahanan crash, karena semua file dapat dibuat kembali jika ada filesystem yang corrupt.&lt;br /&gt;
&lt;br /&gt;
Untuk menset ini, export variable OUT_DIR_COMMON_BASE ke titik / path dimana kita directory output ingin di simpan&lt;br /&gt;
&lt;br /&gt;
$ export OUT_DIR_COMMON_BASE=&amp;lt;path-dari-output-directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Direktori output untuk setiap source tree dipisah akan diberi nama setelah direktori holding / awal dari source tree. Contoh, jika kita mempunyai source tree sebagai /source/master1 dan /source/master2 dan OUT_DIR_COMMON_BASE di set ke /output, maka output directory-nya akan /output/master1 dan /output/master2.&lt;br /&gt;
&lt;br /&gt;
Oleh karenanya sangat penting untuk tidak mempunyai beberapa source tree yang di simpan pada directory yang mempunyai nama yang sama, karena akan terjadi sharing output directory, yang mengakibatkan hasil yang tidak bisa di prediksi.&lt;br /&gt;
&lt;br /&gt;
Hal ini hanya di dukung pada Jelly Bean (4.1) atau yang lebih baru, termasuk master branch.&lt;br /&gt;
Download Source Code Android&lt;br /&gt;
Source Android terletak di repositori Git yang di host oleh Google. Dalam Git repositori termasuk metadata untuk source  Android, termasuk yang terkait dengan perubahan source dan tanggal mereka dibuat. Bagian ini menjelaskan cara men-download source untuk code-line Android tertentu.&lt;br /&gt;
Installing Repo&lt;br /&gt;
Repo adalah tool yang dibuat agar lebih mudah untuk bekerja dengan Git dalam konteks Android. Untuk menginstalasi repo, pastikan ada directory bin/ di home directory anda dan masuk dalam path,&lt;br /&gt;
&lt;br /&gt;
$ mkdir ~/bin&lt;br /&gt;
$ PATH=~/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
Download tool repo dan pastikan bisa di run,&lt;br /&gt;
&lt;br /&gt;
	$ curl https://storage.googleapis.com/git-repo-downloads/repo &amp;gt; ~/bin/repo&lt;br /&gt;
	$ chmod a+x ~/bin/repo&lt;br /&gt;
Inisialisasi Repo Client&lt;br /&gt;
Setelah menginstalasi repo, setup client anda untuk mengakses Android source directory, caranya,&lt;br /&gt;
&lt;br /&gt;
Buat sebuah directory kosong untuk menyimpan file android anda, misalnya,&lt;br /&gt;
&lt;br /&gt;
$ mkdir WORKING_DIRECTORY&lt;br /&gt;
$ cd WORKING_DIRECTORY&lt;br /&gt;
	atau&lt;br /&gt;
$ mkdir android-source&lt;br /&gt;
$ cd android-source&lt;br /&gt;
&lt;br /&gt;
Mengkonfigurasi git dengan nama asli dan alamat email. Untuk menggunakan Gerrit code-review tool, kita akan memerlukan sebuah alamat email yang terhubung dengan akun Google yang terdaftar. Pastikan ini adalah alamat hidup di mana kita dapat menerima pesan. Nama yang kita berikan di sini akan muncul di atribusi untuk pengajuan kode Anda.&lt;br /&gt;
&lt;br /&gt;
$ git config --global user.name &amp;quot;Your Name&amp;quot;&lt;br /&gt;
$ git config --global user.email &amp;quot;you@example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Jalankan repo init untuk mengambil versi terbaru dari repo dengan semua perbaikan bug yang terbaru. Anda harus menentukan URL untuk manifest, yang menentukan di mana berbagai repositori termasuk dalam source Android akan ditempatkan di dalam direktori kerja Anda.&lt;br /&gt;
&lt;br /&gt;
$ repo init -u https://android.googlesource.com/platform/manifest&lt;br /&gt;
	&lt;br /&gt;
Perintah di atas akan menginisialisasi source code untuk mengambil versi terbaru. Untuk memeriksa cabang selain &amp;quot;master&amp;quot;, tentukan dengan -b. &lt;br /&gt;
&lt;br /&gt;
		$ repo init -u https://android.googlesource.com/platform/manifest -b 		android-4.3.1_r1&lt;br /&gt;
&lt;br /&gt;
Untuk daftar lengkap branch, dapat dilihat Source Code Tag and Build pada URL http://source.android.com/source/build-numbers.html#source-code-tags-and-builds. Beberapa Code Tag yang penting, antara lain adalah,&lt;br /&gt;
&lt;br /&gt;
	Code Tag		Version&lt;br /&gt;
	android-7.1.1_r13	Nougat&lt;br /&gt;
	android-6.0.1_r77	Marshmallow&lt;br /&gt;
	android-5.1.1_r38	Lollipop&lt;br /&gt;
	android-4.4.4_r2	KitKat&lt;br /&gt;
	android-4.3.1_r1	Jelly Bean&lt;br /&gt;
	android-4.0.4_r2.1	Ice Cream Sandwich&lt;br /&gt;
	android-2.3.7_r1	Gingerbread&lt;br /&gt;
		android-2.2.3_r2	Froyo&lt;br /&gt;
&lt;br /&gt;
Sebuah inisialisasi berhasil akan berakhir dengan pesan yang menyatakan bahwa Repo diinisialisasi di direktori kerja Anda. direktori klien Anda sekarang harus berisi direktori .repo dimana file seperti manifes akan disimpan.&lt;br /&gt;
Download Android Source Tree&lt;br /&gt;
Untuk mengambil source Android ke direktori kerja Anda dari repositori sebagaimana ditentukan dalam manifes default, jalankan&lt;br /&gt;
&lt;br /&gt;
	$ repo sync&lt;br /&gt;
&lt;br /&gt;
Source code Android akan berlokasi di direktori kerja Anda dengan nama proyek mereka. Operasi sinkronisasi awal akan memakan waktu satu jam atau lebih untuk bisa selesai. Untuk lebih lanjut tentang repo sync dan perintah Repo lainnya, lihat bagian Mengembangkan.&lt;br /&gt;
menggunakan Otentikasi&lt;br /&gt;
&lt;br /&gt;
Penggunaan Authentication&lt;br /&gt;
Secara default, akses ke source code Android source code adalah anonymous. Untuk memproteksi server dari penggunaan yang berlebihan, setiap IP address di beri quota. Jika &lt;br /&gt;
&lt;br /&gt;
Jika sharing sebuah IP address dengan user lain, misalnya, di kampus di belakang NAT firewall, mekanisme quota akan bereaksi karena banyak client baru melakukan sync dari IP address yang sama dalam waktu yang pendek. Untuk hal seperti ini sangat di mungkinkan untuk menggunakan akses authenticated, yang kemudian akan membuat quota yang berbeda untuk setiap user, apapun IP address yang digunakan.&lt;br /&gt;
&lt;br /&gt;
Langkah pertama, membuat password dengan password generator dan ikuti instruksi di password generator page.&lt;br /&gt;
&lt;br /&gt;
Langkah ke dua, paksakan untuk access authentication dengan menggunakan URL berikut URI: https://android.googlesource.com/a/platform/manifest. Perhatikan bahwa prefix directory /a/ akan mentrigger kewajiban untuk authentikasi. Kita dapat mengkonversikan client yang ada untuk menggunakan mandatory authentication dengan perintah berikut,&lt;br /&gt;
&lt;br /&gt;
$ repo init -u https://android.googlesource.com/a/platform/manifest&lt;br /&gt;
Troubleshooting masalah jaringan&lt;br /&gt;
Saat  mendownload dari belakang proxy, sangat perlu untuk secara explisit men-spesify proxy yang digunakan oleh repo,&lt;br /&gt;
&lt;br /&gt;
$ export HTTP_PROXY=http://&amp;lt;proxy_user_id&amp;gt;:&amp;lt;proxy_password&amp;gt;@&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
$ export HTTPS_PROXY=http://&amp;lt;proxy_user_id&amp;gt;:&amp;lt;proxy_password&amp;gt;@&amp;lt;proxy_server&amp;gt;:&amp;lt;proxy_port&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ini sangat jarang terjadi, beberapa Linux client merasakan masalah sambungan, seperti berhenti saat di tengah-tengah download (biasanya saat &amp;quot;Receiving objects&amp;quot;). Di laporkan bahwa mengubah settingan TCP/IP stack dan menggunakan perintah non-paralel dapat memperbaiki situasi. Anda perlu akses root untuk memodifikasi TCP setting:&lt;br /&gt;
&lt;br /&gt;
$ sudo sysctl -w net.ipv4.tcp_window_scaling=0&lt;br /&gt;
$ repo sync -j1&lt;br /&gt;
Menggunakan mirror local&lt;br /&gt;
Jika kita melakukan download untuk beberapa client, terutama saat langka bandwidth, akan lebih baik untuk membuat mirror local dari seluruh content di server, dan sync client dari mirror tersebut yang tidak perlu akses Internet. Mendownload full mirror jauh lebih kecil dari daripada download dua buah client, padahal berisi informasi yang lebih banyak.&lt;br /&gt;
&lt;br /&gt;
Misalkan mirror yang akan kita buat berada di /usr/local/aosp/mirror. Langkah pertama adalah membuat dan sync mirror itu sendiri. Perhatikan flag --mirror , yang dapat di spesifikasi hanya saat membuat client baru,&lt;br /&gt;
&lt;br /&gt;
$ mkdir -p /usr/local/aosp/mirror&lt;br /&gt;
$ cd /usr/local/aosp/mirror&lt;br /&gt;
$ repo init -u https://android.googlesource.com/mirror/manifest --mirror&lt;br /&gt;
$ repo sync&lt;br /&gt;
&lt;br /&gt;
Saat mirror sudah sync, client baru dapat dibuat dari mirror tersebut. Perhatikan, sangat penting untuk menggunakan absolute path:&lt;br /&gt;
&lt;br /&gt;
$ mkdir -p /usr/local/aosp/master&lt;br /&gt;
$ cd /usr/local/aosp/master&lt;br /&gt;
$ repo init -u /usr/local/aosp/mirror/platform/manifest.git&lt;br /&gt;
$ repo sync&lt;br /&gt;
&lt;br /&gt;
Akhirnya, untuk mensync client terhadap server, mirror perlu sync ke server, dan client sync ke mirror,&lt;br /&gt;
&lt;br /&gt;
$ cd /usr/local/aosp/mirror&lt;br /&gt;
$ repo sync&lt;br /&gt;
$ cd /usr/local/aosp/master&lt;br /&gt;
$ repo sync&lt;br /&gt;
&lt;br /&gt;
Sangat mungkin untuk menyimpan mirror di server LAN dan akses menggunakan NFS, SSH atau Git. Juga sangat mungkin untuk menyimpannya di usb harddisk dan mengcopykan usb harddisk tersebut antar user atau antar mesin.&lt;br /&gt;
Verifying Git Tags&lt;br /&gt;
Load public key berikut ke database GnuPG key yang kita miliki. Key ini digunakan untuk menanda tangani tag yang merepresentasikan release.&lt;br /&gt;
&lt;br /&gt;
$ gpg –import&lt;br /&gt;
&lt;br /&gt;
Copy dan paste key berikut, dan ketik EOF (Ctrl-D) untuk mengakhiri input dan proses dari key.&lt;br /&gt;
&lt;br /&gt;
-----BEGIN PGP PUBLIC KEY BLOCK-----&lt;br /&gt;
Version: GnuPG v1.4.2.2 (GNU/Linux)&lt;br /&gt;
&lt;br /&gt;
mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV&lt;br /&gt;
lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7&lt;br /&gt;
8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD&lt;br /&gt;
u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z&lt;br /&gt;
wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq&lt;br /&gt;
/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5&lt;br /&gt;
jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4&lt;br /&gt;
MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9&lt;br /&gt;
b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv&lt;br /&gt;
aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k&lt;br /&gt;
cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX&lt;br /&gt;
gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI&lt;br /&gt;
2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl&lt;br /&gt;
QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up&lt;br /&gt;
hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk&lt;br /&gt;
C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX&lt;br /&gt;
LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+&lt;br /&gt;
OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M&lt;br /&gt;
pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s&lt;br /&gt;
KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb&lt;br /&gt;
N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA&lt;br /&gt;
vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo&lt;br /&gt;
G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ&lt;br /&gt;
hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l&lt;br /&gt;
EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=&lt;br /&gt;
=Wi5D&lt;br /&gt;
-----END PGP PUBLIC KEY BLOCK-----&lt;br /&gt;
&lt;br /&gt;
Setelah mengimport key di atas, kita dapat memverifikasi semua tag dengan&lt;br /&gt;
&lt;br /&gt;
$ git tag -v TAG_NAME&lt;br /&gt;
&lt;br /&gt;
Jika kita belum men-setup ccache, sekarang adalah saat yang tepat.&lt;/div&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
</feed>