# Installing QQQ Mobile 1.0.4 (versionCode 6) from a Windows laptop over USB Release page: ## Package identity | Item | Value | | --- | --- | | Application ID | `io.qrun.mobile.scanner` | | Version | 1.0.4, versionCode 6 (min Android 8.0 / API 26) | | File | `QQQ-Mobile-1.0.4.apk` (15015419 bytes) | | APK SHA-256 | `F643872F4435B55F6A0B929D1762CAACB18010E5CC0B473C7B4BABBDC4299489` | | Signing certificate SHA-256 | `BDDB2D2F45A5925C643A83ABAF616C1EAB2387DC5CDA7B645A6F4C0D5B17A9FF` | | Source | `main` at `9bae976138c4447f3fa451ee49b8585e80f01847` | ## 1. One-time laptop set-up Open PowerShell and install Android Platform Tools (this provides `adb`): ```powershell winget install --id Google.PlatformTools -e ``` Close and reopen PowerShell, then check it: `adb version`. ## 2. Download and verify ```powershell cd $env:USERPROFILE\Downloads curl.exe -L -o QQQ-Mobile-1.0.4.apk https://git.kof22.com/QRun-IO/qqq-android/releases/download/scanner-v1.0.4/QQQ-Mobile-1.0.4.apk (Get-FileHash .\QQQ-Mobile-1.0.4.apk -Algorithm SHA256).Hash ``` The last command must print exactly: ``` F643872F4435B55F6A0B929D1762CAACB18010E5CC0B473C7B4BABBDC4299489 ``` Stop and do not install if it differs. ## 3. Prepare each handheld (once per device) 1. Settings, About phone, tap **Build number** seven times to enable Developer options. 2. Settings, System, Developer options, turn on **USB debugging**. 3. Connect the handheld to the laptop with a USB data cable and accept **Allow USB debugging** on the handheld. ## 4. Update in place Always name the device and never uninstall first: uninstalling removes the saved server, the sign-in and the device enrollment. ```powershell adb devices -l adb -s install -r .\QQQ-Mobile-1.0.4.apk ``` `adb devices -l` must list the handheld as `device` (not `unauthorized`). The install must end with `Success`. ## 5. Confirm the installed version ```powershell adb -s shell dumpsys package io.qrun.mobile.scanner | Select-String "versionName|versionCode" ``` Expected: `versionCode=6` and `versionName=1.0.4`. ## 6. Open the app 1. Open **QQQ Mobile**. An in-place update keeps the saved server address, sign-in and enrollment. 2. On a new install, or after **Change server**, enter your HTTPS server address and tap **Connect**. Release builds reject plain HTTP. 3. Sign in with the method the server offers. The first metadata load after sign-in can take several seconds on a slow link; 1.0.4 waits up to 60 seconds. ## Troubleshooting | Message | Meaning | | --- | --- | | `INSTALL_FAILED_UPDATE_INCOMPATIBLE` | The installed copy was signed with a different (development) key. Do not uninstall to get around it without the owner's approval: that resets server, sign-in and enrollment. | | `INSTALL_FAILED_VERSION_DOWNGRADE` | The device already has a higher versionCode. Nothing to do. | | `unauthorized` in `adb devices` | Accept the **Allow USB debugging** prompt on the handheld, then run the command again. | | No device listed | Use a data cable (not charge-only), and on the handheld choose **File transfer** for the USB mode. |