
17.97 MB
Android 7.0+
20
arm64-v8a, armeabi-v7a, x86_64
Verified safeScanned with ClamAV, APKiD, and Quark-Engine. No threats detected.
Screenshots




Description
USB Descriptor Explorer for Android
USBDevInfo is an Android application for discovering, inspecting, and analyzing USB devices connected to your phone or tablet. It exposes the same low-level USB information that Android sees, but presents it in a clear, structured, and human-readable way.
The app is designed for developers, reverse-engineers, hardware hackers, and power users who need to understand exactly what a USB device reports: vendor IDs, configurations, interfaces, endpoints, HID descriptors, power requirements, and more.
USBDevInfo works fully offline, stores all data locally, and never transmits device information to any server.
Features
Live USB monitoring
Automatically reacts to USB attach/detach and can auto‑open a device's details view on attach
Permission request flow for devices that require user consent
Instant visibility into attached USB devices, hubs, and HID/gamepad/touch devices
Device list with search
Shows vendor/product names when known, plus VID:PID and basic class info
Text search across vendor, product, id string, and device path
Detailed device view
Full device and configuration/endpoint breakdown (classes, subclasses, protocols)
Human‑readable names for USB class/subclass/protocol when available
Copy any field, view raw JSON payload, and neatly wrapped hex where applicable
Device history
Maintains a chronological history of attach events; drill into past entries
Export/import history as JSON from the Settings screen
Theming and UX
Material 3 design, light/dark theme, optional Android dynamic color support
Polished section cards, key/value rows, and snack‑bar copy confirmations
Offline USB IDs database
Bundled SQLite database provides vendor/product/class lookups
Update controller coordinates DB refresh gating and metadata verification
Technical/architectural
Flutter + Riverpod 3
State: Notifier/AsyncNotifier providers for search, lists, settings, and details
Routing: go_router with named routes: Home, Device details, History (+ entry detail), Settings
Platform channel bridge (Android)
Kotlin glue (UsbBridge) exposes:
MethodChannel: listDevices, getDeviceDetails, requestPermission, setUsbAttachComponentEnabled
EventChannel: usb attach/detach/connect/disconnect events
MainActivity wires pending intents and forwards onNewIntent to the bridge
Repository + data layers
UsbPlatformService (Dart) wraps method/event channels
UsbRepository enriches platform data with lookups from UsbIdsDb
Providers compose platform, repository, and DB future
USB IDs database
assets/db/usbids.sqlite shipped with the app
UsbIdsDb exposes vendorName/productName/class/subclass/protocol lookups with small caches
Tools (Python) to regenerate DB from assets/db_src/usbids.sql
tools/update_usbids_artifacts.py builds the SQL from upstream data
tools/build_usbids_db.py compiles the SQL into SQLite, with WAL/SHM cleanup
UX components
Reusable SectionCard and KeyValueRow widgets for consistent layout
Formatters for hex/dec, labels, hex wrapping, and misc helpers
Preferences
SharedPreferences for theme mode, dynamic color toggle, and USB auto‑attach behavior
Rate this app
Ratings & reviews
No reviews yet.