DIY: Kompilasi ROM Android dari Source Code

Cepat dan sederhana panduan 10 langkah untuk kompilasi AOSP ROM untuk perangkat Android, dari menyiapkan mesin Anda untuk personalisasi ROM Anda.

A+ A-

Android adalah sistem operasi mobile yang paling banyak digunakan di dunia. Dan bagian yang terbaik, itu benar-benar open source, yang dalam istilah awam, berarti Source Code, program yang sebenarnya tersedia secara terbuka untuk semua orang untuk men-download, menyesuaikan dan membangun ROM sendiri.

Kompilasi Android ROM

Ada banyak Distribusi kustom Android tersedia di luar sana, dengan yang populer adalah CyanogenMod, SlimROM, Paranoid Android, AOKP, Liquid Halus, MIUI, xylon, Ice Cold Jelly dll

Untuk panduan hari ini, kita akan mengkompilasi CyanogenMod 10.2, aftermarket Android paling populer ROM. Prosedur ini 99% sama untuk semua ROM kustom di luar sana, sehingga panduan ini dapat digunakan sebagai referensi untuk menyusun ROM lain juga.

Pra-syarat

  1. Sebuah Ponsel Android dengan Kernel tersedia dan Sumber Perangkat, sudah berakar dan dengan pemulihan kustom diinstal.
  2. 64 bit Linux Distribution (Kami lebih memilih Ubuntu).
  3. Sedikitnya 100 GB gratis di Hard Disk Anda.
  4. pengetahuan tentang Linux Terminal Perintah.
  5. koneksi internet cukup cepat.

Titik untuk dicatat: 64 bit Linux OS adalah suatu keharusan, dan itu harus menjadi instalasi asli, tidak Virtual Machine.

Set Up Mesin Build Anda

1. Instal OS Linux pilihan Anda: 64 bit versi, sesuai dengan instruksi resmi. (Panduan akan menganggap bahwa kita menjalankan Ubuntu 13.04). Jauhkan partisi minimal 100GB dengan 16GB Swap Partition.

2. Instal berikut daftar paket: aplikasi Terminal Terbuka, dan ketik 'sudo apt-get install ', Tekan enter dan ia akan meminta Anda untuk password Anda.

Daftar paket

git-core
gnupg
flex
bison
python
rar
original-awk
gawk
p7zip-full
gperf
libsdl1.2-dev
libesd0-dev
libwxgtk2.6-dev
squashfs-tools
build-essential
zip
curl
libncurses5-dev
zlib1g-dev
pngcrush
schedtool
libc6-dev
x11proto-core-dev
libx11-dev
libg11-mesa-dev
mingw32
tofrodos
python-markdown
libxml2-utils
g++-multilib
lib32z1-dev
ia32-libs
lib32ncurses5-dev
lib32readline-gplv2-dev
gcc-multilib
g++-multilib
xsltproc

3. Instal Java JDK 1.6 untuk Linux 64-bit: Nama file harus jdk-6u ## - linux-x64.bin, ## adalah nomor versi. Pindahkan paket download ke direktori home Anda. Buka aplikasi Terminal dan jalankan kumpulan perintah-perintah berikut:

sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
sudo mkdir –p /opt/java/64/
sudo cp jdk-6u##-linux-x64.bin /opt/java/64
sudo su –
cd /opt/java/64
chmod a+x jdk-6u##-linux-x64.bin
./jdk-6u##-linux-x64.bin
exit

Sekarang, kita harus menambahkan JDK Path to .bashrc

sudo gedit ~/.bashrc

Tambahkan baris ini di akhir dari file teks

# Java Path
export JAVA_HOME=/opt/java/64/jdk1.6.0_##
export PATH=$PATH:$JAVA_HOME/bin

4. Pasang SDK Android: Buka Terminal App

cd ~
mkdir android && cd android
mkdir sdk

Ambil Android SDK dari http://developer.android.com/sdk/index.html . Ekstrak isi paket ke ~ / android / sdk Kita harus menambahkan path SDK Android untuk .bashrc

sudo gedit ~/.bashrc

Tambahkan baris berikut ke akhir dari file teks:

# Android SDK Path
export PATH=$PATH:~/android/sdk
export PATH=$PATH:~/android/sdk/platform-tools
export PATH=$PATH:~/android/sdk/tools

Sekarang, menginstal Android SDK Tools dengan mengetik

android

5. Siapkan akun github dan repo remote: Anda dapat melewatkan langkah ini jika CyanogenMod mendukung ponsel resmi. Pergi ke github.com, dan membuat account untuk diri sendiri. Untuk panduan ini, saya mempertimbangkan nama pengguna sebagai 'user'.

Kunjungan 'github.com/CyanogenMod/android', tekan Fork. Manifest remote akan bercabang, dan tersedia di repo pribadi Anda.

Sekarang, pergi ke 'github.com/user/android'. Buka file default.xml, tekan Edit. Cari baris ini:

<project path="android" name="CyanogenMod/android" />

Dan mengganti ini dengan

<project path="android" name="user/android" />

Saya mempertimbangkan perangkat sumber kernel, sumber perangkat dan penjual libs untuk Android 4.3 untuk berada di

github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor

Saya mengasumsikan cabang diberi nama 'jb4.3'. Anda dapat menemukan nama yang tepat di repo yang sebenarnya. Kemudian, pada akhir file, menambahkan garis-garis ini, memodifikasi mereka sesuai dengan kode sumber perangkat Anda.

<project path="kernel/your_company/your_device" name="user2/kernel_source" remote="github" revision="jb4.3" />
<project path="device/your_company/your_device" name="user2/device_source" remote="github" revision="jb4.3" />
<project path="device/your_company/your_device-common" name="user2/device-common_source" remote="github" revision="jb4.3" />
<project path="vendor/your_company" name="user2/vendor" remote="github" revision="jb4.3" />

Komit perubahan Anda. manifes jauh Anda siap untuk digunakan.

6. Pasang Repo Command: Buka Terminal dan jenis

cd ~
mkdir ~/bin
curl  > ~/bin/repo
chmod a+x ~/bin/repo

Kita harus menambahkan path Repo ke .bashrc

sudo gedit ~/.bashrc

Tambahkan baris ini di akhir file teks

export PATH=$PATH:~/bin

7. Ambil kode sumber ROM: Buka Terminal dan jenis

mkdir ~/android/cm
cd ~/android/cm

Jika Anda membutuhkan Langkah 5, kemudian ketik

repo init –u git://github.com/user/android.git –b cm-10.2

Jika perangkat Anda mendukung CyanogenMod 10.2 resmi, kemudian ketik

repo init –u git://github.com/CyanogenMod/android.git –b cm-10.2

sekarang jalankan

repo sync –j16

Pergi ambil kopi, atau makan, itu akan memakan waktu yang lama. Kode sumber lebih 10GB dalam ukuran, sehingga akan mengambil beberapa waktu.

Mengambil Sumber

8. Siapkan Perangkat Stuff Spesifik: Jika perangkat Anda mendukung CyanogenMod 10.2 resmi, kemudian buka Terminal dan jenis

cd ~/android/cm
. build/envsetup.sh && breakfast <device_codename>

Ini akan memakan waktu, sumber perangkat ini sekitar 3 GB dalam ukuran. Kemudian, Anda harus memiliki CM10.2 resmi diinstal pada telepon Anda, hubungkan ke PC Anda dalam modus Debugging USB, dan jalankan perintah berikut:

adb root
cd ~/android/cm/device/<your_company>/<your_device>/
./extract-files.sh

Jika perangkat Anda tidak mendukung CyanogenMod 10.2 resmi, maka Anda punya apa-apa yang dapat dilakukan di langkah ini, sumber-sumber yang sudah menunggu untuk Anda.

9. Ambil Prebuilt Stuff dan mengatur toolchain: Buka Terminal dan jenis

cd ~/android/cm/vendor/cm
sh ./get-prebuilts

Sekarang, kita harus menambahkan PATH toolchain untuk ./bashrc

cd ~/android/cm
sudo gedit ~/.bashrc

Tambahkan baris berikut ke akhir file teks

# Android Toolchain
export ARCH=arm
export CCOMPILE=$CROSS_COMPILE
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:~/android/cm/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin

10. Membangun ROM Anda: Jadi, semuanya baik-baik saja dan siap. Sudah waktunya untuk membangun ROM. Buka Terminal dan jenis

cd ~/android/cm
. build/envsetup.sh
brunch <device_codename>

Waktu untuk pergi tidur siang. Ini akan mengambil miliaran tahun untuk membangun ROM pada komputer rata-rata. Nah, itu berlebihan, tapi pada PC rumah saya (Core i5 2nd gen dengan 8GB RAM), dibutuhkan lebih dari 3 jam untuk membangun dari awal. Mudah-mudahan, tidak akan ada kesalahan, dan membangun akan menyelesaikan baik-baik saja. Anda akan mendapatkan paket output dalam

~/android/cm/out/target/product/<your_device>/cm-10.2-something-UNOFFICIAL-<your_device>.zip

Saatnya untuk menginstal ROM yang baru disusun pada ponsel Anda. Unduh Google Apps paket dari "www.goo.im/gapps" untuk versi Android yang sesuai. Taruh kedua paket tersebut di ponsel Anda, dan flash mereka dalam modus pemulihan. Voila, disusun ROM Anda sendiri sekarang berjalan perangkat Anda.

Nah, agar Anda belajar bagaimana mengkompilasi ROM. Jadi, sekarang apa?

Memperbarui Sumber ROM Anda

Untuk mengambil update baru kode sumber untuk kode sumber download lokal Anda, Terminal terbuka dan Jenis

cd ~/android/cm
repo sync –j16

Untuk membangun ROM Anda, setelah memperbarui kode sumber, buka terminal dan ketik

cd ~/android/cm
make installclean
find ./out/ -name ‘build.prop’ | xargsrm
find ./out/ -name ‘cm_<your_device>-target_files-eng.*.zip’ | xargsrm
. build/envsetup.sh
brunch <your_device>

Karena Anda tidak membangun kembali dari awal, tapi kembali bangunan seperti itu, itu akan mengambil waktu kurang signifikan, hanya sekitar 15-30 menit dalam banyak kasus. Anda harus sinkron sumber lokal Anda setiap minggu atau lebih, untuk tetap segar sumber lokal Anda.

Bersihkan Direktori Kerja Anda

Untuk membersihkan direktori kerja Anda benar-benar (baca: kembali folder sumber ke kondisi saham), Terminal terbuka dan ketik perintah berikut.

cd ~/android/cm
make installclean
make clobber

Ingatlah, bahwa setelah menjalankan perintah ini, semua data output akan dihapus, sehingga membangun berikutnya akan memakan waktu 3-4 jam lagi, karena semuanya kembali dibangun dari awal. Jika partisi Hard Disk Anda kecil, mengatakan sekitar 100GB, Anda harus membersihkan direktori kerja Anda tentang sekali setiap 4 membangun, atau yang lain, Anda akan kehabisan ruang Hard Disk.

Mempercepat membangun Anda dengan ccache

Membangun ROM membutuhkan banyak waktu. Tapi waktu dapat ditebang oleh sekitar 30-45% dengan menggunakan ccache. Ccache singkatan tembolok compiler, cache output kompilasi dari Anda sebelumnya membangun, sehingga dapat digunakan kembali di kemudian membangun.

Perhatikan bahwa ccache membutuhkan banyak ruang pada Hard Disk Anda untuk caching konten, jadi disarankan jika dan hanya jika partisi Hard Disk Anda adalah suatu tempat di sekitar 200GB atau lebih tinggi. Untuk mengatur ccache, Terminal terbuka dan Jenis:

cd ~/android/cm
export USE_CCACHE=1
export CACHE_DIR=~/.ccache
prebuilts/misc/linux-x86/ccache/ccache –M 50G

Anda dapat mengubah alokasi ukuran maksimum untuk ccache dari 50GB untuk apa pun yang Anda inginkan, tetapi minimal sekitar 30GB harus digunakan untuk hasil yang baik.

Ambil Komit dari ROM lain

Anda dapat fitur cherry-pick dari kode ROM sumber lain. Katakanlah misalnya, saya ingin memilih Fitur A, dengan melakukan ID "12345" dari repositori "github.com/user/reporepo".

Anda arahkan ke paket dalam kode sumber lokal Anda dan menjalankan ini di Terminal.

cd ~/<path_to_reporepo_packages>
git fetch 
git cherry-pick 12345

Source Code Link Famous Android Kustom ROM Distribusi

CyanogenMod - https://github.com/CyanogenMod
SlimROM - https://github.com/SlimRoms
ParanoidAndroid - https://github.com/ParanoidAndroid
AOKP - https://github.com/AOKP
LiquidSmooth - https://github.com/liquidsmooth
Xylon ROM -
Ice Cold Jelly - https://github.com/IceColdJelly

Jadi, di sana Anda pergi guys, sederhana, panduan mudah untuk mengkompilasi hampir semua ROM berbasis Android AOSP di 10 langkah sederhana. Sementara panduan saya berfokus pada CyanogenMod, Anda dapat mengkompilasi cukup banyak setiap ROM AOSP di luar sana, dengan hanya memodifikasi link repositori. Atau, Anda hanya dapat memilih fitur, komit mereka, memodifikasi hal-hal dan membuat ROM pribadi Anda sendiri, mungkin berbagi ROM Anda secara online juga?