· kaynak Hacker News – Front Page (native)
HackiOS, Apple'ın açık kaynak XNU çekirdeğiyle Android donanımında değiştirilmemiş iOS 16.5 çalıştırıyor
Hacker News'te yayımlanan HackiOS, Apple'ın açık kaynak XNU çekirdeğini iOS 16.5'ten bir POCO Android telefonda ve QEMU'da önyüklüyor; stok iOS kullanıcı alanını — kilit ekranı, Safari, Wi-Fi ve kamera — tamamen RAM üzerinden çalıştırıyor.
HackiOS ne yapıyor
OOSEX GANG adlı bir grup tarafından GitHub'da yayımlanan ve 22 Ekim'de Hacker News'te öne çıkan HackiOS adlı proje, Apple'ın açık kaynak XNU çekirdeğini Android telefon donanımında önyüklüyor ve üzerinde değiştirilmemiş iOS 16.5 kullanıcı alanını çalıştırıyor. Projenin README'sine göre tam iOS başlatma zinciri — launchd, backboardd, SpringBoard ve stok uygulamalar — bir POCO X5 Pro 5G'de (kod adı redwood, Snapdragon 778G) ayağa kalkıyor.
Telefonun depolamasına hiçbir şey yazılmıyor: fastboot boot üzerinden bir UEFI ortamı başlatılıyor, tüm sistem RAM'de yaşıyor ve yeniden başlatma cihazı Android'e döndürüyor. Aynı yığın aarch64 sanal makinesinde QEMU'da da çalışıyor, yani telefon gerekmiyor.
Çekirdek, Apple'ın iOS 16.5 ile yayımladığı sürüm olan xnu-8796.121.2. Apple yıllardır XNU'nun kaynak kodunu yayımlıyor, ancak onu üçüncü taraf telefon silikonunda — iOS kullanıcı alanı olduğu gibi korunarak — çalıştırmak büyük miktarda özgün mühendislik gerektirdi: özel bir EFI yükleyici, bir UEFI portu, Apple'ın kapalı sürücülerinin yerine geçecek bileşenler ve bir uyumluluk katmanı üzerinde çalışan bir Linux Wi-Fi sürücüsü.
Nasıl çalışıyor
Depoda anlatıldığı şekliyle önyükleme dizisi, fastboot boot'tan bir UEFI portuna (Project Silicium'un çalışmasına dayanan Mu-Silicium) gidiyor; bu da projenin kendi EFI uygulaması olan xnuloader'ı başlatıyor. Yükleyici, devri yaptıktan sonra bellekte kalıyor; bir USB bağlantısı, bir watchdog ve çekirdeğin günlüğü için bir kanal sürdürüyor. Yamanmış XNU çekirdeği temel olarak BCM2837 yapılandırmasını kullanıyor ve projenin platform koduyla genişletiliyor: GICv3 kesit yönetimi, zamanlayıcılar, bir video konsolu ve yükleyiciye geri dönüş yolu.
Apple'ın kapalı parçaları yeniden yaratılmak yerine değiştiriliyor: corecrypto'nun yerine minicrypto geçiyor, AMFI ve Sandbox politika bileşenleri için muadiller var; ekip ayrıca kendi IOSurface, IOMobileFramebuffer, AppleKeyStore ve ağ yığını sürücülerini yazmış. Grafikler Adreno 642L GPU'da Mesa ve freedreno üzerinden yürüyor, CoreAnimation OpenGL ES ile destekleniyor ve Wi-Fi, uyumluluk katmanı üzerinden Linux'un ath11k sürücüsünü kullanıyor.
Neler çalışıyor, neler çalışmıyor
Çalışanlar listesi uzun. Kaydırarak açma özellikli kilit ekranı, stok iOS 16 duvar kağıtlarıyla iki sayfalı ana ekran, Denetim Merkezi'ni de içeren jestler ile Ayarlar, Saat, Takvim, Fotoğraflar, Notlar ve Safari gibi uygulamalar, telefondaki widget'larla birlikte çalışıyor. Goodix GT9916 dokunmatik ekran çoklu dokunmayı ve dokunarak uyandırmayı destekliyor, fiziksel güç ve ses tuşları çalışıyor ve sistem 2,4 GHz'deki büyük çekirdekle birlikte sekiz CPU çekirdeğini kullanabiliyor; kilit ekranına yaklaşık 20 saniyede ulaşılıyor.
WCN6750 radyosu üzerindeki Wi-Fi, Ayarlar'dan ağlara bağlanıyor ve 55–90 Mbit/s hıza ulaşıyor. Hoparlörler, mikrofon ve Kamera uygulaması, HEIC sabit fotoğraflar dahil çalışıyor. iOS tarafından yazılan veriler telefonun flash belleğine kaydedildiğinde yeniden başlatmayı atlatabiliyor; Sileo, Procursus dağıtımı, tweak'lar ve SSH da işlevsel.
Hâlâ eksik olanlar ise hücresel bağlantı, Bluetooth ve özel çekirdek altında şarj — telefon yalnızca deşarj oluyor. Uygulamalar için Metal render işlemi sürüyor; 456 sistem gölgelendiricisinden 293'ü zaten Adreno'da çalışıyor. App Store içeriği ve Apple ID girişi, Secure Enclave bulunmadığı ve FairPlay daemon'u kapandığı için başarısız oluyor; video ve Canlı Fotoğraf kaydı henüz çalışmıyor.
Geliştiriciler sonucu bir ROM'dan çok araştırma tezgâhı olarak tanımlıyor: her oturum yapılandırılmış sayıda saniye boyunca çalışıyor, ardından çekirdek yükleyiciye dönüyor ve günlüğünü geri aktarıyor.
Erişilebilirlik ve hukuki durum
Çalışma hackios-xnu-kernel ve hackios-xnu-userland adlı iki depoya bölünmüş durumda ve hiçbirinde Apple dosyası yok. Bir indirme betiği, 7,4 GB'lık iOS 16.5 IPSW'sini Apple'ın kendi CDN'inden kullanıcının makinesine indirip gerekenleri orada çıkarıyor; GPU, Wi-Fi ve ses için üretici yazılımı ise adb üzerinden kullanıcının kendi telefonundan alınıyor. Proje, Apple ile hiçbir bağı olmayan ve onun desteğini taşımayan bağımsız bir araştırma olduğunu belirtiyor.
QEMU'da çalıştırmak için yaklaşık 12 GB boş disk ve 4 GB boş RAM'e sahip bir Linux x86-64 ana makinesi gerekiyor; önceden derlenmiş çekirdek, yükleyici ve UEFI ikili dosyaları sağlanıyor ve kilit ekranı iki üç dakika sonra görünüyor. Diğer cihazlar için taşıma yolu, bir telefonun cihaz ağacından cihaz profili üreten bir betikle başlıyor.
Neden önemli
Değiştirilmemiş bir iOS kullanıcı alanını sıradan Android silikonunda önyüklemek nadir görülen bir tersine mühendislik sonucu. Çekirdek yamalandığında ve bir avuç tescilli sürücü yeniden uygulandığında iOS'un ne kadarının taşınabilir hâle geldiğini gösteriyor; Wi-Fi için ath11k, grafikler için freedreno gibi Linux sürücülerinin yeniden kullanımı, yığının başka donanımlara taşınması için bir yol öneriyor. Araştırmacılar içinse SSH ve bir paket yöneticisiyle betiklenebilir, incelenebilir bir iOS ortamı sunuyor ve hiçbir Apple donanımı gerektirmiyor; Secure Enclave boşluğu da yazılım yeniden uygulamasının donanıma kilitli sınırlara nerede takıldığını net biçimde gösteriyor.
- #ios
- #android
- #open-source
- #reverse-engineering
- #qemu
İlgili yazılar
- Amazon, yama yayınlanmadan önce PHP2Shell exploit denemeleri tespit etti; yeni kontrol aracı Debian PHP sürümlerini doğruluyor
- Linux, x86'dan __get_user ve __put_user'u 48 commitlik bir kernel temizliğiyle kaldırıyor
- Crystal 1.22.0 tüm hedeflere native event loop getiriyor, SIGPIPE emülasyonu ve LLVM 23/24 desteği sunuyor