Jump to content

Apple iPhone 4 (apple-iphone4)

From postmarketOS Wiki
(Redirected from Apple iPhone 4)
Apple iPhone 4
Apple iPhone 4 booting Linux 6.17
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
Mainline
Instead of a Linux kernel fork, it is possible to run (Close to) Mainline.
no
Features
Flashing
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
Charging and battery level reporting works
Broken
Screen
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
Auto screen rotation works in desktops e.g. Phosh or Plasma Mobile
Broken
Magnetometer
Sensor to measure magnetism
Broken
Ambient Light
Broken
Proximity
Broken
Haptics
Broken

Users owning this device

  • AppData 174
  • AskorbinovayaKislota (Notes: iOS 7.1.2)
  • Baonks81 (Notes: 512MB/16GB)
  • Chaosleo07 (Notes: Mainline would be funny on this, shouldn't be too hard either since first gen iPad has the aame SoC)
  • Clygro (Notes: 5 devices, 1x8GB, 3x16GB (one of them is iCloud locked), 1x32GB, various iOS versions)
  • Fireman112 (Notes: Broken touchscreen)
  • Hexagonwin (Notes: Currently iOS 4. I hope I can get mainline linux here like iPad 1G (Same SoC))
  • Illen (Notes: 16 GB variant. Broken home button.)
  • Jacobk (Notes: Passcode locked by previous owner)
  • Kekson1a
  • Lost-Entrepreneur439 (Notes: Bad NAND)
  • Maxnet
  • Meowking (Notes: Works fine)
  • Mint (Notes: Jailbroken)
  • NBon (Notes: Untested yet)
  • Owen
  • Schrmh
  • Sputnik1973 (Notes: No screen, bad dock connector and no power/volume buttons, icloud locked 32gb.)
  • Sputnik1973 (Notes: Revived from two non working ones, jailbroken 32gb.)
  • TipzTeam (Notes: Works fine, running iOS 4.3.3 with blobs)


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.dfu from it.
  • Rename iBSS.n90ap.RELEASE.dfu to iBSS.n90ap and 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
boot

Broken 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)

See also