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.