Apple iPhone 4 (apple-n90)
Appearance
| This device has been tested with postmarketOS, but its device package has not yet been added to the postmarketOS repositories. This means that it cannot be selected in pmbootstrap. |
|
Apple iPhone 4 booting Linux 6.17 | |
| Manufacturer | Apple |
|---|---|
| Name | iPhone 4 |
| Codename | apple-n90 |
| Released | 2010 |
| Type | handset |
| Hardware | |
| Chipset | Apple A4 |
| CPU | ARM Cortex-A8 |
| GPU | PowerVR SGX535 |
| Display | 640x960 IPS TFT LCD |
| Storage | 8/16/32 GB |
| Memory | 512 MB |
| Architecture | armv7 |
| Software | |
Original software The software and version the device was shipped with. |
iOS 4.0 |
Extended version The most recent supported version from the manufacturer. |
iOS 7.1.2 |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
no |
Flashing Whether it is possible to flash the device with pmbootstrap flasher. |
Broken
|
|---|---|
USB Networking After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system). |
Works
|
Internal storage eMMC, SD cards, UFS... |
Broken
|
Battery Whether charging and battery level reporting work. |
Broken
|
Screen Whether the display works; ideally with sleep mode and brightness control. |
Broken
|
Touchscreen |
Broken
|
| Multimedia | |
3D Acceleration |
Broken
|
Audio Audio playback, microphone, headset and buttons. |
Broken
|
Camera |
Broken
|
Camera Flash |
Broken
|
| Connectivity | |
WiFi |
Broken
|
Bluetooth |
Broken
|
GPS |
Broken
|
| Modem | |
Calls |
Broken
|
SMS |
Broken
|
Mobile data |
Broken
|
| Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Untested
|
USB OTG USB On-The-Go or USB-C Role switching. |
Untested
|
| Sensors | |
Accelerometer Handles automatic screen rotation in many interfaces. |
Broken
|
Magnetometer Sensor to measure the Earth's magnetism |
Broken
|
Ambient Light Measures the light level; used for automatic screen dimming in many interfaces. |
Broken
|
Proximity |
Broken
|
Haptics |
Broken
|
Users owning this device
Booting Mainline kernel
Unfortunately there is no permanent BootROM exploit for S5L8930, so the device has to be put in DFU mode for each boot. Flashing a corrupted iOS image will put the device in DFU bootloop which will make it more convenient. openiBoot can be used for booting a mainline kernel.
- Download iPhone 4 recovery image and extract
Firmware/dfu/iBSS.n90ap.RELEASE.dfufrom it. - Rename
iBSS.n90ap.RELEASE.dfutoiBSS.n90apand put it next to loadibec from syringe repository. - Once in DFU, load openiBoot image (prebuilt binary) with loadibec: (
./loadibec iphone_4_openiboot.bin) - Once openiBoot loads, you will be able to interact with it using OiBC.
./oibc
!zImage #kernel image with s5l8930-apple-n90.dtb appended
kernel
!initramfs #postmarketOS initial ramdisk
initrd
bootBroken buttons
If you have a device with broken power/home button and can't power it off, you can disconnect the battery. This device can boot to DFU on a charging cable without battery.
Mainline status
List of working features:
- Simple framebuffer
- USB in peripheral mode
- UART driver probes (untested)