Jump to content

Apple iPhone X (Global) (apple-d22)

From postmarketOS Wiki
Note This device is supported as part of a generic port. Refer to Apple_Generic_iDevice_(apple-idevice) for installation instructions and more information.
Apple iPhone X (Global)
Apple iPhone X with xfce4
Apple iPhone X with xfce4
Manufacturer Apple
Name iPhone X (Global)
Codename apple-d22
Released 2017
Type handset
Hardware
Chipset Apple A11
CPU 2x 2.376 GHz Monsoon
4x 1.68 GHz Mistral
GPU Apple H10 (3 cores)
Display 1125 x 2436
Storage 64, 256 GB
Memory 3 GB
Architecture aarch64
Software
Original software
The software and version the device was shipped with.
iOS 11
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.
7.0.4
Generic port Apple_Generic_iDevice_(apple-idevice)
Device package device-apple-idevice
Kernel package linux-postmarketos-apple-16k
Features
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...
Works
Battery
Whether charging and battery level reporting work.
Partial
Screen
Whether the display works; ideally with sleep mode and brightness control.
Partial
Touchscreen
Broken
Multimedia
3D Acceleration
Broken
Audio
Audio playback, microphone, headset and buttons.
Broken
Camera
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.
Broken
USB OTG
USB On-The-Go or USB-C Role switching.
Broken
Sensors
Accelerometer
Handles automatic screen rotation in many interfaces.
Broken

Apple iPhone X is the flagship smartphone from Apple in 2017.

Contributors

Users Owning This Device

How to Enter Flash Mode

libirecovery is required as Apple A11 cannot boot from DFU if entered with force reset.

1. Plug the device into your computer.

  • Some lightning to USB-C cables will not work. Lightning to USB-A cables works fine and for USB-C only hosts, USB-A to USB-C adapters can be used.

2. Power off the device.

3. Enter recovery mode.

  • Hold Power until Apple logo appears, then disappears.
  • The Apple logo will then appear again soon after then the device goes into recovery mode.

3. Enter DFU mode.

  • On the host, do irecovery -c reset, which will reset the device. Feel free to add a sleep command so you can perform the following step in time.
  • From the point of reset, hold Volume down and Power for 2 seconds.
  • Release Power but keep holding Volume down for 8 seconds.

Internal Storage

Internal storage on iPhone X is Apple's ANS2 NVMe. It is similar to the one in M1 but with less quirks. Currently internal storage in Linux requires the firmware used to boot Linux to be at least iOS 14 due to RTKit protocol support limitation. There are multiple namespaces, the first one holds the main storage and the second one holds the bootloader.

Battery

Battery is managed by SMC firmware. Battery information works. Charging, is however hardcoded to draw 5V/1A.

Booting

Follow the guide from Apple Generic iDevice (apple-idevice)#Booting

Flashing

Warning WARNING: This is irreversible! While you can always revert to iOS using idevicerestore, you can only revert to a signed version, which is usually the latest version.
Warning WARNING: Never modify any nvme namespace other than the first namespace. i.e. Only block devices with names starting with /dev/nvme0n1. The other namespaces contain information that cannot be recovered even with DFU restore.
  • After setup_usb_storage /dev/nvme0n1 in the postmarketOS initramfs, the device's internal storage will appears as a USB mass storage device on the host, from that point on dd and the usual partitioning tools can be used.

See Also

External Links