Skip to content

Android 16: third-party createBond() against LESC-only peripheral fails #642

@partymola

Description

@partymola

I'm seeing what looks like an Android 16 regression in the platform SMP layer. Filing here to ask whether anyone can reproduce it on non-Pixel-10 A16 hardware before I conclude this is A16-wide rather than Pixel-10-specific. Google issuetracker's Bluetooth components are locked down to internal filing, so this library's issue tracker is the most accessible public channel.

Symptom (third-party app, BLUETOOTH_CONNECT granted):

  • createBond() on a freshly-discovered LESC-only peripheral returns true.
  • Bond goes BOND_BONDING -> BOND_NONE (reason 7).
  • logcat: btif_dm_get_smp_config: SMP pairing options not found in stack configuration.
  • Peripheral side: SMP_PAIR_NOT_SUPPORT sec_level:0x0.
  • dumpsys bluetooth_manager: ble_pairing_algorithm:Unknown PairingAlgorithm(0x71).

Pairing the same device via Settings > Connected devices succeeds immediately with PairingAlgorithm::SC(0x3), so the OS and hardware are LESC-capable.

One thing I noticed: /system/etc/bluetooth/bt_stack.conf isn't present anywhere on the A16 image (adb shell find /system /product /vendor /apex -name bt_stack.conf returns nothing). Could that be what's causing the default AuthReq to drop the SC bit?

My hardware: Pixel 10 Pro XL, build CP1A.260405.005. Peripheral: Garmin Varia RearVue 820 (LESC-only).

Am I doing something wrong here, or is this a real A16 regression? Any pointer would be welcome: other devices or Android versions where this behaves differently, a known workaround, or a better place to report it. Happy to share full logs, HCI snoop, and dumpsys output.

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