π§ Automated Frida Server Management for Android Devices
Features β’ Installation β’ Usage β’ Commands β’ Scripts β’ Wireless β’ Contributing
F-for-Frida is a powerful Python tool that automates the entire lifecycle of managing Frida server on Android devices. Whether you're doing security research, mobile app testing, or reverse engineering, this tool simplifies the tedious process of downloading, installing, and managing Frida server instances.
- π One-command setup - Get Frida running in seconds
- π± Multi-device support - Manage multiple Android devices simultaneously
- π Wireless ADB - Connect to devices over WiFi
- π Built-in scripts - SSL pinning bypass, root detection bypass, and more
- π Auto-architecture detection - Automatically detects ARM64, ARM, x86, or x86_64
- π¦ Version management - Install any Frida version with ease
- π©Ί Health diagnostics - Built-in doctor command for troubleshooting
- π¨ Beautiful CLI - Rich terminal interface with colors and progress indicators
| Feature | Description |
|---|---|
| Device Detection | Auto-detect connected devices and their authorization status |
| Wireless ADB | Connect, pair, and manage devices over WiFi |
| Root Verification | Validate root access before Frida operations |
| Architecture Detection | Auto-detect CPU architecture for correct binary download |
| Version Management | Install specific or latest Frida server versions |
| Built-in Scripts | SSL bypass, root bypass, anti-debug, crypto logger, and more |
| App Hooking | Simplified interface for hooking applications |
| Process Management | Start, stop, restart Frida server with PID tracking |
| Health Diagnostics | Doctor command to diagnose common issues |
| Configuration | YAML/JSON config files with environment variable support |
Before using F-for-Frida, ensure you have:
- Python 3.8+ installed on your system
- ADB (Android Debug Bridge) installed and in your PATH
- Windows: Install via Android SDK Platform Tools
- Linux:
sudo apt install adb - macOS:
brew install android-platform-tools
- XZ Utils for extracting Frida server archives
- Windows: Install via
winget install xzor download from tukaani.org - Linux:
sudo apt install xz-utils - macOS:
brew install xz
- Windows: Install via
- Rooted Android device with USB debugging enabled
# Clone the repository
git clone https://github.com/CyberDemon73/F-for-Frida.git
cd F-for-Frida
# Create virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate # Linux/macOS
# or
.\venv\Scripts\activate # Windows
# Install the package
pip install -e .# Clone and install dependencies
git clone https://github.com/CyberDemon73/F-for-Frida.git
cd F-for-Frida
pip install -r requirements.txt
# Run directly
python main.py# Check system health
f4f doctor
# List connected devices
f4f devices
# Install latest Frida server
f4f install --latest
# Start Frida server
f4f start
# Check status
f4f statusFor a guided experience, use interactive mode:
f4f interactive# List all devices
f4f devices
# Detailed device info
f4f devices --detailed
# Check Frida status
f4f status -s DEVICE_SERIAL# Setup wireless on USB-connected device
f4f wireless setup
# Connect to device over WiFi
f4f wireless connect 192.168.1.100
# Pair with Android 11+ device
f4f wireless pair 192.168.1.100:37123 123456
# Disconnect
f4f wireless disconnect# Install latest version
f4f install --latest
# Install specific version
f4f install 16.1.17
# Start server
f4f start
# Stop server
f4f stop
# Restart server
f4f restart
# List available versions
f4f versions# List available scripts
f4f scripts list
# Show script content
f4f scripts show ssl-pinning-bypass
# Export script to file
f4f scripts export ssl-pinning-bypass -o bypass.jsAvailable scripts:
ssl-pinning-bypass- Bypass SSL certificate pinningroot-detection-bypass- Bypass root detectionanti-debug-bypass- Bypass anti-debugging techniquesmethod-tracer- Trace method callscrypto-logger- Log cryptographic operationshttp-logger- Log HTTP requests
# List installed apps
f4f hook apps
# List running apps
f4f hook apps --running
# Hook with bypass scripts
f4f hook run com.example.app --bypass ssl --bypass root
# Hook with spawn mode
f4f hook run com.example.app --spawn --script ssl-pinning-bypass
# Start/stop apps
f4f hook start com.example.app
f4f hook kill com.example.app# Run all health checks
f4f doctor# Show current config
f4f config show
# Set a value
f4f config set default_device ABC123
# Initialize config file
f4f config initF-for-Frida includes several pre-built Frida scripts for common security testing tasks:
| Script | Category | Description |
|---|---|---|
ssl-pinning-bypass |
Network | Bypass SSL certificate pinning (OkHttp, TrustManager, etc.) |
root-detection-bypass |
Security | Bypass common root detection mechanisms |
anti-debug-bypass |
Security | Bypass anti-debugging techniques |
method-tracer |
Analysis | Trace method calls with arguments and return values |
crypto-logger |
Crypto | Log cryptographic operations (AES, RSA, hashing) |
http-logger |
Network | Log HTTP/HTTPS requests and responses |
# Quick bypass setup
f4f hook run com.target.app --bypass ssl --bypass root --spawn
# Use specific script
f4f hook run com.target.app --script crypto-logger
# Export and customize
f4f scripts export ssl-pinning-bypass -o my_bypass.js
# Edit my_bypass.js as needed
frida -U -f com.target.app -l my_bypass.jsF-for-Frida supports wireless ADB connections for untethered testing:
# With device connected via USB
f4f wireless setup
# Output: Wireless setup complete! Device available at 192.168.1.100:5555# Enable Wireless debugging on device
# Get pairing code from Developer Options
f4f wireless pair 192.168.1.100:37123 123456
f4f wireless connect 192.168.1.100:5555# List wireless devices
f4f wireless list
# Disconnect specific device
f4f wireless disconnect 192.168.1.100:5555
# Disconnect all
f4f wireless disconnectF-for-Frida supports configuration via files or environment variables.
Create ~/.f4f/config.yaml:
# Default device to use
default_device: ABC123
# Default Frida version
default_version: "16.1.17"
# Auto-start server after install
auto_start: true
# Frida server port
frida_port: 27042
# Wireless settings
wireless_port: 5555
saved_wireless_devices:
- "192.168.1.100:5555"
# Logging
verbose: false
log_file: ~/.f4f/frida.logexport F4F_DEFAULT_DEVICE=ABC123
export F4F_DEFAULT_VERSION=16.1.17
export F4F_VERBOSE=true
export F4F_FRIDA_PORT=27042F-for-Frida/
βββ f_for_frida/ # Main package
β βββ __init__.py # Package initialization
β βββ cli.py # CLI interface (Click + Rich)
β βββ core/ # Core functionality
β β βββ adb.py # ADB client wrapper
β β βββ device.py # Device management
β β βββ frida_manager.py # Frida server management
β β βββ wireless.py # Wireless ADB support
β β βββ scripts.py # Frida scripts management
β β βββ doctor.py # Health diagnostics
β β βββ hooker.py # App hooking helpers
β βββ utils/ # Utilities
β βββ config.py # Configuration management
β βββ downloader.py # Download utilities
β βββ logger.py # Logging configuration
βββ tests/ # Unit tests
βββ .github/ # GitHub Actions CI/CD
βββ main.py # Entry point
βββ setup.py # Package setup
βββ pyproject.toml # Modern Python packaging
βββ requirements.txt # Dependencies
βββ LICENSE # MIT License
βββ README.md # This file
f4f doctorThis checks:
- Python version
- ADB installation
- XZ Utils
- Device connection
- Root access
- SELinux status
- Frida server status
- Frida client installation
β "No device connected"
- Ensure USB debugging is enabled
- Check USB cable
- Run
adb devicesto verify - Authorize on device if prompted
β "Device is not rooted"
Root your device with Magisk or use a rooted emulator.
β "'xz' command not found"
- Windows:
winget install xz - Linux:
sudo apt install xz-utils - macOS:
brew install xz
β "Frida server fails to start"
- Check SELinux:
adb shell su -c "setenforce 0" - Verify permissions:
adb shell chmod 755 /data/local/tmp/frida-server* - Check logs:
adb logcat | grep frida - Reinstall:
f4f install --latest --force
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=f_for_frida
# Format code
black f_for_frida/
# Lint
flake8 f_for_frida/
# Type check
mypy f_for_frida/Contributions are welcome! See CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Frida - The amazing dynamic instrumentation toolkit
- Click - Beautiful CLI library
- Rich - Rich text formatting for terminals
- Author: Mohamed Hisham Sharaf
- GitHub: @CyberDemon73
Made with β€οΈ for the security research community