Running Unsupported iOS on Deprecated Devices

https://news.ycombinator.com/rss Hits: 20
Summary

Running unsupported iOS on deprecated devices Created on 26.11.25 Earlier this year I demoed iOS 6 running on an iPod touch 3 - a device that Apple never gave iOS 6 to, making iOS 5.1.1 the latest build it can run A few months later I also released a script that generates an iOS 6 restore image installable on that iPod touch model This article describes technical details behind this work. Certain proficiency in iOS internals is assumed I'll show you what iOS is made of First of all, let's recap what software components iOS consists of: iBoot - the bootloader. Has 4 different types for different scenarios - iBSS, iBEC, LLB and iBoot Kernelcache - the OS kernel + kernel extensions (drivers) built into a single binary blob DeviceTree - structured list of hardware used by specific device model + some parameters that specify software behavior. The copy included in an IPSW is more of a template that is heavily modified by iBoot before jumping into kernel Userspace filesystem - tiny restore ramdisk used purely for OS installation or the actual root filesystem of iOS installed persistently Various firmwares for coprocessors, be they internal or external to the main SoC - like, baseband, Wi-Fi, Bluetooth, multitouch and etc. iPhone 3GS tests iPhone 3GS was released the same year as iPod touch 3 (2009), and has a very similar hardware (S5L8920X SoC vs. S5L8922X). But the most important part is that it actually got iOS 6 officially Before doing anything on the iPod I decided to try to boot iOS 6.0 with iOS 5.1.1 iBoot & DeviceTree on the iPhone and see what's gonna break and how DeviceTree The most broken thing was DeviceTree - iOS 6 added a lot of new nodes and properties. To fix it in automated manner I wrote a stupid Python script that decodes and computes a diff between 2 DeviceTrees. Such diff can also be applied to another DeviceTree The script is available in the SundanceInH2A repo As I mentioned above a lot of things in a DeviceTree is filled by iBoot at runtime. One o...

First seen: 2025-11-26 23:32

Last seen: 2025-11-27 18:38