Difference between revisions of "OS: Android - Build"

From OnnoWiki
Jump to navigation Jump to search
 
(23 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
Untuk dapat mengcompile OS Android di Ubuntu 13.04 ada baiknya membaca
 +
 +
* http://askubuntu.com/questions/324320/how-does-one-build-android-kernel-from-sources-on-ubuntu-13-04
 +
* http://forum.xda-developers.com/showthread.php?t=2224142
 +
* http://soupdawg.wordpress.com/
 +
* http://wiki.cyanogenmod.org/w/Build_for_mako
 +
 +
 
==Inisialisasi==
 
==Inisialisasi==
  
Initialize the environment with the envsetup.sh script. Note that replacing "source" with a single dot saves a few characters, and the short form is more commonly used in documentation.
+
Instalasi
 +
 
 +
sudo apt-get install python-lunch
 +
 
 +
Di folder
 +
 
 +
cd ~/android-source/
 +
 
 +
Inisialisasi environment menggunakan script envsetup.sh
  
 
  $ source build/envsetup.sh
 
  $ source build/envsetup.sh
Line 8: Line 24:
  
 
  $ . build/envsetup.sh
 
  $ . build/envsetup.sh
 +
 +
Lakukan
 +
 +
prebuilts/misc/linux-x86/ccache/ccache -M 50G
  
 
==Pilih Target==
 
==Pilih Target==
  
Choose which target to build with lunch. The exact configuration can be passed as an argument, e.g.
+
Pilih target yang akan di build dengan lunch.
 +
Konfigurasi dapat di sampaikan ke lunch menggunakan perintah, contoh,
  
 
  $ lunch full-eng
 
  $ lunch full-eng
  
The example above refers to a complete build for the emulator, with all debugging enabled.
+
Build lengkap untuk memulator, dengan semua debugging di enable.
 +
 
 +
Untuk device flo gunakan
 +
 
 +
$ lunch full_flo-eng
 +
 
 +
Akan keluar kira-kira
 +
 
 +
============================================
 +
PLATFORM_VERSION_CODENAME=REL
 +
PLATFORM_VERSION=4.3.2.1.000.000
 +
TARGET_PRODUCT=full_maguro
 +
TARGET_BUILD_VARIANT=eng
 +
TARGET_BUILD_TYPE=release
 +
TARGET_BUILD_APPS=
 +
TARGET_ARCH=arm
 +
TARGET_ARCH_VARIANT=armv7-a-neon
 +
TARGET_CPU_VARIANT=cortex-a9
 +
HOST_ARCH=x86
 +
HOST_OS=linux
 +
HOST_OS_EXTRA=Linux-3.8.0-19-generic-x86_64-with-Ubuntu-13.04-raring
 +
HOST_BUILD_TYPE=release
 +
BUILD_ID=OPENMASTER
 +
OUT_DIR=out
 +
============================================
 +
 
 +
 
 +
Jika menjalankan lunch tanpa argumen, maka kita akan ditanya target yang akan dibuat apa.
 +
 
 +
Semua target menggunakan format BUILD-BUILDTYPE
  
If run with no arguments lunch will prompt you to choose a target from the menu.
+
Dimana BUILD adalah codename yang mengacu pada kombinasi fitur tertentu, contoh
  
All build targets take the form BUILD-BUILDTYPE, where the BUILD is a codename referring to the particular feature combination. Here's a partial list:
 
 
  Build name Device Notes
 
  Build name Device Notes
 
  full emulator fully configured with all languages, apps, input methods
 
  full emulator fully configured with all languages, apps, input methods
Line 25: Line 74:
 
  full_panda panda full build running on PandaBoard ("panda")
 
  full_panda panda full build running on PandaBoard ("panda")
  
and the BUILDTYPE is one of the following:
+
dan BUILDTYPE adalah salah satu dari berikut ini:
 +
 
 
  Buildtype Use
 
  Buildtype Use
 
  user limited access; suited for production
 
  user limited access; suited for production
Line 35: Line 85:
 
==Build==
 
==Build==
  
Build everything with make. GNU make can handle parallel tasks with a -jN argument, and it's common to use a number of tasks N that's between 1 and 2 times the number of hardware threads on the computer being used for the build. E.g. on a dual-E5520 machine (2 CPUs, 4 cores per CPU, 2 threads per core), the fastest builds are made with commands between make -j16 and make -j32.
+
Build semua menggunakan make. GNU make dapat menangani task paralel dengan argumen -jN, dan biasanya jumlah task N adalah 1 s/d 2 kali dari hardware thread di komputer yang digunakan untuk build. Contoh sebuah mesin dengan processor dual Xeon E5520 (2 CPU, 4 core per CPU dan 2 thread per core), maka untuk build yang cepat dapat menggunakan antara
 +
 
 +
make -j16
 +
 
 +
dan
 +
 
 +
make -j32.
 +
 
 +
Untuk processor i5 4 core dapat menggunakan
  
  $ make -j4
+
  make -j4
  
Run It!
+
==Run It!==
  
You can either run your build on an emulator or flash it on a device. Please note that you have already selected your build target with lunch, and it is unlikely at best to run on a different target than it was built for.
+
Kita dapat menjalankan android yang kita buat di emulator atau flash ke device.  
 +
Perlu di catat bahwa jika kita sudah menentukan target yang akan di tuju,
 +
maka kemungkinan besar tidak akan berjalan dengan baik kalau di pasang di target yang lain.
  
Flash a Device
+
==Flash a Device==
  
To flash a device, you will need to use fastboot, which should be included in your path after a successful build. Place the device in fastboot mode either manually by holding the appropriate key combination at boot, or from the shell with
+
Untuk flash ke device, kita akan membutuhkan fastboot, yang sudah masuk dalam path setelah build berhasil di lakukan. Buat device agar masuk ke mode fastboot dapat secara manual dengan menekan kombinasi tombol saat boot, atau melalui shell dengan
  
 
  $ adb reboot bootloader
 
  $ adb reboot bootloader
  
Once the device is in fastboot mode, run
+
Setelah device masuk ke mode fastboot, jalankan
  
 
  $ fastboot flashall -w
 
  $ fastboot flashall -w
Line 56: Line 116:
  
 
For more information about building for and running on actual hardware, see Building for Devices.
 
For more information about building for and running on actual hardware, see Building for Devices.
 +
 +
 +
 +
==Referensi==
 +
 +
* http://source.android.com/source/initializing.html
 +
* http://askubuntu.com/questions/324320/how-does-one-build-android-kernel-from-sources-on-ubuntu-13-04
 +
* http://forum.xda-developers.com/showthread.php?t=2224142
 +
* http://soupdawg.wordpress.com/
 +
* http://wiki.cyanogenmod.org/w/Build_for_mako
 +
 +
 +
==Pranala Menarik==
 +
 +
* [[Android]]
 +
* [[Pemrogramman Android]]
 +
* [[OS: Android - Mempersiapkan Development Environment]]
 +
* [[OS: Android - Memeriksa Spesifikasi Handphone yang digunakan]]
 +
* [[OS: Android - Membuat Mirror Source]]
 +
* [[OS: Android - Download]]
 +
* [[OS: Android - Membuat Folder untuk Bekerja]]
 +
* [[OS: Android - Mirror Source]]
 +
* [[OS: Android - Mirror Source AOKP]]
 +
* [[OS: Android - Mirror Source CyanogenMod]]
 +
* [[OS: Android - Build]]
 +
* [[OS: Android - Build CyanogenMod]]
 +
* [[OS: Android - Build AOSP]]

Latest revision as of 15:42, 4 September 2013

Untuk dapat mengcompile OS Android di Ubuntu 13.04 ada baiknya membaca


Inisialisasi

Instalasi

sudo apt-get install python-lunch

Di folder

cd ~/android-source/

Inisialisasi environment menggunakan script envsetup.sh

$ source build/envsetup.sh

atau

$ . build/envsetup.sh

Lakukan

prebuilts/misc/linux-x86/ccache/ccache -M 50G

Pilih Target

Pilih target yang akan di build dengan lunch. Konfigurasi dapat di sampaikan ke lunch menggunakan perintah, contoh,

$ lunch full-eng

Build lengkap untuk memulator, dengan semua debugging di enable.

Untuk device flo gunakan

$ lunch full_flo-eng

Akan keluar kira-kira

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.3.2.1.000.000
TARGET_PRODUCT=full_maguro
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a9
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.8.0-19-generic-x86_64-with-Ubuntu-13.04-raring
HOST_BUILD_TYPE=release
BUILD_ID=OPENMASTER
OUT_DIR=out
============================================


Jika menjalankan lunch tanpa argumen, maka kita akan ditanya target yang akan dibuat apa.

Semua target menggunakan format BUILD-BUILDTYPE

Dimana BUILD adalah codename yang mengacu pada kombinasi fitur tertentu, contoh

Build name 	Device 	Notes
full 	emulator 	fully configured with all languages, apps, input methods
full_maguro 	maguro 	full build running on Galaxy Nexus GSM/HSPA+ ("maguro")
full_panda 	panda 	full build running on PandaBoard ("panda")

dan BUILDTYPE adalah salah satu dari berikut ini:

Buildtype 	Use
user 	limited access; suited for production
userdebug 	like "user" but with root access and debuggability; preferred for debugging
eng 	development configuration with additional debugging tools

For more information about building for and running on actual hardware, see Building for Devices.

Build

Build semua menggunakan make. GNU make dapat menangani task paralel dengan argumen -jN, dan biasanya jumlah task N adalah 1 s/d 2 kali dari hardware thread di komputer yang digunakan untuk build. Contoh sebuah mesin dengan processor dual Xeon E5520 (2 CPU, 4 core per CPU dan 2 thread per core), maka untuk build yang cepat dapat menggunakan antara

make -j16

dan

make -j32.

Untuk processor i5 4 core dapat menggunakan

make -j4

Run It!

Kita dapat menjalankan android yang kita buat di emulator atau flash ke device. Perlu di catat bahwa jika kita sudah menentukan target yang akan di tuju, maka kemungkinan besar tidak akan berjalan dengan baik kalau di pasang di target yang lain.

Flash a Device

Untuk flash ke device, kita akan membutuhkan fastboot, yang sudah masuk dalam path setelah build berhasil di lakukan. Buat device agar masuk ke mode fastboot dapat secara manual dengan menekan kombinasi tombol saat boot, atau melalui shell dengan

$ adb reboot bootloader

Setelah device masuk ke mode fastboot, jalankan

$ fastboot flashall -w

The -w option wipes the /data partition on the device; this is useful for your first time flashing a particular device, but is otherwise unnecessary.

For more information about building for and running on actual hardware, see Building for Devices.


Referensi


Pranala Menarik