Jump to content

Apple iPhone 7/7+ (apple-d10)

From postmarketOS Wiki

A mainline fork for this device is available [1] with further instructions here. Still needs to be tested and ported to postmarketOS.

These two devices can boot Android (via Project Sandcastle) so a postmarketOS port is available.

Apple iPhone 7
iPhone 7 Plus
Apple iPhone 7
Apple iPhone 7
Manufacturer Apple
Name iPhone 7
iPhone 7 Plus
Codename apple-d10
Released 2016
Type handset
Hardware
Chipset Apple A10 Fusion
CPU 2.34GHz quad-core 64-bit
GPU Custom PowerVR GT7600 Plus (6 core)
Display 1334×750 (326 ppi) (iPhone 7) 1920x1080 (401 ppi) (iPhone 7+)
Storage 32, 128, 256 GB
Memory 2 GB (iPhone 7) 3 GB (iPhone 7+)
Architecture aarch64
Software
Original software
The software and version the device was shipped with.
iOS 10.0.1
Extended version
The most recent supported version from the manufacturer.
iOS
postmarketOS
Category testing
Mainline
Instead of a Linux kernel fork, it is possible to run (Close to) Mainline.
yes
pmOS kernel
The kernel version that runs on the device's port.
5.4.12
Device package device-apple-d10 out-of-tree
Kernel package linux-apple-d10 out-of-tree
Features
Flashing
Whether it is possible to flash the device with pmbootstrap flasher.
Partial
USB Networking
After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system).
Works
Battery
Whether charging and battery level reporting work.
Works
Screen
Whether the display works; ideally with sleep mode and brightness control.
Works
Touchscreen
Works
Multimedia
3D Acceleration
Untested
Audio
Audio playback, microphone, headset and buttons.
Untested
Camera
Untested
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Untested
Modem
Calls
Untested
SMS
Untested
Mobile data
Untested
Miscellaneous
FDE
Full disk encryption and unlocking with unl0kr.
Untested
USB OTG
USB On-The-Go or USB-C Role switching.
Partial
Sensors
Accelerometer
Handles automatic screen rotation in many interfaces.
Untested

Contributors

Users owning this device

How to enter flash mode

No proper flash mode, but kernel can be booted via checkra1n/PongoOS. Or possibly boot with m1n1. First you have to enter DFU mode.

  • Power off your phone and connect it to your computer via USB
  • Hold down Volume Down + Power for 8 seconds
  • Release Power and keep holding Volume Down for another 10 seconds

The screen should stay blank if everything went good.

To enter PongoOS, from where we can load the Linux kernel, run following command on the host machine:

$ ./checkra1n -cpE

If you are past iOS 14, try this instead. 1. Download palera1n from palera1n git repo
2. Download m1n1.bin and Pongo.bin from hoolock-linux git repo.
3. Boot pongoOS (make sure your device is unlocked or in recovery mode

./palera1n -lp -k /path/to/Pongo.bin

4. done
PongoOS will start booting and printing messages on the screen.
Booting with m1n1 is like this:
1. Build pmOS Image. (apple-idevice)
2. Grab vmlinuz, initramfs and dtbs from ~/.local/var/pmbootstrap/chroot_rootfs_apple-idevice/boot/
2.5. execute "gzip vmlinuz"
3.

  cat /path/to/m1n1.bin <(echo 'chosen.bootargs=') /


  /path/to/dtbs/*.dtb /


  /path/to/vmlinuz.gz /


  /path/to/initramfs > m1n1-pmos.bin


4.grab or build pongoterm
5. while the phone is in pongoos, execute printf '/send m1n1-pmos.bin\nbootm\n' | ./pongoterm
If it says pongoterm not found make sure you have built pongoterm and check if it exists and run with ./

What Works and what not works

Wi-Fi and Bluetooth works,but special set-up is needed to start the Wi-Fi driver.
Touchscreen works (Multitouch Firmware and hx-touchd from project sandcastle is needed)
Internal Storage works (need apfs driver, apfs-linux-rw for rw support)
Not working:
GPU (3D Accleration)
Audio
Not fixed:
Abnormal Screen Color
Not implemented:
Boot directly without PC,USB and pongoOS needed.
Message from Reyhank45

Installation

There is a manual method described in this blog post.

After this pull request is merged, one could possibly boot the kernel by just running

 $ pmbootstrap flasher boot

Gallery

See also