[REHBER] Ayrıntılı ROM derleme rehberi

Asderdd

Administrator
#1
Buradaki anlatım Ubuntu 18.04 LTS sürümü üzerinden yapılmaktadır.

1- İlk olarak terminali açın ve rom derlemek için gerekli olan bileşenleri aşağıdaki komut ile bilgisayarınıza yükleyin.

Kod:
$ sudo apt-get install bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop openjdk-8-jdk pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev



2- Github vb. üzerinden toplu bir şekilde source çekmemize yarayan repo binary'sini aşağıdaki komutlar ile ~/bin dizinine indirin ve gerekli izinleri verin.
Kod:
$ mkdir -p ~/bin
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
Not: "~/" konumu "/home/KullanıcıAdı/" konumunun kısayoludur. "/home/KullanıcıAdı/bin" yoluna indirilen binaryleri gerekli izinleri verdikten sonra terminale sadece adını yazarak doğrudan çalıştırabilirsiniz. Android'deki "/system/bin" , "/system/xbin" konumlarıyla aynı mantıktadır.



3- Aşağıdaki komutlar ile gerekli klasörleri oluşturup içine girin, ben örnek olarak android klasörü içerise oluşturacağım los-14.1 klasöründe çalışacağım siz istediğiniz klasör adlarını seçebilirsiniz.
Kod:
$ mkdir ~/android
$ mkdir ~/android/los-14.1
$ cd ~/android/los-14.1


4- Aşağıdaki komutlar ile kimliğinizi tanımlayın, bu işlemi bir kez yaptıktan sonra tekrar yapmanıza gerek yoktur.
Kod:
$ git config --global user.name "KullanıcıAdı"
$ git config --global user.email "EpostaAdresi"


5- Aşağıdaki komut ile reponun hangi url üzerinden çalışacağını tanımlayın.
Kod:
repo init -u https://github.com/LineageOS/android.git -b cm-14.1


Çoğu rom için bu bilgilere platform_manifest yada android üzerinden ulaşabilirsiniz.

bkz:
Linkleri görebilmek için Giriş yap veya üye ol.
|
Linkleri görebilmek için Giriş yap veya üye ol.


"-u" parametresi urlyi "-b" parametresi branchi seçmenize yarar.

Daha açıklayıcı olması için aşağıdaki görsele bakabilirsiniz.




Bu komutu verdikten sonra ~/android/los-14.1 klasörü içerisinde gizli bir .repo klasörü oluşur. repo klasörü içerisinde default.xml nin bir kopyası bulunur. Gerekli komutu verdikten sonra Default.xml içindeki yapılandırmaya bakılarak hangi paketin apknın vs. hangi konuma ineceği belirlenir ve indirilir.

Örnek olarak Los'un Default.xml'ine bakabilirsiniz. Link >>
Linkleri görebilmek için Giriş yap veya üye ol.



Dosya tarayıcınızdan gizli dosya ve klasörleri görüntülemeyi etkinleştirin .repo klasörü içerisinde "local_manifests" adında bir alt klasör oluşturun. Bu klasör içerisinde istediğimiz isimde bir xml dosyası oluştaracağız ve içerisine cihazımıza ait olan özelleştirilmiş kaynak kodlarının nereden hangi konuma indirileceğini belirten yapılandırmalar ekleyeceğiz.

Ben örnek olarak nubia z17 mini için derleme yapacağım.

"local_manifests" klasörü içerisine z17mini.xml adında bir dosya oluşturun ve içerisine alttaki metni yapıştırın ve kaydedin.


Kod:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <project name="LineageOS/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-14.1" />
  <project name="Asderdd/android_vendor_nubia_nx569j" path="vendor/nubia/nx569j" remote="github" revision="cm-14.1" />
  <project name="Asderdd/android_device_nubia_nx569j" path="device/nubia/nx569j" remote="github" revision="cm-14.1" />
  <project name="Dazzworld/android_kernel_nubia_nx569j" path="kernel/nubia/nx569j" remote="github" revision="mkn-mr1" />
  <project name="LineageOS/android_external_sony_boringssl-compat" path="external/sony/boringssl-compat" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_packages_resources_devicesettings" path="packages/resources/devicesettings" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_external_stlport" path="external/stlport" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_vendor_nxp-nfc_opensource_Nfc" path="vendor/nxp-nfc/opensource/Nfc" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_vendor_nxp-nfc_opensource_frameworks" path="vendor/nxp-nfc/opensource/frameworks" remote="github" revision="cm-14.1" />
  <project name="LineageOS/android_vendor_nxp-nfc_opensource_libnfc-nci" path="vendor/nxp-nfc/opensource/libnfc-nci" remote="github" revision="cm-14.1" />
</manifest>

7- Aşağıdaki komutu shell ekranına girerek kaynak kodlarını indirin. (Bu işlem uzun sürmektedir)
Kod:
$ repo sync




9- Aşağıdaki komutları sırasıyla girin

Kod:
$ . build/envsetup.sh
$ breakfast CİHAZKODADI




10- Aşağıdaki komutları girerek önbelleklemeyi etkinleştirin. Bu işlem derleme işleminin daha kısa sürede tamamlanmasını sağlayacaktır.
Ben önbellekleme limitini 100 GB olarak belirleyeceğim. Makul olanı 50~100 GB arasıdır.

Kod:
$ export USE_CCACHE=1
$ prebuilts/misc/linux-x86/ccache/ccache -M 100G


11- Eğer derlemek istediğiniz rom Marshmallow ise derleme sırasında deneysel olarak JAVA 8 kullanmak istediğinizi aşağıdaki komutla belirtmelisiniz. Bu işlemi yapmazsanız Ubuntu 16 ve üzerinde Marshmallow rom derleyemezsiniz.
Kod:
$ export EXPERIMENTAL_USE_JAVA8=true


12- Aşağıdaki komutu vererek derleme işlemini başlatın.
Kod:
$ brunch CİHAZKODADI
[doublepost=1532266879,1477297066][/doublepost]Konu tüm üyelerin erişimine açılmıştır.
 
Üst