How to Use vphone-cli to Patch Only the Less Variant with a Minimal Approach

Use the --variant less flag with vphone-cli to create or patch a VM without applying any firmware modifications, preserving all native iOS security mitigations.

The vphone-cli toolchain enables iOS virtualization with customizable firmware patches, but the less variant provides a minimal approach that bypasses all patching stages entirely. This configuration is essential when you require a pristine iOS environment that maintains Apple's built-in security protections without additional modifications.

Understanding the Less Variant Definition

According to the source repository documentation, the less variant is explicitly defined as "Patchless — keeps iOS mitigations enabled" in the firmware variants table. This configuration differs from other variants like full or jailed by intentionally omitting every patch component during the firmware preparation phase.

In FirmwarePipeline.swift, the pipeline constructs component lists conditionally based on the selected variant. When the variant parameter equals .less, the implementation returns an empty patch list and skips all component processing stages entirely at lines 250–257.

Minimal Patching Workflow

To patch only the less variant with a minimal approach, execute these three sequential steps:

Step 1: Create the VM with the Less Variant

Initialize a new virtual machine using the --variant less flag. This operation requires root privileges because the CFW host-mount step executes with sudo permissions as implemented in VPhoneVMCreateCLI.swift at lines 10–12.

sudo vphone-cli vm create mylessvm \
    --variant less \
    --iphone-source /path/to/iphone.ipsw \
    --cloudos-source /path/to/cloudos.ipsw

Step 2: Run the Firmware Patch Command

Execute the patch command targeting the specific VM with the less variant specified. The FirmwarePipeline class detects the variant: .less parameter and bypasses all patch stages at lines 256–259, effectively performing a no-operation pass while validating the firmware structure.

sudo vphone-cli fw patch mylessvm --variant less

Step 3: Launch the Virtual Machine

Boot the VM normally without additional parameters. The virtual machine launches using the original unmodified iOS firmware, maintaining all built-in security mitigations.

vphone-cli vm launch mylessvm

Technical Implementation Details

The minimal behavior is enforced at multiple layers in the codebase. The VPhoneCreateOrchestrator.swift file propagates the selected variant through to the pipeline initialization, while the FirmwarePipeline.swift implementation constructs empty component arrays when processing the less variant. This architecture ensures that even if additional tools are installed in the VM environment, the base firmware remains completely stock.

Optional Configurations

While the less variant provides a minimal baseline, you can combine it with specific auxiliary flags if required:

  • --force-dsc-maxslide: Enables dynamic slide maximization without adding patches
  • --frida: Installs Frida instrumentation tools alongside the clean firmware

For a truly minimal setup, omit these optional parameters to ensure only the essential virtualization layer is active.

Summary

  • The less variant in vphone-cli applies zero firmware patches, preserving all native iOS mitigations as documented in the README at lines 94–98
  • Create VMs using sudo vphone-cli vm create <name> --variant less to initialize the minimal environment
  • The fw patch command with --variant less executes a validation-only pass through FirmwarePipeline.swift at lines 256–259 without modifying firmware components
  • Root privileges are mandatory for the less variant due to CFW host-mount requirements in VPhoneVMCreateCLI.swift at lines 10–12
  • Launch patched VMs with vphone-cli vm launch <name> to boot the unmodified firmware image

Frequently Asked Questions

What exactly does the "less" variant do in vphone-cli?

The less variant configures the firmware pipeline to skip all patch applications, resulting in a completely stock iOS firmware image. As documented in the repository README at lines 94–98 and implemented in FirmwarePipeline.swift at lines 250–257, this variant maintains all Apple security mitigations by returning an empty patch component list during the build process.

Do I need root privileges to use the less variant with vphone-cli?

Yes, root privileges are required because the CFW host-mount step executes with sudo permissions. The VPhoneVMCreateCLI.swift source code at lines 10–12 enforces this requirement for the less variant specifically to ensure proper filesystem mounting permissions during VM creation.

Can I convert an existing VM to the less variant without recreating it?

You can apply the less variant patching approach to an existing VM by running sudo vphone-cli fw patch <vm-name> --variant less, which will skip all patch stages for that VM. However, if the VM was previously created with patches applied, the firmware modifications may persist unless you restore the original firmware images before patching with the less variant.

Is the less variant compatible with debugging tools like Frida?

Yes, the less variant is compatible with Frida and other runtime instrumentation tools when using the --frida flag during creation. The variant only affects firmware-level patches; it does not prevent the installation of user-space debugging tools, though it maintains all kernel-level iOS mitigations that standard patches typically disable.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →