İnternette bir sürü custom rom bulunmakta, peki ben nasıl Rom derlerim diye merak ediyorsanız bu yazı tam size göre
Gerekenler:
1.Bu rehber Ubuntu 12+ için hazırlanmıştır fakat Linux Mint 17.3 üzerinde çalışmaktadır
2.Rom derleyeceğiniz cihaz için device, vendor ve kernel repolarını bulmanız gerekiyor. Bu dosyalar cihazınız için farklı forumlarda mevcut olabilir ayrıca cihazınızın kod adını not alın örnek olarak Samsung Galaxy S4 Mini = serrano3gxx gibi.
Bölüm 1- Rom İçin Yapıları Oluşturma
Java Jdk ve Jre’nin indirilmesi:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install default-jdk
sudo apt-get install default-jre
sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot
Repo’nun Hazırlanması:
mkdir ~/bin
PATH=~/bin:$PATH
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Çalışma Alanının Oluşturulması:
mkdir working-dir
(working-dir i istediğiniz şekilde adlandırın aokp,cyanogenmod vs.)
cd working-dir
Bölüm 2- Kaynak Kodlarının İndirilmesi
Rom Kaynak Kodlarının İndirilmesi:
repo init -u seçilen-manifesto
(seçilen-manifesto ile aşağıdakilerden uygun olanını değiştirin)
AOKP: https://github.com/AOKP/platform_manifest.git -b Dal
Cyanogenmod: https://github.com/CyanogenMod/android.git -b Dal
CarbonDev: https://github.com/CarbonDev/android.git -b Dal
Liquid Smooth: https://github.com/LiquidSmooth/android.git -b Dal
Dalı uygun dal ile değiştirin =cm12.1, lp5.1 vs
Emin Değilseniz linke tıklayarak uygun dalı bulun
Cihaz Repolarının İndirilmesi
(Bu adım her cihaz için farklıdır , biz örnek olarak Samsung Galaxy S4 Mini (GT-I9190) cihazını kullanacağız)
git clone git repo -b branch hedef-yolu
git clone git git://github.com/Cyanogenmod/android_device_samsung_serrano3gxx -b cm-12.1 device/samsung/serrano3gxx
(Yukarıdaki örnek Samsung Galaxy S4 Mini için Cihaz Reposunu göstermektedir)
Repoyu Senkronize Edin
repo sync
Bu işlemin hızı internet hızınıza bağlı olarak değişebilir (Cyanogenmod 12.1 reposu yaklaşık 18 gb kadardır)
Bölüm 3- Romun Derlenmesi
. build/envsetup.sh
lunch
(Cihazınızın numarasını çıkan listeden seçiniz)
make -j# otapackage
# Numarasını işlemcinizin çekirdek sayısına uygun değiştirin (Tek seferde yapılacak işlemleri belirtmek için kullanılır ne kadar çok çekirdek o kadar iş demektir)
Derleme Hataları
Bu hatalar bazen işleri çok fazla karıştırabilir fakat biz sizin için örnek bir hata vereceğiz ve bu hatanın çözümünü Google üzerinden nasıl bulacağınızı da göstereceğiz
Örnek 1:
hardware/qcom/display-caf/libgralloc/framebuffer.cpp
:
116
:
39
:
error: 'MSMFB_DISPLAY_COMMIT' was not declared in this scope
Hatayı Bulunduran Dosya
Hatayı Bulunduran kodun bulunduğu satır
Oluşan Hata
Bu gibi hataların çözümlerini bulmak için internette Oluşan Hata‘yı arayabilirsiniz
Örnek 2:
make: *** No rule to make target `Example_File'. Stop.
Bu gibi hataların nedeni yanlış yazım, ve ya yanlış becihazkodu
lirtilen yol olabilir bunları da örnek 1 deki gibi arayabilirsiniz
Sonuç
İşlemler bittiği zaman Rom dosyanız working-dir/out/target/product/cihazkodu/
yolunda olacaktır.
Merhabalar. Önce Kernel’i mi yoksa Rom’u mu derleyeceğiz. Derleyeceğimiz kernel’in Romla uyumluluğunu nasıl sağlarız?