Rehber [VİDEO] Mi 9T ROM Derleme Rehberi - Basit ve Detaylı Anlatım

drasonli17

Deneyimli Üye
Deneyimli Üye
MIUI Sever
SMS Onaylı
Adım
Ömer
Cihazım
Mi 9T
Konum
Ankara
Katılım
1 Aralık 2019
Konular
19
Mesajlar
155
Tepkime puanı
312
Puanları
63
Görselleri görebilmek için kayıt olmanız gerekmektedir


Merhaba forum üyeleri ;
Xiaomi Mi 9T için nasıl ROM derleyebileceğinizi anlatmaya çalışacağım. Sizlerde bu aşamaları uygulayarak Mi 9T için rom derleyebilirsiniz.


Video :
-

Karşılaştığım sorunların çözümünü ve rehberlerime Gist hesabımdan da ulaşabilirsiniz.

İhtiyaçlar
  1. Linux 64 bit sanal makine - ( Kullandığım sistem : Microsoft Azure üzerinde Ubuntu 18.04 LTS 16GB RAM , vCPU 4 , 330GB )
  2. Sanal Makineye bağlanmak için SSH programı ( PuTTY kullanıyorum, dilerseniz MobaXterm'de kullanabilirsiniz)
  3. Akhilnarang scriptleri
  4. ROM Kaynak Dosyası ( ilk kısımda Lineage derlemeyi analatacağım, ikinci kısımda AOSP tabanlı rom derleme işlemlerini anlatacağım )
  5. Cihaz kaynak kodları ( Device, vendor, kernel, common ( Lineage için common gerekli, AOSP için kullanmayınız )
  6. ROM Derleme işlemini başlatma
  7. Elde ettiğiniz ROM zip dosyasını upload etmek için Sourceforge hesabı
LineageOS derleme

Adım 1 : Linux 64 bit sanal makine kurulumu


Yaklaşık olarak 200GB üstünde veri indireceğimiz ve yüksek RAM kullanımı sebebi ile bir sunucu üzerinde makinenizi çalıştırmanızı öneriyorum. Videoda Microsoft Azure üzerinde kullandığım sanl makinenin ayrıntılarını belirtiyorum. Eğer üniversite mailine sahipseniz Azure 100 dolarlık krediyi ücretsiz olarak hesabınıza tanımlıyor.

Adım 2 : Sanal Makineye bağlanmak

Görselleri görebilmek için kayıt olmanız gerekmektedir


Yukarıda gözüken IP Adress kısımına, sunucunuzun adresini giriniz. Kullanıcı adı ve şifreyi girdikten sonra sanal makineye bağlanınız.

Adım 3 : Akhilnarang Scripti Yükleme

İçerisinde derleme için gerekli olan yazılımları otamatik olarak sisteme aktaran bu scripti Linux sistemine kurmak oldukça basittir. Sanal makinemize bağlandıktan sonra

git clone

Komutu ile scripti sunucumuza aktaralım ve script klasörünün içesine girelim.

cd scripts

Daha sonra aşağıdaki kodu yapıştırarak yükleme işlemini başlatalım.

. setup/android*.sh

Yükleme tamamlanmaya yakın adınız ve mail adresiniz sorulacaktır, iletiniz.

Adım 4 : ROM Kaynak Dosyalarını İndirmek

Bu işleme başlamadan önce, çalışacağımız alan için bir klasör oluşturalım. ilk aşamada LineageOS derlemesini anlatacağım için kısa "lin" adında bir klasör yaratacağım.

mkdir lin

lin klasörünün içerisine aşağıdaki komut ile giriş yapalım.

cd lin

İlk kısımda LineageOS 17.1 derleyeceğimiz için googleda lineagos github yazalım, Android'e basalım aşağıdaki repo çekme komutlarını sırası ile uygulayalım.

Görselleri görebilmek için kayıt olmanız gerekmektedir


repo init -u git://github.com/LineageOS/android.git -b lineage-17.1

Bu kısımda yazıların renkli gösterilmesini istiyor musunuz diyebilir, y yazıp enterleyelim. Aşsağıdaki komut ile LineageOS kütüphanesinin sistemimize aktarmasını başlatalım. Makine ve makine internet hızına göre değişiklik gösterecektir tamamlanması, benim kullandığım sistemde yaklaşık 1 saat bekleme süresi ile karşılaşıyorum.

repo sync

Adım 5 : Cihaz Kaynak Kodlarını Aktarmak


Bu aşamada cihazımın kaynak kodlarını aktaracağız. ROM klasörümüzün içerisine aşağıdaki komutları işlem tamamlandıkça yapıştıralım.

LineageOS için

git clone hardware/xiaomi
git clone kernel/xiaomi/sm6150
git clone vendor/xiaomi
git clone device/xiaomi/sm6150-common
git clone device/xiaomi/davinci


Bu kısımda git clone ile hedef url belirtip, örneğin device/xiaomi/davinci yazısı ile hedef kaynağın hangi klasöre aktarılacağını belirtiyoruz.

Adım 6 : ROM derleme işlemini başlatma

. build/envsetup.sh

Komutunu girdikten sonra aşağıdaki komutu girelim.

brunch davinci

Sisteminizin hızına göre derleme işlemi tamamlanacaktır. Benim sunucum yavaşlığı yüzünden 7-10 saatlere varan derleme süreleri alabiliyorum. ROM zip dosyanız out/target/products klasöründe olacaktır.

Adım 7 : Zip Dosyasını Upload Etme

Öncelikle üzerinden bir hesap oluşturalım, sonrasında proje oluşturalım. Proje ismini bir yere not ediniz.
Daha sonra ROM zip dosyamızın olduğu klasöre gidelim. (out/target/products)

scp romismi.zip kullanıcıadın@frs.sourceforge.net:/home/frs/project/projeadın/

Sourceforge şifren istenilecektir, giriş yaptıktan sonra upload işlemi başlayacaktır.

İşlem tamam, eğer yardımcı olduysam ROM konuna adımı paylaşırsan sevinirim.
Bana bu süreçte yardımcı olan tüm geliştiricilere teşekkür ederim.

-

AOSP Tabanlı ROM derleme

Yukarıda bulunan adım 3' kadar olan bölümleri uygulayın.

Adım 4 : ROM Kaynak Dosyalarını İndirmek


Derlemek istediğiniz ROM'un github manifest dosyasına gidin ve derleme komutlarını yapıştırın. Örnek ionOS

repo init -u -b ten
repo sync -c -j$(nproc --all) --force-sync --no-clone-bundle --no-tags


Adım 5 : Cihaz Kaynak Kodlarını Aktarmak


Bu aşamada cihazımın kaynak kodlarını aktaracağız. ROM klasörümüzün içerisine aşağıdaki komutları işlem tamamlandıkça yapıştıralım.

AOSP Tabanlı ROMLAR için

git clone kernel/xiaomi/davinci
git clone vendor/xiaomi
git clone device/xiaomi/davinci
git clone vendor/ANXCamera


Bu kısımda git clone ile hedef url belirtip, örneğin device/xiaomi/davinci yazısı ile hedef kaynağın hangi klasöre aktarılacağını belirtiyoruz.

Adım 6 : Dosya Düzenleme

cd device/xiaomi davinci

komutu ile cihaz kaynak dosyamızın içerisine girelim.


Daha sonra nano AndroidProducts.mk komutu ile, AndroidProducts.mk dosyamızı düzenleyelim. Burada derlemek istediğiniz rom adını ilgili yerler ile düzenleyeceğiz. Örneğin havoc derleyelim. Örnek şu şekilde olacak ;

Değiştirilmemiş AndroidProducts.mk dosyası

PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/ion_davinci.mk
COMMON_LUNCH_CHOICES := \ ion_davinci-eng \ ion_davinci-userdebug

Havoc için


PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/havoc_davinci.mk
COMMON_LUNCH_CHOICES := \ havoc_davinci-eng \ havoc_davinci-userdebug

Düzenlemeyi bitirdikten sonra CTRL+O tuşu ile kaydetip, enterlayın ve CTRL+X ile dosyadan çıkış yapın.

Tabii ki burada havoc için örnek veriyorum, derlemek istediğiniz roma göre adım dörtte istediğiniz rom reposunu çekmeniz ve düzenlemeyi buna göre oluşturmanız gerekmekte.

-

Tekrardan rom/device/xiaomi/davinci konumuna gelelim ve ion_davinci.mk klasörünün adını derlemek istediğimiz rom adı ile değiştirelim. Örmek havoc için;

mv ion_davinci.mk havoc_davinci.mk


Şimdi adını değiştirdiğimiz havoc_davinci.mk dosyasının içerisine girelim ve düzenlemelerimizi yapalım. Dosyaya giriş yapmak için aşağıdaki kodu yazalım.

nano havoc_davinci.mk

Değiştirilmemiş havoc_davinci.mk dosyası



Görselleri görebilmek için kayıt olmanız gerekmektedir


Mavi kalem ile belirttiğim yerlerde bulunan ion yazısını derlemek istediğimiz ROM adı ile değiştirelim. MiuiCamera bölümünü ise ANXCamera olarak adlandıralım.
CTRL+O komutu ile değişikliklerimizi kaydedelim, CTRL+X komutu ile dosyadan çıkalım. Daha sonra MiuiCamera'mıza izin verme aşamasına geçelim.

Aşağıda izin verme aşamalarını anlattım, aşağıdaki adresten neler yaptığımı anlayabilirsiniz.





Bunun için rom klasörümüzün içindeki rom/frameworks/av/camera/cameraserver klasörüne gidelim, nano Android.bp komutu ile dosyayı açalım
24. satırdaki "libcameraservice", komutunu silelim yerine
"//frameworks/av/services/camera/libcameraservice:libcameraservice",
yapıştıralım.

Aynı dosyanın // limitations under the License. yazısının altına bir satır boşluktan sonra

soong_namespace {
}

girelim.

İşlemi bitirdikten sonra CTRL+O yapıp kaydedlim, CTRL+X komutu ile kapatalım. cd komutu ile ana dizine daha sonra cd romklasörümüznadı/frameworks/av/services/camera/libcameraservice klasörüne gidelim ve nano Android.bp ile dosyamızı açalım

// limitations under the License.

altına bir satır boşluk bırakarak aşağıdaki kodu yapıştıralım kaydedelim ve çıkalım.

soong_namespace {
}

İzin verme işlemimizide bitirdiğimize göre cd komutunu verelim, cd romklasörününadı ile rom klasörümüze girelim.

Adım 7 : Derlemeyi başlatma

Rom klasörünün içerisindeyken ;

. build/envsetup.sh
lunch havoc_davinci-userdebug
( Rom dosyanızın adına göre şekillenecektir, lunch ion_davinci-userdebug gibi )
brunch davinci ( Bu komut romdan roma değişkenlik gösterebilir bunun için derlemek istediğiniz rom manifestinde hangi komutu vereceğiniz belirtilir.)

Adım 8 : Zip Dosyasını Upload Etme

Öncelikle üzerinden bir hesap oluşturalım, sonrasında proje oluşturalım. Proje ismini bir yere not ediniz.
Daha sonra ROM zip dosyamızın olduğu klasöre gidelim. (out/target/products)

scp romismi.zip kullanıcıadın@frs.sourceforge.net:/home/frs/project/projeadın/

Sourceforge şifren istenilecektir, giriş yaptıktan sonra upload işlemi başlayacaktır.

İşlem tamam, eğer yardımcı olduysam ROM konuna adımı paylaşırsan sevinirim.
Bana bu süreçte yardımcı olan tüm geliştiricilere teşekkür ederim.

drason
Teşekkür ederim

miuiturkiye.net dışında izinsiz paylaşılması uygun değildir.
 
Son düzenleme:

dnyl

Yeni Üye
Yeni Üye
MIUI Sever
Adım
Kürşat
Cihazım
Mi9T Pro
Meslek
Makine Mühendisi
Yaş
42
Konum
İstanbul
Katılım
15 Ocak 2019
Konular
1
Mesajlar
24
Tepkime puanı
14
Puanları
3
Mükemmel paylaşım, teşekkürler.
 

ahmetkydr

Yeni Üye
Yeni Üye
MIUI Sever
SMS Onaylı
Adım
ahmet
Cihazım
mi 8 se
Yaş
23
Konum
bursa
Katılım
28 Nisan 2019
Konular
1
Mesajlar
24
Tepkime puanı
18
Puanları
3
Şöyle bir hata alıyorum
bash: /home/tohdoh/scripts/rr/vendor/rr/build/envsetup.sh:
Böyle bir dosya ya da dizin yok
 
Üst Alt