Skip to content

Releases: mustafakorkunc/asus-dearmour

DeArmour v1.1.2 (Public Beta): Non-Empty Output Collision Protection

Choose a tag to compare

@mustafakorkunc mustafakorkunc released this 23 Sep 10:40

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

Choose a tag to compare

@mustafakorkunc mustafakorkunc released this 22 Sep 21:13

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 via try...finally.
  • Broader Archive Verification: Validates zip, 7z, cab (via expand.exe -D), and rar (via 7z t).

⚡ Downloader Reliability & Atomic Writes

  • Atomic File Downloads: Packages download to a temporary .part file and atomically replace the destination only upon successful completion. Failed or aborted downloads automatically clean up .part artifacts 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 through root.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, and driver_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 PowerShell Get-WindowsDriver -Online to resolve the published oemXX.inf identifier 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 $PSScriptRoot to 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

Choose a tag to compare

@mustafakorkunc mustafakorkunc released this 22 Sep 17:47

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 / .cat repositories with automated INSTALL_ALL_DRIVERS.bat scripts.

Silent Subprocess Execution (No Flashing CMD Windows)

  • Configured native Windows CREATE_NO_WINDOW creation 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 .exe files 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

Choose a tag to compare

@mustafakorkunc mustafakorkunc released this 22 Sep 16:58

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 with any(). 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

Choose a tag to compare

@mustafakorkunc mustafakorkunc released this 22 Sep 15:04

⚔️ 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).