For iPhone setup -- following this cookbook requires LANforge version 5.4.9 and above.
For iPad setup -- LANforge version 5.5.1 and above is required.
To use devices with iOS 26 and above -- LANforge version 5.5.2 and above is required.
Our LANforge InterOp solution is used to support real client testing for access points. InterOp combines the benefits of testing with real clients with customizable testing and reporting.
We have support for various kinds of real clients:
- Android clients.
- iOS clients.
- Windows Machines.
- Linux Machines.
- MacOS Machines.

The LANforge InterOp iOS platform supports the following devices and iOS Versions:
The LANforge Manager this device will be clustered with must be in clustering mode. That includes configuring the realm, mode, and resource number of the manager, as well as having the right licenses. Please verify you have the correct licenses and follow this cookbook to set your manager up.
Hardware Requirements:
a supported iOS Device (see above).
a USB cable for connecting the device to a LANforge unit (USB-A to Lightning/USB-C).
a LANforge system with at least two free USB ports.
Optional Hardware:
a Mac Mini for iOS configuration and screen mirroring purposes (optional).
a USB Bluetooth Device (The TP-Link UB500 is known to work well.)
wget https://www.candelatech.com/lf_kinstall.pl
chmod +x lf_kinstall.plsudo ./lf_kinstall.pl --do_ios_tools
sudo /home/lanforge/serverctl.bash restart
This section describes the setup needed to control an iOS device using command line tools. This is the preferred method of controlling iOS devices as of LANforge 5.5.3. If your testbed is using LANforge 5.5.3, the device can be optionally configured to use an emulated Bluetooth keyboard to control the device. The Bluetooth keyboard control is the only method of controlling iOS devices using LANforge versions 5.5.2 and below. The setup for the Bluetooth keyboard is described in the "Configuring the Bluetooth Keyboard" section of this cookbook.
Proceed through initial iOS device setup until the device is activated.
Connect the iOS device to the LANforge unit with the USB cable. When prompted to trust the computer on the iOS device, select 'Trust'.

The first time an iOS device is introduced to the testbed, a certificate file will need to be created. For any subsequent iOS devices, the resulting certificate file can be reused. If multiple devices are being configured, skip steps 6 and 7 after the first device is setup. If you have many iOS devices connected to multiple LANforge machines, you can either copy the certificate file to each LANforge machine or follow the steps to create a certificate on each LANforge unit.
Create encryption keys for device supervision:
ios prepare create-cert
Create the supervision certificate:
openssl pkcs12 -export -inkey supervision-private-key.pem -in supervision-cert.pem -out certificate.p12 -password pass:lanforge -certpbe PBE-SHA1-3DES -keypbe PBE-SHA1-3DES -macalg sha1
Do not delete or rename the certificate.p12 file. It will be needed for Wi-Fi automation features to function.
Record the UDID of the device being setup:
ios list --details
Setup device supervision using the device UDID and certificate from above:
ios prepare --udid=<DEVICE_UDID> --certfile=supervision-cert.pem --orgname=LANforge
Once the device is setup for supervision, complete the remaining new device setup by logging into an Apple account. If the supervision process was successful, the text "this iPhone is supervised and managed by LANforge" will appear above the Apple ID in the settings app. Ensure also that the lock screen passcode is disabled. This can be disabled in Settings->Face ID & Passcode.

ios devmode enable --udid=<DEVICE_UDID> --enable-post-restart 



Open the Settings App on the device.



Note: If using a Mac Mini, both the Mac and the iPhone must be signed into the same Apple ID.





Plug your USB Bluetooth dongle into an available USB port on a LANforge machine. If you have a testbed consisting of multiple LANforge machines, the USB Bluetooth dongle can be inserted into any one of them.
Open a terminal on the LANforge machine that now holds the USB Bluetooth dongle and run:
bluetoothctl
The terminal window should show show an entry with an accompanying MAC address.

dmesg -w, and insert the Bluetooth dongle into a USB port on the LANforge. The terminal window should show dmesg output containing a string in the form 'usb 1-2.1.4', indicating in this case that '2-1-4' is the USB path of the adapter.


Resource-{SHELF}.{RESOURCE}:{USB-PATH}Resource-1.1:2-1-4








Keystrokes can be sent directly to an interop device using the BT Keystroke Scratchpad.
Select the target device from the interop tab of the LANforge GUI.
Navigate to the BT Keystroke Scratchpad menu.

3a. To use the scratchpad, type your desired keystrokes into the BT Keystroke Scratchpad text box. You will see the converted forms of those strokes appear in the Converted Keystrokes text box. Once you are ready to send those keystrokes to the connected device, hit Send Keystrokes. Alternatively, select the auto-send checkbox to automatically send new keystrokes to the device as you type them.
3b. In the lower half of the panel, under Common iOS Navigation Commands, there are a set of common keystrokes that you can automatically send to the device simply by clicking. This method is useful for keystrokes that are not present on traditional keyboards like Home Screen.
Once a keystroke has been sent, it will appear in the Sent Keystroke Sequences dialogue box.
The state of the Bluetooth connection can also be controlled from this menu with the BT Pause, BT Resume, and BT Reconnect buttons.
A LANforge CT521B system supports management of up to four iOS devices connected via USB, where each is paired with its own USB bluetooth dongle that is also connected to the system. (4 devices + 4 dongles)
Screen Mirroring iOS devices on Fedora-based LANforge systems is not yet supported. But screen mirroring on MacOS machines is supported.
Automated installation and removal of the iOS InterOp app through the Interop tab's Batch-Modify window is not yet supported.