Apple iPhone 7/7+ (apple-d10)
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 | |
| 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 |
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
- Alex92567 (Notes: Running IOS 15.8, Jailbroken)
- AmateurPenguin (Notes: Plus model with TrollStore)
- Clygro (Notes: 7 32GB missing front panel and broken battery cable iOS 14.x)
- Eepymeowers (Notes: 6x, 4 of which are iPhone 7, 2 are 7+)
- Jarocks (Notes: Jailbroken on iOS 15.8.4)
- KemonoRen (Notes: old main, broken screen, on iOS 15.8.5)
- Kozika
- Theotheroracle
- Xx34R0R404xX (Notes: Jailbroken IOS 15.8.4)
- ZenTheFox
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 + for 8 seconds
- Release and keep holding 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
-
The iPhone 7, Booting PostmarketOS
-
iPhone 7 running sxmo-de-dwm
-
Lightdm side view (7+)
See also
- Project Sandcastle provides the basic Linux port to Apple silicon
- pmaports!2289 Initial merge request
- Device package
- Kernel package