İpucu APatch ve KernelSU kurulumu

Hengen

Üye
MIUI Sever
Acemi Üye
SMS Onaylı
Adım
Hengen
Cihazım
Mi 14T Pro
Konum
Konya
Katılım
17 Mart 2018
Konular
2
Mesajlar
90
Tepkime puanı
24
Puanları
8
init_boot flashlamaya çalışmak büyük hata olmuş hocam. Onu flashlamak sadece Magisk'te gerekiyor(o da telefonda init_boot varsa). Magisk flashlanacak telefonda init_boot bulunmazsa ya da APatch ve KernelSU flashlanacaksa boot kullanılmalı.

Bunun sebebi de şöyle: Magisk telefonlarda ramdisk diye bir şeyi yamalıyor. Bu ramdisk'te, telefonun çalışmasında bootloader'dan sonra çalışacak ilk kodları içeren /init dosyaları var bu /init kodları, ilk başta kernel olmak üzere telefonu çalışmasını sağlayacak her şeyi tek tek çalıştırıyor. Magisk bu dosyaları yamalayarak bize root erişimini açıyor.

APatch ve KernelSU'da bu root erişimi kernel üzerinden açılıyor. APatch ve KernelSU kernel'i farklı yöntemlerle yamalıyor. KernelSU'da ayrıca github'taki hazır yamalanmış GKI kernelleri kullanmak da mümkün (Benim önerim mümkünse cihazdaki kernelin yamalanması). Bu sebepten dolayı aralarında ufak farklılıklar var.

Şimdi bunların init_boot veya boot ile alakası ne diye soracaksın. Android işletim sistemi her yıl, her yeni versiyonda değişen ve gelişen bir işletim sistemi. Bu değişikliklerden bazıları telefonun nasıl çaşladığı ile alakalı. Google'ın bu konuda yapdığı değişikliklerden bazıları, Android'in belli parçalarını biribirinden bariz bir şekilde ayırmak ve telefonları genel bir taban yazılım üzerinde çalışabilir hale getirmeye yarıyor. Bundan sonra telefon üreticileri bu parçaları ayrı ayrı modifiye edip, telefonlara uyarlayıp kendi Android yazılımlarını üretebiliyor.

Bu parçaların arasında /init'i içeren ramdisk ve cihazın kernel'i de dahil. Daha önceden bu ikisi birlikte boot.img içerisinde bulunuyordu. Ancak Android 13 ile gelen bir değişiklikle ramdisk, boot.img içerisinden çıkarıldı ve init_boot.img adında yeni bir yere konuldu. Kernel ise boot.img'nin içerisinde kaldı.

Android ile gelen değişiklikler arasında telefonun bu kadar derin bir kısmında oluşan değişiklikler önceden gelen versiyonlardan yapılan yükseltmeler sonrasında sıkıntı yaratabileceği için bu tür değişiklikler sadece yeni telefonlar için zorunlu tutuluyor. Üretildikleri zaman daha önceki Android versiyonlarına sahip telefonlar için (en son Android 12) bu tür değişiklikler mecburi değil. ANcak telefon üreticisi mümkünse ve isterse yine de bu tür değişiklikleri uygulayabiliyor. (Benim Xiaomi 12T buna bir örnek sayılabilir. Android 12 ile çıkmış olmasına rağmen init_boot bulunmakta.

Bu yüzden daha yeni telefonlarda ramdisk init_boot içinde olduğundan Magisk flashlarken init_boot.img'nin yamalanması gerekiyor. Daha eski telefonlarda itin_boot olmayacak, ramdisk boot içinde olacaktır. O yüzden Magisk flashlarken boot.img'nin yamalanması gerekmektedir. Yine APatch ve KernelSU flashlarken kernel boot içinde olduğundan boot.img'nin yamalanması (ya da KernelSU flashlarken uygun bir GKI kerneli içeren boot.img ile değiştirilmesi de mümkün) gerekmektedir.
Konu niteliğinde bi cevap hocam, bilgini aktardığın için teşekkürler. Aslında benim düşüncem eğer bi sıkıntı olursa (bootloop'a düşme vs.) orjinal dosyaları flashlar geçerim diyordum. Ancak öyle olmadı 😅
 

TheSingular

Yeni Üye
Yeni Üye
MIUI Sever
SMS Onaylı
Adım
Batuhan
Cihazım
Xiaomi 12T
Yaş
31
Konum
Trabzon
Katılım
29 Ağustos 2019
Konular
1
Mesajlar
37
Tepkime puanı
35
Puanları
18
Konu niteliğinde bi cevap hocam, bilgini aktardığın için teşekkürler. Aslında benim düşüncem eğer bi sıkıntı olursa (bootloop'a düşme vs.) orjinal dosyaları flashlar geçerim diyordum. Ancak öyle olmadı 😅
Bu dediğinin olmaması büyük olasılıkla aşağıda belirttiğin hata yüzünden:
Yok bende hala aynıydı ben de KernelSU github sayfasından kendi kernelime uygun olan .img dosyalarını flashlamaya çalıştım ancak init_boot'a flashlarken Writing 'init_boot_b' FAILED (remote: 'Value too large for defined data type') hatasını aldım.
Kernel ramdisk'e göre boyut olarak daha büyük olduğundan init_boot flashlamasında burada boyut hatası oldu ve yazmaya kalktığın kernel büyük olasılıkla taşıp yazılmaması gereken biryerlere yazıldı. Bir dahakine buna dikkat edersen çalışır diye düşünüyorum.
 

Hengen

Üye
MIUI Sever
Acemi Üye
SMS Onaylı
Adım
Hengen
Cihazım
Mi 14T Pro
Konum
Konya
Katılım
17 Mart 2018
Konular
2
Mesajlar
90
Tepkime puanı
24
Puanları
8
Bu dediğinin olmaması büyük olasılıkla aşağıda belirttiğin hata yüzünden:

Kernel ramdisk'e göre boyut olarak daha büyük olduğundan init_boot flashlamasında burada boyut hatası oldu ve yazmaya kalktığın kernel büyük olasılıkla taşıp yazılmaması gereken biryerlere yazıldı. Bir dahakine buna dikkat edersen çalışır diye düşünüyorum.
Aslında şuan aklıma bir şey takıldı, yazdığın makale gibi yazıda Magisk ramdisk kullandığı için init_boot patchleyip flashlıyoruz, hatta KernelSU'nun apksında da öyle. Ancak github sayfalarında paylaştıkları kernel dosyalarını neden boot'a flashlamamız gerekiyor da kendimiz patchlediğimiz zaman init_boot kullanıyoruz, bir de dediğin gibi taşıp başka yerlere yazma olayı varsa o da sıkıntı. Ancak olabilir, neden olmasın. Çünkü ben de kontrol ettiğimde bayt değerleri hiç değişmiyor. Sadece hash değerleri değişiyor.
 
Üst Alt