Advanced Android device control with modern web interface, wireless connectivity, and comprehensive automation features.
- Modern Web Interface - Beautiful, responsive UI with real-time controls
- Wireless ADB Connection - Connect devices over WiFi without USB cables
- Cross-Platform Support - Works on Windows, macOS, and Linux
- Advanced Automation - Batch operations, performance monitoring, and scripting
- Electron Desktop App - Native desktop experience with system integration
- Docker Support - Easy deployment with containerization
- Python API - FastAPI backend with comprehensive device management
- File Transfer - Drag-and-drop file transfers between device and computer
- Screen Recording - Built-in screen recording with customizable settings
- Real-time device discovery and management
- High-quality screen mirroring with scrcpy
- Remote shell access and command execution
- APK installation and management
- Device backup and restore
- Performance monitoring and optimization
- Network speed testing
- Automated app testing
- Node.js 18+
- Python 3.8+
- Android device with USB debugging enabled
# Clone the repository
git clone https://github.com/jtgsystems/Phone-Control-Project.git
cd Phone-Control-Project
# Install Node.js dependencies
npm install
# Install Python dependencies
pip install -r requirements.txt
# Start the application
npm start
# Clone and start with Docker
git clone https://github.com/jtgsystems/Phone-Control-Project.git
cd Phone-Control-Project
# Start all services
docker-compose up -d
# Access the web interface
open http://localhost:3000
# Install and start Electron app
npm install
npm run electron
- Enable Developer Options on your Android device
- Enable USB Debugging in Developer Options
- Connect device via USB cable
- Authorize the connection when prompted
- First connect via USB to enable WiFi debugging
- Click "Enable WiFi" button for your device
- Note your device's IP address
- Click "WiFi Connect" and enter the IP address
- Disconnect USB cable - you're now wireless!
- Click "Start Mirror" to begin screen mirroring
- Use keyboard shortcuts for common actions
- Customize video quality in settings
- Click "Transfer Files" to upload/download files
- Drag and drop files directly onto the interface
- Monitor transfer progress in real-time
- Click "ADB Shell" to open command interface
- Execute any ADB command directly
- View command history and output
// Example: Batch install APKs
const automation = new DeviceAutomation(deviceController);
const results = await automation.batchInstallApks(deviceId, [
'/path/to/app1.apk',
'/path/to/app2.apk'
]);
// Monitor device performance for 60 seconds
const metrics = await automation.monitorPerformance(deviceId, 60000);
console.log('CPU Usage:', metrics.summary.cpu.avg);
// Automated app testing
const testActions = [
{ type: 'tap', x: 500, y: 1000 },
{ type: 'swipe', x1: 300, y1: 800, x2: 300, y2: 400 },
{ type: 'text', text: 'Hello World' }
];
await automation.testApp(deviceId, 'com.example.app', testActions);
Phone-Control-Project/
βββ src/
β βββ api/ # Python FastAPI backend
β βββ ui/ # Web interface (HTML/CSS/JS)
β βββ core/ # Core device management
β βββ utils/ # Automation utilities
βββ Software/ # Bundled ADB and scrcpy
βββ electron-main.js # Electron desktop app
βββ docker-compose.yml # Docker deployment
GET /api/devices
- List connected devicesPOST /api/connect-wifi
- Connect via WiFiPOST /api/enable-wifi/{device_id}
- Enable WiFi debugging
POST /api/scrcpy/start
- Start screen mirroringPOST /api/scrcpy/stop
- Stop screen mirroringPOST /api/screenshot/{device_id}
- Take screenshot
POST /api/upload/{device_id}
- Upload file to devicePOST /api/download/{device_id}
- Download from device
POST /api/shell-command
- Execute shell commandPOST /api/install-apk
- Install APK filePOST /api/backup
- Backup device data
# Web Server
PORT=3000
NODE_ENV=production
# API Server
API_HOST=0.0.0.0
API_PORT=8000
PYTHONPATH=/app
# Database
REDIS_URL=redis://localhost:6379
{
"bitrate": "8M",
"maxSize": "1080",
"renderer": "opengl",
"stayAwake": true,
"showTouches": true
}
- Concurrent Operations - Multiple devices handled simultaneously
- Efficient Streaming - Optimized video compression and transmission
- Memory Management - Smart resource cleanup and monitoring
- Network Optimization - Adaptive bitrate and connection pooling
- Input validation and sanitization
- Secure file upload handling
- Process isolation and sandboxing
- Authentication and authorization support
- Certificate validation for HTTPS
- Windows 10/11
- macOS 10.15+
- Linux Ubuntu 18.04+
- Android 5.0+ (API level 21+)
- Fork the repository
- Create a feature branch:
git checkout -b feature-name
- Make your changes and test thoroughly
- Commit changes:
git commit -m 'Add feature description'
- Push to branch:
git push origin feature-name
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Device not detected:
- Ensure USB debugging is enabled
- Try different USB cable/port
- Install device drivers (Windows)
Connection timeout:
- Check firewall settings
- Verify IP address is correct
- Ensure device and computer are on same network
Screen mirroring laggy:
- Reduce video bitrate in settings
- Lower maximum resolution
- Check network bandwidth
- π Documentation
- π Report Issues
- π¬ Discussions
- iOS device support
- Cloud deployment options
- Machine learning automation
- Plugin system for extensions
- Multi-language support
- Advanced scripting interface
Built with β€οΈ by JTG Systems
Empowering developers with advanced Android device control