VoxHash/Windscribe-IP-Changer-for-Android
Python script to automatically change IP addresses on Android devices and emulators by connecting to different Windscribe VPN servers via ADB (Android Debug Bridge).
Windscribe IP Changer for Android
Python script to automatically change IP addresses on Android devices and emulators by connecting to different Windscribe VPN servers via ADB (Android Debug Bridge).
✨ Features
- ✅ Connects to Android devices/emulators via ADB
- ✅ Fully automated UI automation - No GUI interaction required
- ✅ Automatically changes IP by connecting to random Windscribe servers
- ✅ Supports both physical devices and Android emulators
- ✅ Multi-device support - Manage multiple devices simultaneously with different connections
- ✅ Configurable server locations
- ✅ Automatic IP rotation mode
- ✅ Current IP and status checking
- ✅ Works with Windscribe CLI or Android app
- ✅ Smart screen size detection and adaptive UI interaction
🧭 Table of Contents
🚀 Quick Start
# 1) Clone repository
git clone https://github.com/VoxHash/windscribe-ip-changer-android.git
cd windscribe-ip-changer-android
# 2) Verify Python 3.x is installed
python3 --version
# 3) Verify ADB is installed and device is connected
adb devices
# 4) Run script
python3 windscribe_ip_changer.py💿 Installation
See docs/installation.md for platform-specific steps.
Prerequisites
- Python 3.x installed
- ADB (Android Debug Bridge) installed and configured
- Linux:
apt-get install adbor your package manager - macOS:
brew install android-platform-tools - Windows: Download from Android Developer site
- Linux:
- Windscribe installed on Android device/emulator
- Android app: Install from Google Play Store or APK
- CLI: Install from https://windscribe.com (if available)
🛠 Usage
Basic usage here. Advanced usage in docs/usage.md.
Single IP Change
python3 windscribe_ip_changer.pyAutomatic IP Rotation
python3 windscribe_ip_changer.py --rotate --count 10 --interval 300Custom Server List
python3 windscribe_ip_changer.py --servers servers.jsonSingle Device with Device ID
python3 windscribe_ip_changer.py --device emulator-5554List Connected Devices
python3 windscribe_ip_changer.py --list-devicesMulti-Device Management
Connect multiple devices to different locations simultaneously:
python3 windscribe_ip_changer.py --multi-device multi_device_config.jsonExample multi_device_config.json:
[
{
"device_id": "emulator-5554",
"location": "us-east"
},
{
"device_id": "emulator-5556",
"location": "eu-west"
}
]All Options
python3 windscribe_ip_changer.py \
--adb-path /custom/path/to/adb \
--device emulator-5554 \
--servers servers.json \
--rotate \
--count 20 \
--interval 600 \
--wait 8⚙️ Configuration
| Option | Description | Default |
|---|---|---|
--adb-path |
Path to ADB executable | Auto-detected |
--device |
Specific device ID to target | Auto-select first device |
--list-devices |
List all connected devices and exit | - |
--multi-device |
Path to JSON file with multi-device config | - |
--servers |
Path to JSON file with server list | Uses defaults |
--wait |
Seconds to wait after connecting | 5 |
--rotate |
Enable automatic IP rotation | False |
--count |
Number of rotations | 5 |
--interval |
Seconds between rotations | 300 |
Full reference: docs/configuration.md
📚 Examples
- Start here: docs/examples/example-01.md
- More: docs/examples/
🧩 Architecture
The script works by:
- Connecting to Android device/emulator via ADB
- Checking if Windscribe is installed (CLI or app)
- Getting current IP and Windscribe status
- Disconnecting from current server (if connected) via UI automation
- Automatically navigating Windscribe app UI to select location
- Connecting to a random Windscribe server using ADB input commands
- Verifying the new IP address
UI Automation: The script uses ADB shell commands (input tap, input text, etc.) to fully automate the Windscribe Android app from inside the app on each device. It:
- Makes taps at specific screen coordinates to navigate the UI
- Sends text input to search for and select server locations
- Changes IP from within the app on each device independently
- Adapts to different screen sizes and handles UI variations automatically
- Requires no manual GUI interaction - fully automated
Multi-Device Support: Each device can have a different VPN connection simultaneously. The script manages connections from inside the Windscribe app on each device, allowing independent IP addresses per device.
See docs/architecture.md for details.
🗺 Roadmap
Planned milestones live in ROADMAP.md. For changes, see CHANGELOG.md.
🤝 Contributing
We welcome PRs! Please read CONTRIBUTING.md and follow the PR template.
🔒 Security
Please report vulnerabilities via SECURITY.md.
📄 License
This project is licensed under the MIT License - see LICENSE for details.
📞 Support
For issues, questions, or contributions, see SUPPORT.md.
Note: This script requires Windscribe to be installed and configured on your Android device or emulator. It uses ADB shell commands to interact with Windscribe via fully automated UI automation - no manual GUI interaction is required. Proper ADB setup is essential.