dipa-studio / ios-sweet
git clone https://github.com/dipa-studio/ios-sweet.git
iOS 16 userland + XNU on Redmi Note 10 Pro (sweet, SM7150)
—
stars, 24h
+683
stars, 7 days · #98
+683
stars, 30 days · #431
683
★ total · +683% this week
284
forks · 3 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguagePython
License—
Created2026-10-14 (6d ago)
Last push1d ago
Watchers6
OwnerUser
Links
- GitHub: github.com/dipa-studio/ios-sweet
- Homepage: https://www.reddit.com/r/hackios/s/rMV4w6WDTe
- Releases · Issues · Hacker News mentions
README excerpt
# ios-sweet **Apple's iOS 16 running on a Redmi Note 10 Pro.** This project ports Apple's open-source XNU kernel (xnu-8796, the iOS 16 generation) to the Xiaomi Redmi Note 10 Pro (`sweet`, Qualcomm SM7150 / Snapdragon 732G). On top of it runs the **unmodified iOS 16.7.16 (20H392) userland of the iPhone X**: launchd, the system daemons, backboardd, SpringBoard and the stock apps. As of **2026-10-18** the phone boots to the **iOS home screen**. You can unlock it, open Settings, pull down Control Center and the notification center, and use the touchscreen and the hardware buttons. Rendering runs entirely on the CPU; there is no GPU driver. > Experimental bring-up, not a usable phone OS. Many things are missing or stubbed (see below), and Apple's security model is mostly switched off. It installs into the `userdata` partition and so **erases Android's user data**. ## What works | Area | State | | --- | --- | | Boot | Stock Xiaomi bootloader → `fastboot boot` of our shim → XNU. Nothing is flashed to the boot partitions | | CPU | 6 of the 8 cores (the six Cortex-A55s) via PSCI, 16K pages, GICv3 interrupts, timers | | Memory | About 3.95 GiB of the upper DDR bank | | Storage | Own UFS host driver; the iOS root is a journaled HFS+ volume in `userdata`, read/write | | iOS userland | Real iPhone X 16.7.16 root filesystem and shared cache; launchd and the system daemons run | | Display | Kernel IOSurface + IOMobileFramebuffer (`AppleCLCD`) services; CoreAnimation renders in software; frames are copied into the bootloader's framebuffer. Presented to iOS as an iPhone X panel (1125×2436) | | GUI | backboardd, SpringBoard, lock screen, home screen, Control Center, notification center, Settings | | Touch | Goodix GT9896 over I²C (GENI), rail enabled through RPMh, delivered as HID digitizer events | | Buttons | Power, volume up/down (PMIC through SPMI) as HID consumer keys; lock/wake works | | Battery | IOPMPowerSource service (static 100 %, charging icon; real fuel-gauge readout prepared) | | Device identity | iPhone X (`iPhone10,3` / `D22AP`): no Home button, gesture UI | | Activation | Native "Hactivation" path of mobileactivationd, chosen through device-tree security status. No Apple servers involved | ## What does not work (yet) - **Navigation:** you cannot leave an app (the home gesture and AssistiveTouch Home do nothing yet). - **No Wi-Fi, Bluetooth, cellular, audio, camera, sensors, GPS or SEP / Face ID.** Daemons for them start and fail or keep relaunching. - **No GPU.** Everything is drawn by the CPU at roughly 20–30 fps. The two Cortex-A76 cores are not used yet. - **Few apps.** The image has only what is on the system volume. There is no App Store, no Apple ID, and some Settings pages are empty. - **Slow boot:** about 4 minutes on the Apple logo. - **Security is off:** permissive code signing (AMFI) and sandbox policies, a stub AppleKeyStore, no data protection. Do not put anything personal on it. ## How it boots [code] There is no serial port (the