- iOS Location Update: Wired and wireless, real-time updates to the device’s location on iOS 17 and iOS 18.
- Route Planning: Simulates a journey, mimicking a realistic route between points.
- Simple Integration: Easy-to-use Python script with an even easier-to-use HTML interface.
| Web UI | Phone View |
|---|---|
![]() |
![]() |
This project is very much in early development at the moment. It has only been tested on iOS 18.0.1 and MacOS 14.5. Please open an issue if problems arise.
A majority of the heavy lifting for changing the device location is generously provided by pymobiledevice3. Any problems related to pymobiledevice3 should be dealt with there.
To get started, make sure you have Python 3 installed. Then follow these steps:
-
Clone this repository:
git clone https://github.com/alexdalat/ios-virtual-loc.git cd ios-virtual-loc -
Set up a virtual environment:
python3 -m venv env source env/bin/activate -
Install required libraries:
pip install -r requirements.txt
-
Installing pymobiledevice3. Follow the instructions here to activate developer mode on iOS.
-
Run the main script, it will prompt for sudo access:
python main.py
The following:
is the only sudo command being executed.ios-virtual-loc/TunnelService.py
Line 27 in d4caf7d
-
Visit the URL displayed in the console (usually
http://127.0.0.1:5432) in your browser. -
Double-click to change the device location. The iOS device is blue and the laptop (if available) appears in red. The rest is self-explanatory.

