📦

Modem Authenticator

By Yarong Pu

View on Snapcraft.io
Version1.1.0
Revision1
LicenseGPL-3.0-only
Confinementstrict
Basecore24

FCC unlock service for WWAN/modem modules


Modem Authenticator is a background C++ service that unlocks FCC restrictions
on WWAN/modem modules. It is fully STRICT-confined (no --classic, no manual
AppArmor tweaks) and Snap-Store publishable.

Event-driven design (no polling, no custom AppArmor, idle = zero CPU):
- Layer 3 (startup): the daemon unlocks once on boot / when the MBIM
 device first appears.

- Layer 1 (udev): snapd loads meta/udev/modem-manager.rules; when an MBIM
 device is (re-)enumerated -- USB control node (/dev/cdc-wdm*) OR PCIe
 control node (/dev/wwan*mbim*, kernel >= 5.14) -- via physical re-plug,
 power cycle, or firmware/link reset that drops the bus link, the kernel
 triggers the unlock oneshot service, which performs the FCC unlock and
 exits. (Old-kernel mhi_bus PCIe nodes are covered by a commented rule.)

- Layer 2 (systemd events): best-effort -- the daemon subscribes to
 systemd JobRemoved (ModemManager restart) and PrepareForSleep (resume)
 to re-unlock after events that do NOT drop the USB link. On the target
 snapd (2.76) there is no systemd D-Bus interface, so this layer
 degrades gracefully; startup + udev still cover the realistic triggers.


The unlock itself is sent via mbimcli directly to the device node (covered
by the modem-manager plug). The FCC unlock key is HARDCODED in the binary
(not externalised to a config file), overridable at runtime with -k.

A CLI tool (fccunlocker) is also provided for manual operation.

TEST BUILD (2026-08-13): published to practice the Snap Store workflow.
Dell RW135/RW151 models use placeholder unlock keys in this release and
are not yet supported.

Update History

1.1.0 (1)
13 Aug 2026, 07:30 UTC

Published13 Aug 2026, 06:42 UTC

Last updated13 Aug 2026, 06:42 UTC

First seen13 Aug 2026, 07:30 UTC