100 lines
3.6 KiB
Markdown
100 lines
3.6 KiB
Markdown
# ADB Unlock, Screenshot & Scrcpy Tool
|
||
|
||
A user-friendly Python GUI application for managing Android devices. This tool allows you to unlock devices, take screenshots, mirror the device screen, and transfer photos with drag-and-drop functionality.
|
||
|
||
## Features
|
||
- **Unlock Devices**: Easily unlock an Android device using ADB.
|
||
- **Take Screenshots**: Capture and save screenshots from the connected Android device.
|
||
- **Screen Mirroring**: Use Scrcpy for real-time screen mirroring and control.
|
||
- **Photo Transfer**: Drag and drop photos to transfer them to the connected device.
|
||
|
||
## Requirements
|
||
|
||
### Software
|
||
- **Python 3** (with Tkinter installed):
|
||
- Tkinter comes bundled with most Python installations. If not, install it using the instructions below.
|
||
- **ADB** (Android Debug Bridge): Ensure it is installed and added to your system PATH.
|
||
- **Scrcpy**: Install and add it to your system PATH for screen mirroring.
|
||
- **Devices Configuration**: Create a `devices.json` file in the same directory as the script to store device serials.
|
||
|
||
#### Example `devices.json`:
|
||
```json
|
||
{
|
||
"devices": [
|
||
"emulator-5554",
|
||
"emulator-5556",
|
||
"device_serial_1",
|
||
"device_serial_2"
|
||
]
|
||
}
|
||
```
|
||
|
||
### Tkinter Installation (if not already installed)
|
||
- **Debian/Ubuntu**: `sudo apt-get install python3-tk`
|
||
- **macOS** (Homebrew): `brew install python-tk` (Tkinter is usually included by default).
|
||
- **Windows**: Tkinter is typically included in the official Python installer.
|
||
|
||
### Installation of ADB and Scrcpy
|
||
- **ADB**:
|
||
- Download the Android SDK Platform Tools from [Google](https://developer.android.com/studio/releases/platform-tools).
|
||
- Add the folder containing `adb` to your system PATH.
|
||
- **Scrcpy**:
|
||
- Installation instructions for various platforms can be found on the [Scrcpy GitHub page](https://github.com/Genymobile/scrcpy).
|
||
- Add the Scrcpy binary to your system PATH.
|
||
|
||
## How to Run
|
||
1. Clone or download the repository containing this script.
|
||
2. Ensure `devices.json` is in the same directory.
|
||
3. Run the script:
|
||
```bash
|
||
python script_name.py
|
||
```
|
||
4. Follow the on-screen instructions to select a device and perform actions.
|
||
|
||
## How to Use
|
||
|
||
1. **Device Selection**:
|
||
- Select a device from the dropdown menu populated using `devices.json`.
|
||
|
||
2. **Unlock Device**:
|
||
- Click the "Unlock Device" button to unlock the selected device.
|
||
|
||
3. **Take Screenshot**:
|
||
- Enter a name for the screenshot (e.g., `screenshot.png`).
|
||
- Click the "Take Screenshot" button to save the screenshot to the default folder.
|
||
|
||
4. **Screen Mirroring**:
|
||
- Set the maximum FPS for Scrcpy (optional).
|
||
- Click "Start scrcpy" to mirror and control the device screen.
|
||
|
||
5. **Photo Transfer**:
|
||
- Drag and drop a photo file into the input field or manually provide its path.
|
||
- Click "Push Photo" to transfer the photo to the device.
|
||
|
||
## Dependencies
|
||
This project relies only on Python’s standard library:
|
||
- `json`
|
||
- `subprocess`
|
||
- `os`
|
||
- `tkinter`
|
||
|
||
### No External Python Packages Required
|
||
All required modules come bundled with Python. However, ensure:
|
||
- `adb` is installed and on your PATH.
|
||
- `scrcpy` is installed and on your PATH.
|
||
|
||
## Troubleshooting
|
||
- **ADB or Scrcpy Commands Not Found**:
|
||
- Ensure ADB and Scrcpy are installed and added to your system PATH.
|
||
- **Tkinter Module Not Found**:
|
||
- Follow the installation instructions for your operating system to install Tkinter.
|
||
- **Device Not Listed**:
|
||
- Ensure the device is connected and `adb devices` lists it.
|
||
|
||
## Contributing
|
||
Feel free to submit issues or contribute improvements to the project. Fork the repository and submit a pull request with your changes.
|
||
|
||
## License
|
||
This project is licensed under the MIT License. See the `LICENSE` file for details.
|
||
|