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.
e o zaman boot'a flashlıyım dedim ve telefon bootloop'a düştü, orjinal boot ve init_boot u flashladım yine bootloop da kaldı, boot u orjinal, init_boot'u kernelsu ile patchlediğim dosyayı flashladığım zaman bu sefer de otomatikman recovery moduna atmaya başladı ve aşağıda kırmızı şekilde "could'nt initalize user 0" yazısı geldi. Ve anladım ki benim telefonun userdata klasöründe sıkıntılar oluşmuş... (ne alaka bilmiyorum ve sıfırlamak zorunda kaldığımı anladım :/) miflash uygulaması ile save user data yı kullanarak rom attım ancak yine recovery'e attı ve yine aynı hatayı aldım. Clean all ile rom attım yine recovery e attı ve aynı hatayı aldım. Dedim ki bittik
, neyse ki reboot yapınca telefon açıldı. Çok kötü bi deneyim oldu ancak kernelsu benim için bitti... Yine de yardımcı olmaya çalıştığın için teşekkürler. Takıntılı olduğum için çözeyim dedim, telefonu sıfırlayarak çözmüş olduk
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.
Düzeltme: KernelSU'yu yüklerken LKM de denilen yamalama yönteminde
ramdisk
'i yamalıyormuş artık. Bu değişikliği kaçırmışım.
Ş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. Düzeltme: Benim Xiaomi_12T'de
init_boot.img
yokmuş, yanlış hatırlıyormuşum
).
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.
Düzeltme: Yukarıda da dediğim gibi KernelSU'yu yüklerken LKM de denilen yamalama yönteminde
ramdisk
'i yamalıyormuş artık. Bu değişikliği kaçırmışım. Bu yüzden yamalama sırasında
init_boot.img
vermek gerekiyor Magisk gibi. GKI modu yani doğrudan kernel değiştirerek yüklemede yine
boot.img
flashlanmalı.