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

> Learn how to use vphone-cli with the --variant less flag to patch VMs minimally. Preserve native iOS security mitigations by avoiding firmware modifications. Get started now.

- Repository: [Lakr/vphone-cli](https://github.com/Lakr233/vphone-cli)
- Tags: how-to-guide
- Published: 2026-08-31

---

**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`](https://github.com/Lakr233/vphone-cli/blob/main/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`](https://github.com/Lakr233/vphone-cli/blob/main/VPhoneVMCreateCLI.swift) at lines 10–12.

```bash
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.

```bash
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.

```bash
vphone-cli vm launch mylessvm

```

## Technical Implementation Details

The minimal behavior is enforced at multiple layers in the codebase. The [`VPhoneCreateOrchestrator.swift`](https://github.com/Lakr233/vphone-cli/blob/main/VPhoneCreateOrchestrator.swift) file propagates the selected variant through to the pipeline initialization, while the [`FirmwarePipeline.swift`](https://github.com/Lakr233/vphone-cli/blob/main/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`](https://github.com/Lakr233/vphone-cli/blob/main/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`](https://github.com/Lakr233/vphone-cli/blob/main/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`](https://github.com/Lakr233/vphone-cli/blob/main/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`](https://github.com/Lakr233/vphone-cli/blob/main/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.