Skip to content

[2.8.0] Select signed plaintext transport for licensed remote Admin #6183

Description

@RCGV1

Description

Implement the Android/Desktop client transport selection required by meshtastic/design#123 and meshtastic/firmware#10972.

When the connected local radio is licensed, every remote Admin getter, session request, and mutation must use channel 0 with pki_encrypted=false and an empty packet public key. Firmware then signs and authorizes the plaintext packet using existing XEdDSA. Normal-mode remote Admin behavior remains unchanged.

Scope

  • Update the central CommandSenderImpl Admin channel/packet selection, not each Admin command individually.
  • Determine licensed mode from the connected local node's User.is_licensed; never infer it from the destination callsign/licensed bit.
  • Apply the same policy to sendAdmin, sendAdminAwait, metadata/session refresh, and all flows that use buildAdminPacket.
  • Preserve self Admin behavior.
  • Preserve existing normal-mode PKI selection when local and destination keys are available.
  • Do not display an encryption lock for licensed Admin; use verified-signature semantics only after firmware verification.

Acceptance criteria

  • Licensed local → remote Admin uses channel 0, pki_encrypted=false, and empty public key even when both nodes have keys.
  • Non-licensed local with both keys retains existing PKI Admin behavior.
  • Self Admin remains unchanged.
  • Missing local owner state follows existing compatibility behavior rather than assuming licensed mode.
  • Tests cover getter, session request, mutation, normal-mode regression, self, and unknown local mode.
  • PR remains draft until paired two-radio validation with firmware#10972 proves plaintext readable Admin request/reply and successful signed authorization.

Dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions