Skip to content

Developer Mode resets on every power cycle, and the usb-debug error never mentions it (KeyOS 1.4.0-beta3) #17

Description

@tobyjaguar

Environment: Passport Prime (retail), KeyOS 1.4.0-beta3, Foundation SDK 1.0.0 re-cut (foundation 1.0.0 (039881500da0)). Host: Ubuntu 22.04.5, libusb via a udev rule for 1307:0165.

Summary

Developer Mode switches itself off on a plain power cycle, not only across a firmware update. While it's off the vendor debug interface isn't enumerated, so every foundation-passport-drive / foundation sideload / foundation logs command fails with an error that never mentions Developer Mode:

Error: Failed to open USB device

Caused by:
    no vendor debug interface (class 0xFF) with both bulk endpoints

That message sends you looking at udev rules, cables, and libusb permissions — all the things a Linux USB failure usually means — when the actual cause is a device-side toggle that silently reverted.

This is a correction to note 1 of #14, where I reported the reset as firmware-update-related. That understated it: an update is a rare event, a power cycle is routine, so in practice you can hit this any session.

Reproduce

  1. Enable Settings > Apps > Developer Mode. Confirm the debug interface appears — the device re-enumerates live, no replug needed.
  2. Power the device off and on.
  3. Unlock, plug in USB, run any passport-drive command → the error above.
  4. Settings > Apps > Developer Mode is off. Toggle it on and the same command succeeds immediately.

The reliable host-side diagnostic

The USB interface count tells you which state you're in before you touch anything else:

$ lsusb -d 1307:0165 -v 2>/dev/null | grep -E "bNumInterfaces|bInterfaceClass"
  bNumInterfaces          2          # Developer Mode OFF
    bInterfaceClass         8 Mass Storage
    bInterfaceClass         3 Human Interface Device

  bNumInterfaces          3          # Developer Mode ON
    bInterfaceClass         8 Mass Storage
    bInterfaceClass         3 Human Interface Device
    bInterfaceClass       255 Vendor Specific Class

What we'd like

Either of these would have saved the detour, and the first is a one-liner:

  1. Name Developer Mode in the error. Something like: no vendor debug interface (class 0xFF) found — check that Developer Mode is enabled (Settings > Apps > Developer Mode); it resets when the device is powered off. The tooling already knows this is the only thing that exposes the interface, so it's the highest-probability cause by a wide margin.
  2. Document the power-cycle behaviour alongside the firmware-update case in the sideload/usb-debug docs.

If the reset is deliberate — I'd assume so, given it gates a debug channel and is presumably an encrypted setting — then this is purely a discoverability request, not a behaviour change. Happy either way; the toggle itself seems reasonable.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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