Skip to content

[2.8.0] Align licensed remote Admin transport and signature UI #2067

Description

@RCGV1

Description

Align Apple remote administration with the signed plaintext licensed-mode design in meshtastic/design#123 and meshtastic/firmware#10972.

Apple currently emits Admin packets without setting PKI fields. Preserve that licensed plaintext behavior explicitly, test it across Admin call paths, and update remote-Admin wording so licensed mode does not claim PKI encryption. Normal-mode wording and transport behavior must remain unchanged.

Scope

  • Add a central outbound invariant for remote ADMIN_APP through a licensed connected radio: channel 0, pkiEncrypted=false, and empty packet public key.
  • Determine mode from the connected local UserEntity.isLicensed, not the destination callsign/licensed bit.
  • Cover Admin requests/mutations that use the shared helper and any direct sends that bypass it.
  • Update licensed-mode picker/request wording from “PKI Admin” to signed plaintext/verified Admin while retaining PKI wording in normal mode.
  • Keep shield/lock semantics accurate: signature shield for verified licensed Admin, never an encryption lock.
  • Avoid a broad refactor of individual request/save functions; prefer one policy hook.

Acceptance criteria

  • Every licensed local → remote Admin getter, session request, and mutation has plaintext packet fields.
  • Normal-mode remote Admin behavior and wording remain unchanged.
  • Self/local Admin behavior remains unchanged.
  • Unknown local owner state does not assume licensed mode.
  • Tests record outgoing packets for licensed, normal, self, and unknown-mode cases and cover conditional UI wording.
  • PR remains draft until paired two-radio validation with firmware#10972 proves readable plaintext signed Admin request/reply behavior.

Dependencies

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions