MiFlash Tool Native Linux khusus Arch Linux dan Ubuntu Dibuat dengan C++ modern + GTKmm + Firehose Qualcomm Native Engine.
QWareFlash adalah tool flashing Qualcomm EDL (Emergency Download Mode) untuk Linux yang dibuat sebagai alternatif native Linux dari MiFlash Windows.
Target utama:
- Arch Linux
- Ubuntu
- Debian-based distro
- KDE / GNOME / XFCE
Fokus project:
- Native Linux
- Fastboot + EDL
- Firehose flashing
- Multi-device support
- GUI modern GTKmm
- XML parser rawprogram.xml
- Realtime flashing progress
- Stable untuk service center dan teknisi
QWareFlash/
├── README.md
├── LICENSE
├── CMakeLists.txt
├── assets/
│ ├── icons/
│ ├── logo/
│ └── themes/
│
├── docs/
│ ├── architecture.md
│ ├── firehose.md
│ ├── edl_protocol.md
│ └── build.md
│
├── third_party/
│ ├── pugixml/
│ └── spdlog/
│
├── src/
│ ├── main.cpp
│ │
│ ├── app/
│ │ ├── Application.cpp
│ │ └── Application.hpp
│ │
│ ├── ui/
│ │ ├── MainWindow.cpp
│ │ ├── MainWindow.hpp
│ │ ├── DeviceTable.cpp
│ │ ├── FlashPage.cpp
│ │ ├── LogPanel.cpp
│ │ └── widgets/
│ │
│ ├── core/
│ │ ├── DeviceManager.cpp
│ │ ├── FlashManager.cpp
│ │ ├── ProgressManager.cpp
│ │ └── Logger.cpp
│ │
│ ├── protocol/
│ │ ├── firehose/
│ │ │ ├── FirehoseClient.cpp
│ │ │ ├── FirehoseTransport.cpp
│ │ │ ├── Sahara.cpp
│ │ │ └── FirehoseXML.cpp
│ │ │
│ │ ├── fastboot/
│ │ │ └── FastbootClient.cpp
│ │ │
│ │ └── usb/
│ │ ├── USBDevice.cpp
│ │ └── USBMonitor.cpp
│ │
│ ├── parser/
│ │ ├── RawProgramParser.cpp
│ │ ├── PatchParser.cpp
│ │ └── XMLValidator.cpp
│ │
│ ├── platform/
│ │ ├── linux/
│ │ │ ├── UdevMonitor.cpp
│ │ │ └── Permissions.cpp
│ │
│ │ └── common/
│ │ └── Process.cpp
│ │
│ └── utils/
│ ├── FileUtils.cpp
│ ├── StringUtils.cpp
│ ├── ThreadPool.cpp
│ └── CRC32.cpp
│
├── resources/
│ ├── qwareflash.desktop
│ ├── udev/
│ │ └── 99-qwareflash.rules
│ └── mime/
│
├── firmware/
│ └── examples/
│
├── scripts/
│ ├── build_arch.sh
│ ├── build_ubuntu.sh
│ ├── package_deb.sh
│ └── package_pkgbuild.sh
│
└── build/
main.cpp
↓
Application
↓
GTK MainWindow
↓
DeviceManager start monitoring USB
QWareFlash memonitor:
- Qualcomm HS-USB QDLoader 9008
- Fastboot devices
- ADB devices
Menggunakan:
- libusb
- udev monitor
- lsusb parser
User memilih folder firmware:
firmware/
├── prog_firehose_ddr.elf
├── rawprogram0.xml
├── patch0.xml
└── images/
Parser membaca:
- rawprogram.xml
- patch.xml
- partition mapping
Tahapan komunikasi:
USB Connect
↓
Sahara Protocol
↓
Upload Firehose ELF
↓
Switch to Firehose Mode
↓
Ready Flashing
QWareFlash melakukan:
Read XML
↓
Parse partition
↓
Send image chunk
↓
Write to storage
↓
Verify checksum
↓
Next partition
GUI menampilkan:
- Progress bar
- Kecepatan transfer
- Status partisi
- Log realtime
- Error handler
| Komponen | Teknologi |
|---|---|
| Bahasa | C++20 |
| GUI | GTKmm 4 |
| Build System | CMake |
| XML Parser | pugixml |
| Logging | spdlog |
| USB | libusb |
| Threading | std::thread |
| Packaging | PKGBUILD + DEB |
sudo pacman -S \
gtkmm-4.0 \
cmake \
gcc \
pkgconf \
libusb \
pugixml \
spdlogsudo apt install \
build-essential \
cmake \
libgtkmm-4.0-dev \
libusb-1.0-0-dev \
libpugixml-dev \
libspdlog-devmkdir build
cd build
cmake ..
make -j$(nproc)mkdir build
cd build
cmake ..
make -j$(nproc)- Struktur project
- GTKmm MainWindow
- USB monitor
- XML parser
- Firehose basic
- Sahara protocol
- Flashing engine
- Progress realtime
- Multi-device
- Drag & drop firmware
- Firmware verification
- Auto detect Xiaomi firmware
- Theme engine
- Secure boot bypass research
- Plugin architecture
- Online firmware database
- OTA unpacker
QWareFlash berjalan langsung ke Qualcomm EDL interface.
Gunakan dengan hati-hati karena kesalahan flashing dapat menyebabkan:
- hardbrick
- bootloop
- kehilangan data
QWareFlash
by QWare, Inc
Wave Master
Fajar Julyana Founder of QWare, Inc
Bandung, Indonesia
Email: fajarjulyana1@gmail.com