Skip to content

Releases: Fred12301/FastbootGUI

FastbootGui Version 0.2

Choose a tag to compare

@Fred12301 Fred12301 released this 14 Mar 14:20
b82d882

** Problem with the Browser feature on Windows: the script will shut down because a module called "win32timezone" is missing. I need to find a way to fix this.

20250311_173500
Updates :

  1. Assignment of the "selected_file" attribute
    The attribute is now initialized in the constructor (self.selected_file = None) to prevent assignment errors.

  2. Error handling when checking adb/fastboot commands
    In the update_device_status method, exceptions (notably FileNotFoundError) are handled to prevent the application from crashing.

  3. Full translation into English
    All text strings have been translated into English by default (with the option to switch to French via the language toggle).

  4. Multi-threading and real-time feedback
    All long-running operations (download, extraction, installation, update, flash, etc.) run in separate threads to ensure UI responsiveness. A label at the bottom displays the real-time status of the devices.

  5. Adding an automatic detection feature (in a loop), which attempts to detect your device via adb/fastboot.

FastbootGuiMini - Project Tkinter

Choose a tag to compare

@Fred12301 Fred12301 released this 12 Mar 03:14
d30b6f0

17417490963302842693840598752405

1741749170993985099618742460049

17417492081522107131080796701370

  • Flash partition

  • Choose a partition

  • Choose a slot [A/B] or none

  • Terminal emulator connected to your terminal

  • Translation in French and English

  • Black/White color choice for the interface

  • White/Black color choice for the log

  • Lock/Unlock Bootloader via fastboot

  • Reboot

  • Erase partition data

Fix applied to version 1, the screen is now responsive and can be resized if desired.

FastbootGui Version 0.1

Choose a tag to compare

@Fred12301 Fred12301 released this 11 Mar 21:40
e592608

Problem with the Browser feature on Windows: the script will shut down because a module called "win32timezone" is missing.

20250311_173500

20250311_173512

20250311_173521

20250311_173530

20250311_173541

FastBootGUI is a graphical application developed with Kivy for managing ADB (Android Debug Bridge) and Fastboot, two essential tools for administering Android devices via USB.

The application provides a user-friendly interface that allows users to:

Install and update ADB/Fastboot

Execute Fastboot and ADB commands

Flash partitions on an Android device

Display system information via Fastboot

Interact with connected Android devices


It is designed to work on both Linux, handling background operations through multi-threading to ensure the interface remains responsive while commands are being executed.

  1. Key Features

Installation and Update of ADB/Fastboot

The application enables users to:

Check if ADB and Fastboot are installed (Check ADB/Fastboot).

Download and install the latest version of Google’s platform-tools.

Update ADB/Fastboot if an outdated version is detected.

Optimizations:

  • Resumable download in case of interruptions.

  • Integrity verification using a hash check on the downloaded file.

  • Automatic extraction of the archive after downloading.

Android Device Management

FastBootGUI provides the following functionalities:

List connected ADB devices (Check ADB Devices).

List connected Fastboot devices (Check Fastboot Devices).

Check if a device is in FastbootD mode.

Display all Fastboot variables (getvar all).

Reboot devices into various modes:

Recovery Mode (Reboot Recovery).

Bootloader/Fastboot Mode (Reboot Bootloader).

FastbootD Mode (Reboot FastbootD).

EDL (Emergency Download Mode) (Reboot EDL).

Advanced Flashing Management

The application allows users to flash a firmware or file onto a specific partition:

Select a .img, .tar, or .zip file (Browse).

Choose the target partition (system, boot, recovery, vendor, etc.).

Select the target slot (A, B, or None for global partitions).

Verify device status before flashing.

Enable verbose mode to display detailed logs.

Enable force mode to bypass warnings.

Before flashing, a confirmation dialog box appears to prevent accidental actions.

Sideload Command

The application supports sideloading to install system updates without a PC:

Select a .zip file to be flashed.

Choose between adb -b sideload or adb -a sideload modes.

Additional Tools

Erase the cache via Fastboot (Erase Cache).

View connected USB devices (Check LSUSB – Linux only).

Export logs to a .txt file.

Cancel ongoing operations (e.g., downloading) via the Cancel Operation button.

  1. Technology Used

Graphical Interface

The user interface is built with Kivy, a Python library for developing modern and responsive applications.

Multi-threading Management

Long-running operations (downloads, flashing, sideloading) run in separate threads to keep the user interface responsive.

Logging and Debugging

Logs are displayed directly in the graphical interface.

A adbinstaller.log file stores a complete history of operations.

Users can dynamically change the logging level (DEBUG, INFO, WARNING, ERROR).

  1. Options and Settings

Customizable Configuration

The application allows users to customize several settings:

Logging level (DEBUG, INFO, WARNING, ERROR).

Enable "Force Install" mode to bypass restrictions.

Enable verbose logging to display more detailed logs.

Security and Confirmation

Automatic privilege verification (admin/root) before executing critical commands.

Confirmation dialogs before performing critical actions (flashing, rebooting into EDL mode).

  1. Improvements and Optimizations

This script includes several advanced optimizations:

Enhanced error handling: If a Fastboot command fails, an error message is displayed with troubleshooting tips.

Resumable downloads: If a file is partially downloaded, the script resumes from the last received byte.

Validation of downloaded files using hash verification (SHA256).

Automatic removal of old versions when updating.

Addition of a cancel button to stop an ongoing download.

Progress bar for downloads and extraction processes.

  1. Use Cases

FastBootGUI is ideal for:

Android developers who regularly flash firmwares and custom ROMs.

Repair technicians who need quick access to ADB and Fastboot tools.

Advanced users who want to modify their device (custom recovery installation, rooting, etc.).

System partition backup and recovery before making critical changes.

FastBootGUI is a complete and robust solution for managing Fastboot and ADB with an intuitive graphical interface. With its numerous features, modular architecture, and advanced optimizations, it simplifies complex tasks related to Android device management.


Compiling FastBootGUI.py on Windows

To compile FastBootGUI.py into a Windows executable (.exe), we will use PyInstaller, a tool that transforms a Python script into a standalone executable program.


  1. Installing Dependencies

Before compiling, make sure you have installed Python and the required libraries.

🔹 Step 1: Install Python (if not already installed)

Download and install Python 3.x from python.org.

Add Python to PATH during installation (select the Add Python to PATH option).

🔹 Step 2: Install Required Modules

Open a command prompt (CMD or PowerShell) and run:

pip install kivy pyinstaller

If additional dependencies are required, install them with:

pip install -r requirements.txt

(Only if a requirements.txt file is available).


  1. Compiling with PyInstaller

Once the dependencies are installed, we will generate an .exe using PyInstaller.

🔹 Step 3: Compile in Simple Mode (Executable in a Folder)

Open a terminal in the directory containing FastBootGUI.py, then type:

pyinstaller --name=FastBootGUI --windowed --onefile FastBootGUI.py

Option Explanations:

--name=FastBootGUI → Defines the name of the .exe file.

--windowed → Hides the console (prevents a black terminal window from appearing).

--onefile → Generates a single .exe file instead of a folder containing multiple files.

After execution, the final executable will be located in the dist/ folder under the name FastBootGUI.exe.


  1. Adding a Custom Icon (Optional)

If you want to add a custom icon (.ico) to the executable:

pyinstaller --name=FastBootGUI --windowed --onefile --icon=icon.ico FastBootGUI.py

Replace icon.ico with the path to your icon file.

  1. Including Additional Files (If Needed)

If your application requires additional files (e.g., images, resources), use the following command to include them:

pyinstaller --name=FastBootGUI --windowed --onefile --add-data "path/to/file;." FastBootGUI.py

On Windows, replace : with ; in the --add-data option.


  1. Testing and Execution

Once the compilation is complete:

  1. Navigate to the dist/ folder and run FastBootGUI.exe to ensure everything works correctly.

  2. If errors appear, try using --onedir instead of --onefile to see if it resolves the issue:

pyinstaller --name=FastBootGUI --windowed --onedir FastBootGUI.py


  1. Creating an Installer (Optional)

If you want to create a professional Windows installer (.exe), use a tool like:
Inno Setup
NSIS (Nullsoft Scriptable Install System)

With Inno Setup, you can create a setup.exe with an installation wizard.

Summary of Steps

  1. Install dependencies (pip install kivy pyinstaller).
  2. Run PyInstaller (pyinstaller --windowed --onefile FastbootGUI.py).
  3. Test the executable (dist/FastBootGUI.exe).
  4. Create an installer (optional) with Inno Setup.

Your program is now compiled and ready to run on Windows!