$ show GustavLindberg99/AndroidDrive
AndroidDrive is a Windows desktop application that mounts Android smartphone internal storage and SD cards as drive letters using the Dokan user-mode filesystem driver and ADB (Android Debug Bridge). It is built with Qt6 (C++20) and CMake, providing a system tray interface, device list window, and per-drive settings (drive letter, auto-mount, language, hide dot files). The application communicates with Android devices via ADB commands, caches remote files locally for read/write operations, and pushes changes back. It supports 10 languages via Qt translations and includes an update checker that queries GitHub releases. The architecture is a single-process Qt application with a Dokan callback implementation for filesystem operations. Key entry points are main.cpp (application startup), androiddrive.cpp (core mount logic), and dokanoperations.cpp (filesystem callbacks). External dependencies include Qt6, Dokan library (v2.3.1), and ADB binaries fetched from a third-party GitHub repo. The codebase is well-structured but has some hardcoded paths and is Windows-only.
The LLM identified 2 files worth highlighting for reuse:
A thread-safe singleton logger that uses std::source_location and std::format for structured logging. It is self-contained (only depends on standard library and Qt core) and can be extracted into any C++20 project needing a lightweight, thread-safe logger with automatic source location capture.
A collection of pure utility functions for bash escaping, Windows/Android path conversion, time conversion, and file attribute mapping. These functions have no internal dependencies and solve common cross-platform path and string manipulation problems that recur in projects involving ADB or filesystem operations.