Meshtastic-Android/core
niccellular e7ba8e8497 feature: Add TAK passphrase lock/unlock support
Implement the client-side TAK passphrase authentication flow for
  devices running TAK-locked firmware.

  Key components:
  - TakPassphraseStore: per-device passphrase persistence using
    EncryptedSharedPreferences (Android Keystore AES-256-GCM), with
    boot and hour TTL fields stored alongside the passphrase
  - TakLockHandler: orchestrates the full lock/unlock lifecycle —
    auto-unlock on reconnect using stored credentials, passphrase
    submission, token info parsing, and backoff/failure handling
  - MeshCommandSender: sendTakPassphrase() and sendTakLockNow() build
    plain local packets that bypass PKC signing and session_passkey;
    hour TTL is encoded as an absolute Unix epoch as required by firmware
  - ServiceRepository: TakLockState sealed class (None, Locked,
    NeedsProvision, Unlocked, LockNowAcknowledged, UnlockFailed,
    UnlockBackoff), TakTokenInfo (boots remaining + expiry epoch), and
    sessionAuthorized flag
  - TakUnlockDialog: Compose dialog for passphrase entry, shown on
    Locked and NeedsProvision states; onDismissRequest is a no-op to
    prevent race conditions with firmware response timing; cancel
    disconnects the user and navigates to the Connections tab
  - Lock Now (Security settings): immediately disconnects the client
    after informing firmware, purges cached config, navigates away
    without showing a passphrase dialog
  - ConnectionsScreen: suppress "region unset" prompt while the device
    is TAK-locked, since pre-auth config is zeroed/redacted and would
    lead the user to a blank LoRa settings screen
  - AIDL: sendTakUnlock() and sendTakLockNow() wired through
    MeshService → MeshActionHandler → TakLockHandler
  - Security settings: "Lock Now (TAK)" button and token info display
    showing boots remaining and expiry date
2026-02-27 08:31:05 -05:00
..
analytics feat(ble): Handle invalid BLE attributes (#4485) 2026-02-07 00:59:24 +00:00
api feature: Add TAK passphrase lock/unlock support 2026-02-27 08:31:05 -05:00
barcode feat(sharing): Refactor QR/NFC scanning with ML Kit and CameraX (#4471) 2026-02-06 04:16:16 +00:00
common chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#4438) 2026-02-04 02:41:48 +00:00
data feat(db): Add sender-based message filtering (#4477) 2026-02-06 15:13:59 +00:00
database feat(database): Enable Write-Ahead Logging for Room DB (#4499) 2026-02-07 19:20:26 +00:00
datastore chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#4438) 2026-02-04 02:41:48 +00:00
di chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#4438) 2026-02-04 02:41:48 +00:00
model docs: Update READMEs and library versions 2026-02-07 15:54:51 -06:00
navigation chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#4438) 2026-02-04 02:41:48 +00:00
network refactor(build): Introduce AndroidLibraryFlavors convention plugin (#4449) 2026-02-04 16:01:09 -06:00
nfc feat: Check if NFC is enabled and prompt user to enable it (#4482) 2026-02-06 18:08:35 +00:00
prefs Enhancement - optional transparent homoglyph encoding of a few characters in certain languages for more compact and efficient text messages (#4491) 2026-02-07 18:49:35 +00:00
proto feature: Add TAK passphrase lock/unlock support 2026-02-27 08:31:05 -05:00
service feature: Add TAK passphrase lock/unlock support 2026-02-27 08:31:05 -05:00
strings chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#4494) 2026-02-07 18:52:55 +00:00
ui refactor(node): Improve public key conflict handling (#4486) 2026-02-06 19:55:20 +00:00