320b4b2825c9f46ad0adc872c97aab69f341439b
Registration ------------ On first upload the app trades the bootstrap token and its device id at /api/v1/register-device for a key belonging to this device alone, keeps it in the Keystore-encrypted store, and uses it from then on. The bootstrap token is never sent again. The only secret shipped in the APK now grants enrolment and nothing else. Extracting it lets someone register a device; it does not let them read points or upload as a phone that is already enrolled. A 401 on upload means the key was revoked or rotated elsewhere. The uploader forgets it, registers again and retries once, rather than leaving the user to find the Server dialog. The registration URL is derived from the configured upload URL, so pointing the app at another server moves both together. Keystore storage ---------------- The AES-GCM/Keystore code moves out of DeviceIdentity into SecureStore, now that there are two secrets to keep rather than one. Below API 23 there is no Keystore AES: SecureStore refuses to write instead of silently storing secrets in the clear, and both callers keep their value in memory for the process lifetime. Upload host ----------- DEFAULT_URL moves to com.org.bz. bt.justbug.me resolves elsewhere and has no certificate on the proxy, so every upload there died in the TLS handshake with TLSV1_ALERT_UNRECOGNIZED_NAME before a request was sent. Installs that already saved the old default are migrated across on read; a URL the user chose is left alone. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
BlueToothLogger Android APP for tracking your BLE devices.
5.7 MiB