Running Unsupported iOS on Deprecated Devices
Автор демонстрирует запуск iOS 6 на iPod touch 3 (S5L8922X SoC), который официально поддерживал только iOS 5.1.1, и публикует скрипт для генерации IPSW-образа. iOS состоит из iBoot (bootloader с типами iBSS/iBEC/LLB/iBoot), kernelcache (ядро + kexts), DeviceTree (шаблон аппаратных параметров, модифицируемый iBoot), userspace (ramdisk или rootfs) и firmware для сопроцессоров (baseband, Wi-Fi и т.д.). Тестировали на похожем iPhone 3GS (S5L8920X), получившем iOS 6 официально.
DeviceTree патчится Python-скриптом (ddt.py), вычисляющим diff между версиями и заполняющим nvram-proxy-data (дамп NVRAM, иначе зависание). iBoot требует патчей Image3-подписи, boot-args ("amfi=0xff" для отключения подписи), debug-enabled и динамического nvram-proxy-data/random-seed. Kernelcache собирается kcgen/kextcache из macOS: standalone-ядро S5L8922X + kexts из внутренних iOS 6-билдов (например, n18.10A403.kextlist), с опциями -arch armv7, -all-personalities, -strip-symbols. Это позволяет загрузить всё как prelinked-blob, обходя отсутствие KXLD-поддержки.