Other iPhone models

How to run a guest whose iOS comes from another iPhone's restore IPSW instead of the iPhone17,3's (iPhone 16). Use it when you need a specific model's userland, panel size or identity.

The virtual hardware stays the same, as with an iPad guest: the boot chain, kernel, SEP and device tree still come from the PCC cloudOS IPSW (vresearch101ap / vphone600ap). Only the userland comes from the chosen model's IPSW, and the device tree the guest boots is rewritten to present that model.

Create one

In Launchpad, choose New Machine, pick the model under Device and a release under iOS.

From a terminal, through Launchpad:

vphone-launchpad-cli vm create iphone17pro --device iPhone18,1

With vphone-cli, pass the model's IPSW and the cloudOS:

vphone-cli vm create iphone17pro \
  --iphone-source 'https://updates.cdn-apple.com/2026SummerFCS/f768ecdf-e037-44e6-bfa6-949b6d127c4f/iPhone18,1_26.6.2_23G90_Restore.ipsw' \
  --cloudos-source 'https://updates.cdn-apple.com/private-cloud-compute/c0ecdb4b310cf5239ab2b248dd3098eec297dc5aa3bbe6ada27273262b0b8b64'

Each iPhone model has an IPSW of its own, so --device is not needed with explicit sources.

To find a release, run fw catalog. It lists the iPhone 16 and 17 models' releases from 26.0 to 27.0.1 (the iPhone 17e from 26.3.1) and the iPhone 18 Pro's 27.0.1, each with the cloudOS an iPhone17,3 of that release uses. To list one model's releases:

vphone-cli fw catalog --device iPhone18,1

Supported devices

ProductModelBoardPanelPoints @3x
iPhone17,3iPhone 16D47AP1179x2556 @ 460 ppi393x852
iPhone17,4iPhone 16 PlusD48AP1290x2796 @ 460 ppi430x932
iPhone17,1iPhone 16 ProD93AP1206x2622 @ 460 ppi402x874
iPhone17,2iPhone 16 Pro MaxD94AP1320x2868 @ 460 ppi440x956
iPhone17,5iPhone 16eV59AP1170x2532 @ 460 ppi390x844
iPhone18,3iPhone 17V57AP1206x2622 @ 460 ppi402x874
iPhone18,4iPhone AirD23AP1260x2736 @ 460 ppi420x912
iPhone18,1iPhone 17 ProV53AP1206x2622 @ 460 ppi402x874
iPhone18,2iPhone 17 Pro MaxV54AP1320x2868 @ 460 ppi440x956
iPhone18,5iPhone 17eV159AP1170x2532 @ 460 ppi390x844
iPhone19,2iPhone 18 ProV63AP1206x2622 @ 460 ppi402x874

Every model, the iPhone17,3 included, gets its panel and identity from its own device tree. A new iPhone17,3 machine gets the iPhone 16's own 1179x2556 panel; a machine created with an earlier VPhone.bundle keeps the 1290x2796 panel recorded in its configuration.

The iPhone 17 Pro, 17 Pro Max and 18 Pro have recorded boot validation; see Compatibility. The iPhone 17 Pro and 17 Pro Max need a patch on iOS 27, described there.

Warning

iPhone19,2 uses ARM64E_X1. On hosts without native X1 support, the standard preset lowers the unsupported instructions, which weakens PC-bound pointer authentication.

What changes for another iPhone

Everything listed under What changes for an iPad applies, with two differences:

  • The board's /product values replace the vphone600 placeholders the same way, but an iPhone board keeps its phone properties: Dynamic Island, reachability, OLED, volume-button geometry, CarPlay and Watch pairing come from the board instead of being removed. The patch IDs are the devicetree-cfw-ipad_* ones; they were named before iPhones used them.
  • LLB is not patched for the display scale. The paravirtual display's boot video word says 3x, which is already an iPhone's scale.

See also