Releases: mustafakorkunc/asus-dearmour
Releases · mustafakorkunc/asus-dearmour
Release list
DeArmour v1.1.2 (Public Beta): Non-Empty Output Collision Protection
DeArmour v1.1.2: Non-Empty Output Collision Protection
This update addresses critical feedback regarding output directory handling and prevents silent driver collisions when rerunning DeArmour.
What's Changed in v1.1.2
🛡️ Non-Empty Output Directory Protection
- Default Refusal in CLI: Refuses non-empty output directories by default, preventing accidental mixing of drivers from different laptop models or versions.
- Why this matters: Batch scripts like \INSTALL_ALL_DRIVERS.bat\ deploy all *.inf\ files recursively via \pnputil. Leftover drivers from previous runs could otherwise be installed and risk device conflicts or system instability.
- --overwrite\ Flag: Safely wipes target directory contents before extraction to guarantee clean driver isolation.
- --merge\ Flag: Explicitly allows merging when combining multiple packages is intended.
- System Root Protection: \clean_output_directory\ blocks accidental purging of root drives (\C:\), Windows system paths, or user home directories.
🖥️ Interactive GUI Prompt
- When initiating extraction (either via Cloud Pipeline or Local Extractor) into an existing non-empty directory, a 3-way prompt is displayed:
- Clean & Overwrite (Recommended)
- Merge
- Cancel
🧪 Test Verification
- Added automated unit tests for non-empty directory refusal, directory cleaning safeguards, overwrite mode, and merge mode.
- Test suite expanded to 48 passing tests.
Downloads
| Asset | Description | Size |
|---|---|---|
| *\DeArmour-v1.1.2-win64.exe* | Standalone Windows GUI executable (No Python required). | ~12.7 MB |
| *\DeArmour-v1.1.2-source-portable.zip* | Portable source archive. | ~87 KB |
DeArmour v1.1.1 (Public Beta): Reliability and Security Hardening
DeArmour v1.1.1: Reliability & Security Hardening
This release delivers an engineering hardening pass across DeArmour's core architecture, improving correctness, security against untrusted archives, download safety, GUI thread-safety, and Windows driver deployment resilience.
Highlights in v1.1.1
🛡️ Archive Extraction Security
- Zip Slip & Directory Traversal Protection: Implemented strict destination boundary checks and path sanitization. Any archive entry containing path traversal sequences (
../,..\) or Windows drive letters is safely rejected. - Memory-Safe Carving: Switched binary stream carving to memory mapping (
mmap) with chunked 1 MB streaming, preventing memory spikes when processing multi-gigabyte installer packages. - Guaranteed Cleanup: Ensured intermediate work folders (
_carved) are cleaned up immediately viatry...finally. - Broader Archive Verification: Validates
zip,7z,cab(viaexpand.exe -D), andrar(via7z t).
⚡ Downloader Reliability & Atomic Writes
- Atomic File Downloads: Packages download to a temporary
.partfile and atomically replace the destination only upon successful completion. Failed or aborted downloads automatically clean up.partartifacts to prevent corrupt cached packages. - Accurate Hardware Detection: Removed the silent dummy fallback to
"FA506NC". On non-ASUS systems or failed registry detection, DeArmour clearly notifies the user and prompts for manual model entry.
🖥️ GUI Thread-Safety & Scoped Processing
- Main Thread UI Marshaling: All background worker log messages, status label updates, and modal popups (
messagebox.showinfo/showerror) are routed throughroot.after(0, ...), eliminating Tkinter cross-thread race conditions. - Isolated Cloud Pipeline: The automatic post-download extraction pipeline strictly scopes its operation to the packages downloaded in the current session, preventing accidental reprocessing of stale files.
📝 INF Parser Robustness
- Quote-Aware Semicolons: Semicolons enclosed within quotes (e.g., in device descriptions) are preserved and no longer misidentified as comments.
- Line Continuation: Added support for INF multi-line entries split with trailing backslashes (
\). - Decorated Strings: Supported localized string definitions (e.g.
[Strings.0409]). - Sanitized Associated Files: Strips disk IDs and directory prefixes, deduplicating payload file names case-insensitively.
- Safe Fallback: Parsing errors on malformed vendor files degrade gracefully without terminating the batch.
📂 Multi-INF Directory Organization
- Multiple Drivers Per Directory: When a single vendor directory contains multiple INF files, all drivers are cataloged and organized without dropping metadata or colliding, generating dedicated
install_<stem>.bat,uninstall_<stem>.bat, anddriver_manifest_<stem>.json. - Payload Asset Preservation: Preserves non-code firmware and config files (
.dll,.bin,.ini,.dat) and subdirectories while filtering out bloatware.
🚀 Hardened Deployment & Removal Scripts
- Windows Driver Store Published ID Resolution: In
uninstall.bat, automatically queries PowerShellGet-WindowsDriver -Onlineto resolve the publishedoemXX.infidentifier assigned by Windows, with graceful fallback and user guidance. - Administrator Elevation: Added automated UAC privilege elevation checks across all generated batch and PowerShell scripts.
- Special Character Path Support: Master PowerShell deployment script now uses
-LiteralPath $PSScriptRootto prevent wildcard parsing errors on directories containing brackets ([]).
🧪 Automated Testing
- 37 / 37 Tests Passing: Added 16 new automated security and regression tests covering path traversal rejection, atomic download cleanup, INF parser edge cases, multi-INF directory handling, and special characters in paths.
Downloads
| Asset | Description | Size |
|---|---|---|
DeArmour-v1.1.1-win64.exe |
Standalone Windows GUI executable (No Python or dependencies required). | ~12.6 MB |
DeArmour-v1.1.1-source-portable.zip |
Portable source archive for Python 3.8 - 3.14 environments. | ~88 KB |
DeArmour v1.1.0 (Public Beta): ASUS Hardware Detection, Cloud Downloader and Silent Unpacking
DeArmour v1.1.0: ASUS Hardware Detection, Cloud Downloader & Silent Unpacking
What's New in v1.1.0
ASUS Cloud Downloader & Hardware Auto-Detection
- Zero-Overhead Hardware Detection: Instantly reads BIOS and baseboard product identifiers from the Windows Registry to identify laptop models (e.g.
FA506NC,GA402RJ) and Windows OS architecture. - Official ASUS Support REST API Client: Connects directly to ASUS servers to query driver packages across Networking, Chipset, Audio, Graphics, Bluetooth, Touchpad, and Utilities.
- Interactive Driver Selection: Select specific drivers or use quick filters ("Select Essentials", "Select All").
- 1-Click Full Pipeline: Download chosen packages from ASUS CDN and immediately unpack them into pure, bloat-free
.inf/.sys/.catrepositories with automatedINSTALL_ALL_DRIVERS.batscripts.
Silent Subprocess Execution (No Flashing CMD Windows)
- Configured native Windows
CREATE_NO_WINDOWcreation flags across all internal extractor invocations (tar.exe,7z.exe,expand.exe). - Black command-prompt windows no longer flash on screen during file carving or unpacking.
Redesigned Dual-Tab Modern Interface
- Built with a clean Catppuccin Mocha dark theme using native Tkinter/ttk.
- Tab 1 (ASUS Cloud Downloader): Hardware detection banner, editable model selector, driver treeview, and pipeline actions.
- Tab 2 (Local File Extractor): Offline extraction flow for local
.exefiles and directories. - Real-time logging console, smooth progress indicators, and 1-click folder shortcuts.
Command Line Interface Upgrades
dearmour --detect: Print detected hardware model and Windows OS architecture.dearmour --fetch [MODEL]: Query official ASUS driver catalog directly in your terminal.
Special Thanks & Acknowledgements
- Seerge & the G-Helper Project (https://github.com/seerge/g-helper): Special thanks and deepest appreciation to Seerge and the G-Helper community for pioneering the discovery and reverse engineering of the official ASUS Support REST API (
GetPDDrivers). G-Helper set the gold standard for lightweight, bloat-free ASUS laptop utilities and directly inspired DeArmour's cloud driver synchronization capabilities. - Google Jules: Performance optimizations and extensive unit test suite contributions.
- Antigravity AI: Core engine architecture and pair programming.
Downloads
| Asset | Description | Size |
|---|---|---|
DeArmour-v1.1.0-win64.exe |
Standalone Windows GUI executable (No Python or dependencies required, pure windowed UI). | ~12.6 MB |
DeArmour-v1.1.0-source-portable.zip |
Portable source archive for Python 3.8 - 3.14 environments. | ~36 KB |
DeArmour v1.0.1: Performance Optimizations and 5x Test Coverage
DeArmour v1.0.1 - Performance Optimizations & 5x Test Coverage 🚀
📦 What's New in v1.0.1
⚡ Engine Optimizations
- Faster INF Parsing: Refactored device and hardware ID prefix extraction to use native C-level tuple passing (
startswith(("mfg", "models", ...))) instead of generator expressions withany(). Up to ~40% faster on large multi-megabyte INF catalogs. - Cached Category Lookups: Constant tuple caching for Wi-Fi and Bluetooth signature recognition (
WIFI_KEYWORDS) eliminates per-call allocation overhead.
🧪 5x Test Coverage Expansion (4 -> 20 Unit Tests)
- Organizer Coverage: Comprehensive tests for bloatware exclusion (
setup.exe,install.tmp,Setup_Files,_internal) ensuring zero telemetric bloat is copied into driver packages. - Script Generator Coverage: Verified generation of 1-click batch (
INSTALL_ALL_DRIVERS.bat), PowerShell deployment scripts (INSTALL_ALL_DRIVERS.ps1), and JSON catalog generation. - Downloader & CLI Coverage: Unit tests for ASUS support API client interfaces and recursive command-line file collection routines.
- Archive Extractor Fallback: Resilience test verifying graceful degradation when corrupted ZIP archives are encountered.
🤝 Credits & Acknowledgements
- Developed by Mustafa Korkunç in collaboration with Antigravity AI pair programming.
- Unit testing suite expansion and performance benchmarks contributed in collaboration with Google Jules.
💾 Downloads & Packages
| Asset | Description | Size |
|---|---|---|
DeArmour-v1.0.1-win64.exe |
Recommended: Standalone GUI application (No Python or console required, pure windowed UI). | ~12.4 MB |
DeArmour-v1.0.1-source-portable.zip |
Portable source archive for Python 3.8 - 3.14 environments. | ~29 KB |
v1.0.0 - Bare-Metal Driver Freedom
⚔️ DeArmour v1.0.0 - Bare-Metal ASUS Driver Freedom
Transform bloated ASUS driver installer executables into clean, bare-metal INF/SYS/CAT driver repositories with zero telemetry and 1-click batch deployment.
📦 Downloads:
- DeArmour-v1.0.0-win64.exe (12.4 MB): Standalone, single-file Windows executable (Windowed GUI, no console window). Ready to run with zero dependencies.
- DeArmour-v1.0.0-portable.zip (51 KB): Pure Python source package.
✨ Features:
- ⚡ PE Binary Stream Carving: Automatically extracts 7z, ZIP, and CAB archives nested inside ASUS SetupLdr and Inno Setup installers.
- 🏷️ INF Metadata Engine: Extracts device names, hardware IDs (PCI\VEN_..., USB\VID_...), driver dates, and version strings.
- 📁 Smart Hardware Categorization: Organizes drivers cleanly into Network_Ethernet, Network_Wireless, Bluetooth, Display_Graphics, Audio, and Chipset_System.
- 🚀 1-Click Native Deployment: Generates master INSTALL_ALL_DRIVERS.bat and INSTALL_ALL_DRIVERS.ps1 using native Windows pnputil.
- 🛡️ Zero Telemetry: Strips out all ASUS background services (AsusAppService, ASUSOptimization, ASUSSystemAnalysis).