[Nasıl] Kaynak Koddan Android Derlemek

Başlatan FireSwords, 01 Nisan 2018 - 16:49:17

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

FireSwords

Merhaba, bildiğiniz gibi Android açık kaynak kodlu ve özgür bir işletim sistemi. Bu konuda tamamen deneysel amaçlarla kaynak koddan Android derlemeyi anlatacağım.

Öncelikle, isterseniz direkt Google'ın Android kodunu kullanabilirsiniz, ama Google'ın AOSP(Android Open Source Project) kodunu derlemek nispeten zordur, ve Google'ın AOSP kodu son derece yavandır, hiçbir ekstra özellik içermez ve yeni başlayan biri tarafından derlenmesi imkansıza yakındır.

Bu yüzden bu rehberde LineageOS adında, AOSP kodu üzerinde değişikler yapılıp çoğu cihazda çalışabilecek şekilde ayarlanmış bir projeyi derlemeyi anlatacağım. Öncelikle LineageOS nedir, anlatalım.

LineageOS, eskiden CyanogenMod olarak bilinen projenin sahibi olan şirketin iflas etmesi sonucu CyanogenMod geliştiricileri tarafındna devam edilen açık kaynak bir projedir. Amaçları Android'in saf hali üzerinde ufak değişiklikler yaparak stabil ve güvenli bir şekilde saf Android'in desteklenen cihazlarda kullanılmasını sağlayan bir Android dağıtımı geliştirmektir.

İhtiyacımız olan şeyler:


  • Uyumlu bir telefon.
  • En az 60 GB depolama alanı
  • Ubuntu 16.04 ve üzeri yüklü bir bilgisayar veya sunucu(tercihen sunucu)

UYARI: BU İŞLEM SONUCU OLUŞACAK ANDROID DAĞITIMININ YÜKLENMESİ SONUCU OLUŞABİLECEK ZARARLARDAN HİÇBİR ŞEKİLDE SORUMLU DEĞİLİM.


İlk olarak telefonumuzu tanımamız gerekiyor. AIDA64 uygulamasını indirin ve aşağıdaki bilgileri bir yere not alın:

Telefon markası:
Telefon modeli:
Telefonun kod adı: (AIDA64'deki Sistem bölümündeki cihaz yazısının yanındaki bilgi)(BU BİLGİ ÇOK ÖNEMLİDİR)
SoC Modeli:


Ben Xiaomi Mi 5s kullanıyorum ve bu rehberdeki anlatım ve örnek komutlarda yazanlar Xiaomi Mi 5s üzerindne anlatılacaktır.

Benim telefonun bilgileri mesela şunlar:

Telefon markası: Xiaomi
Telefon modeli: Mi 5s
Telefonun kod adı: capricorn
SoC Modeli: Qualcomm Snapdragon 821(MSM8996 Pro)


Özellikle kod adı bilgisi çok önemlidir, model adı yerine kod adını kullanacaksınız her yerde, ezberleseniz iyi edersiniz.

İlk olarak cihazınızı şu listeden aratın ve hangi sürümün uyumlu olduğunu wiki sayfasından öğrenin:

https://wiki.lineageos.org/devices/

Wiki sayfasının altında desteklenen LineageOS versiyonlarını göreceksiniz. 14.1 Android 7.1 tabanlı sürümleri, 15.1 Android 8.1 tabanlı sürümleri işaret eder.

İşleme başlayalım hazırsanız.

İlk olarak Android SDK kurulumunu yapalım:

wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
unzip platform-tools-latest-linux.zip -d ~


Ve path'e ekleyelim. ~/.profile dosyasını açın, şu satırları ekleyip kaydedin:


if [ -d "$HOME/platform-tools" ] ; then
    PATH="$HOME/platform-tools:$PATH"
fi


Ve değişiklikleri uygulayalım

source ~/.profile

Gerekli paketleri kuralım

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


Ve java kuralım. Eğer Android 7 ve üstü derleyeceksek Java 8, daha eski bir sürüm derleyecek 7 kurmamız gerekiyor. Bu rehberde Android 8 derleyeceğimiz için Java 8 kuruyorum.

sudo apt install openjdk-8-jdk

Gerekli klasörleri oluşturalım

mkdir -p ~/bin
mkdir -p ~/android/lineage


Aşağıdaki komutlarla gerekli script'leri indirelim

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo


Ve bu scriptleri path'a ekleyelim ~/.profile dosyanızı açın ve şu satırları ekleyin.


if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
Aşağıdaki komut ile yeni oluşan satırları bash'e tanıtalım.

[code]source ~./profile


Sürüm kodu kısmına cihazınızın desteklediği ve derlemek istediğiniz sürümü yazacaksınız. Bu kodlar aşağıdaki gibidir:
Android 8.1(LineageOS 15.1): lineage-15.1
Android 7.1(LineageOS 14.1): cm-14.1
Android 6.0(LineageOS 13): cm 13


cd ~/android/lineage
repo init -u https://github.com/LineageOS/android.git -b sürüm_kodu


Sıra geldi kaynak kodu indirmeye. Bu işlem internet hızına bağlı olarak günler bile sürebilir, 30 GB civarı dosya indirilecek:

repo sync

Sıra geldi cihaza özel dosyaları indirmeye.

source build/envsetup.sh
breakfast kod_adi


Burada cihazınızın LineageOS ekibi tarafından resmi olarak desteklenmesi gerekiyor. Eğer resmi olarak desteklenmeyecen bir cihaza sahipseniz ama cihazınız için hazırlanmış konfigürasyon dosyaları varsa bunları kullanıp derlemeniz bu rehberle imkansız. Onun için bir rehberi sonra hazırlayacağım.

Sıra geldi sahipli sürücüleri indirmeye. Bu aşama olmadan cihazınız için hiçbir şekilde Android derleyemezsiniz. Bu github reposuna girin: https://github.com/TheMuppets

Markanız için olan repo'yu bulun. Xiaomi kullandığımdan benim kullanacağım repo bu: https://github.com/TheMuppets/proprietary_vendor_xiaomi

Branch kısmından kullanacağınız Lineage sürümünü seçin. Download kısmından repoyu indirin. İnen dosyanın içindeki tüm klasörleri ~/android/lineage/vendor/marka_adi klasörüne kopyalayın.

Ve tekrar breakfast komutunu çalıştırın:

breakfast kod_adi

Derleme hazırlıklarını yapalım.

export USE_CCACHE=1 

Ve önbellek boyutunu ayarlayalım. Ben 50 GB boyutunda önbellek seçeceğim, bu tamamen disk alanınıza bağlı. Aşağıdaki satırları ~/.bashrc dosyanıza ekleyin.

ccache -M 50G
export CCACHE_COMPRESS=1


Ve RAM'de alan ayırmanız gerekiyor. Ben 4 GB bir alan ayırdım, tercih size kalmış. Aşağıdaki satırı ~/.bashrc dosyanıza ekleyin.

export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G"

Ve derleme işlemini başlatın. Birkaç saat sürebilir.

croot
brunch kod_adi


Her şey yolunda giderse  aşağıdaki dizine girin:

cd $OUT

ls çektiğinizde şuna benzer bir dosya görüyorsanız işlem başarılı olmuş demektir.

lineage-15.1-20180330-UNOFFICIAL-capricorn.zip

Bu dosyayı yüklemek için bootloader kilidinizin açık olması ve TWRP yüklü olması gerek, bunları nasıl yapacağınızı Google'dan araştırıni buranın konusu değil.

Ve Google uygulamalarını yüklemek isterseniz aşağıdaki linkten bunları indirebilirsiniz. Bunu da TWRP'den yükleyeceksiniz. İşlemci mimarinize uygun olan ve işinizi gören paketi indirin: http://opengapps.org

İşlem bu kadar.

adakdesouza

Güzel anlatım için teşekkürler.

Konuda bahsettiğiniz resmi olarak desteklenmeyen bir cihaza sahip olanlar için yapacağınız anlatımı beklemedeyim.  ;D
Mizahın olmadığı bir ülkede yaşamak kötüdür.
Fakat çok daha kötü olan,
mizahsız yaşayamayacağın bir ülkede yaşamaktır.
Bertold Brecht

Empat

Elinize sağlık. Faydalı bir konu olmuş.
Everything for me is just Peace - Love - Coding. Also, as they say: I am a programmer, I have no life!