Real iOS on an Android phone
ios-sweet boots Apple's iOS 16.7.16 on a Redmi Note 10 Pro (Snapdragon 732G). It is the real thing: Apple's kernel built from its open-source code, and the system files of an iPhone X, with a handful of settings changed so it boots on foreign hardware. There is no emulator or launcher involved, and no Android running underneath.
This is a research project, not a daily driver. There is no Wi-Fi, no calls, no App Store, and the security features are switched off. Installing it wipes the phone's user data partition, so everything on your Android install is gone.
Where it is right now
Works
- Boots to the lock screen and home screen (about 4 minutes on the Apple logo)
- Touchscreen, swipe-up to go home, app switcher
- Power and volume buttons, screen lock and wake
- Settings, Control Center, notification center
- All 8 CPU cores
- Reads and writes its own storage
Missing
- Wi-Fi, Bluetooth, mobile network
- Audio, camera, sensors, GPS, Face ID
- GPU: the CPU draws everything, at about 20 to 30 fps
- Real battery level (it always shows 100 %)
- App Store and Apple ID; only the built-in apps are there
Read next
How it works
How the phone's hardware is driven from Apple's kernel, what the bootloader does, and how iOS is convinced it runs on an iPhone X.
ReadWill it work on my phone?
Compatibility by chip family instead of a list of every model. Short version: Snapdragon with UFS storage has a chance, MediaTek mostly doesn't.
CheckPort it to your phone
The three places in the code that describe the hardware, where to find the right values for your phone, and what a first boot looks like.
StartFuture plans
Wi-Fi, Bluetooth and the big question everybody asks: can the GPU ever work?
SeeHave a Redmi Note 10 Pro?
Then you don't need to port anything. The full build and install steps are in the README on GitHub. You need an unlocked bootloader, a Linux PC and a GitHub account (the kernel builds on GitHub's free macOS runners).
Questions, ports and progress reports go to r/hackios.