How a 16‑Year‑Old Turned a Broken iPhone 7 into an Ubuntu Server

Teen developer Daniel Rodriguez repurposes a non‑functional iPhone 7 by jailbreaking it, building a custom Ubuntu 20.04 root filesystem, compiling a tailored kernel, and using projectsandcastle and PongoOS to boot Linux, effectively turning the device into a networked ARM64 server.

Programmer DD
Programmer DD
Programmer DD
How a 16‑Year‑Old Turned a Broken iPhone 7 into an Ubuntu Server

Recently a 16‑year‑old developer named Daniel Rodriguez posted a video showing how he transplanted Ubuntu 20.04 onto a broken iPhone 7 and used it as a server.

Daniel used his grandmother’s iPhone 7, which still had functional screen and power hardware but a dead NVMe NAND, making iOS unusable. He leveraged open‑source projects such as checkra1n, linux‑sandcastle, projectsandcastle, and wrote custom udev bridge scripts to achieve the conversion.

Preparation

NFS and DHCP services

Jailbreak tool checkra1n 0.10.2‑beta Kernel fork for h9x/A10

projectsandcastle tool

Arm64 Ubuntu environment (or Docker buildx)

Custom bridge script/udev rules

1. Build Rootfs

Install debootstrap on an arm64 Ubuntu system: sudo apt-get install debootstrap -y Assuming the NFS export directory is /mnt/nfsrootarm64, run:

sudo debootstrap focal /mnt/nfsrootarm64

# chroot into the new system
chroot /mnt/nfsrootarm64

# install required tools
apt install vim network-manager openssh-server

# fix locale
dpkg-reconfigure locales   # choose en_US.utf-8

# fix timezone
dpkg-reconfigure tzdata

# add a user
adduser <someuser>
adduser <someuser> sudo

# enable updates, backports and security repos
vim /etc/apt/sources.list

2. Compile the Kernel

Clone the Sandcastle kernel project and generate a default config: make hx_h9p_defconfig Modify .config to enable networking and NFS support, for example:

CONFIG_USB_ETH=y

CONFIG_NFS_FS=y

CONFIG_IP_PNP=y

CONFIG_IP_PNP_DHCP=y

CONFIG_BLK_DEV_INITRD=n

CONFIG_CMDLINE="earlycon=hx_uart,0x20a0c0000 console=tty0 root=/dev/nfs rw nfsroot=<your_nfs_server_ip>:/nfsrootarm64,vers=4,tcp init=/usr/bin/systemd rootwait ip=dhcp g_ether.host_addr=12:a5:cf:42:92:fd g_ether.dev_addr=5e:bc:ca:27:92:b1 g_ether.idVendor=1317 g_ether.idProduct=42146 mitigations=off"

CONFIG_ROOT_NFS=y

CONFIG_CMDLINE_FORCE=y

CONFIG_DEBUG_INFO=n

Compile the kernel image: make -j 4 Image Generate the device tree: ./dtbpack.sh Compress the kernel image for PongoOS:

lzma -z --stdout arch/arm64/boot/Image > ../Image.lzma

3. Load Kernel with PongoOS

Clone the projectsandcastle loader and build it:

git clone https://github.com/corellium/projectsandcastle
cd projectsandcastle/loader
cc -O2 -Wall load-linux.c -lusb-1.0 -o load-linux

4. Set Up Networking

Clone the bridge‑script repository and adjust the udev rule:

git clone https://github.com/newperson1746/iphone7-linux-nfsroot
# edit ethbridge.sh if needed
# edit 70-iphone7.rules to match the MAC address from the kernel cmdline
sudo cp 70-iphone7.rules /etc/udev/rules.d/
sudo udevadm control --reload

5. Boot the Device

Put the iPhone 7 into DFU/recovery mode (connect to iTunes, power off, hold Power + Volume‑ buttons until the recovery screen appears).

Run checkra1n without parameters, then start DFU mode.

When DFU starts, press CTRL‑C and execute checkra1n -cpE to enter PongoOS command line.

Load the compressed kernel and device tree:

load-linux <path_to/Image.lzma> <path_to/dtbpack>

The iPhone will obtain an IP address via DHCP, mount the NFS rootfs, start systemd, and present a login prompt. You can then SSH into the device.

Conclusion

Daniel credits Corellium, the checkra1n developers, Linus Torvalds, and the Ubuntu/Debian maintainers for making the project possible. The procedure demonstrates that even a “bricked” iPhone can be repurposed as a functional ARM64 Linux server.

iPhone recovery screen
iPhone recovery screen
KernelLinuxiPhoneUbunturootfsPongoOS
Programmer DD
Written by

Programmer DD

A tinkering programmer and author of "Spring Cloud Microservices in Action"

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.