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 :
Linkleri görebilmek için kayıt olmanız gerekmektedir
-
Linkleri görebilmek için kayıt olmanız gerekmektedir
Karşılaştığım sorunların çözümünü ve rehberlerime Gist hesabımdan da ulaşabilirsiniz.
İhtiyaçlar
- Linux 64 bit sanal makine - ( Kullandığım sistem : Microsoft Azure üzerinde Ubuntu 18.04 LTS 16GB RAM , vCPU 4 , 330GB )
- Sanal Makineye bağlanmak için SSH programı ( PuTTY kullanıyorum, dilerseniz MobaXterm'de kullanabilirsiniz)
- Akhilnarang scriptleri
- ROM Kaynak Dosyası ( ilk kısımda Lineage derlemeyi analatacağım, ikinci kısımda AOSP tabanlı rom derleme işlemlerini anlatacağım )
- Cihaz kaynak kodları ( Device, vendor, kernel, common ( Lineage için common gerekli, AOSP için kullanmayınız )
- ROM Derleme işlemini başlatma
- 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
Linkleri görebilmek için kayıt olmanız gerekmektedir
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
Linkleri görebilmek için kayıt olmanız gerekmektedir
hardware/xiaomi
git clone
Linkleri görebilmek için kayıt olmanız gerekmektedir
kernel/xiaomi/sm6150
git clone
Linkleri görebilmek için kayıt olmanız gerekmektedir
vendor/xiaomi
git clone
Linkleri görebilmek için kayıt olmanız gerekmektedir
device/xiaomi/sm6150-common
git clone
Linkleri görebilmek için kayıt olmanız gerekmektedir
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
Linkleri görebilmek için kayıt olmanız gerekmektedir
ü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
Linkleri görebilmek için kayıt olmanız gerekmektedir
-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
Linkleri görebilmek için kayıt olmanız gerekmektedir
kernel/xiaomi/davinci
git clone
Linkleri görebilmek için kayıt olmanız gerekmektedir
vendor/xiaomi
git clone
Linkleri görebilmek için kayıt olmanız gerekmektedir
device/xiaomi/davinci
git clone
Linkleri görebilmek için kayıt olmanız gerekmektedir
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.
Linkleri görebilmek için kayıt olmanız gerekmektedir
Linkleri görebilmek için kayıt olmanız gerekmektedir
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
Linkleri görebilmek için kayıt olmanız gerekmektedir
ü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.