Skip to content

[Pixel 9] [Android 16] A2DP/LDAC connected but no audio output (Hal2AidlMapper bt-a2dp device port not found) #933

@timhorn1

Description

@timhorn1

Issue type

Source code related

Device

Google Pixel 9 (tokay)

crDroid version

crDroid 12

Exact version / Build date

12.7/2026-02-20

Bug description

Summary

On crDroid (Android 16) on Google Pixel 9, Bluetooth A2DP connects successfully and negotiates LDAC, but no sound is heard on the headset.
Phone speaker playback works normally.

Expected behavior

Audio should play through the Bluetooth headset when A2DP is connected
and selected.

Actual behavior

  • A2DP connects and becomes active.
  • Codec is LDAC.
  • Output route is selected to BT A2DP.
  • No audible audio on headset.

Request

Please check Audio HAL + AudioPolicy integration for BT A2DP
(OUT_DEVICE, connection: bt-a2dp) on Pixel 9 Android 16 build path,
especially around findOrCreateDevicePortConfig failures and offload/
software session fallback.

Steps to reproduce

  1. Enable Bluetooth.
  2. Connect WH-1000XM5.
  3. Start media playback.
  4. Confirm Bluetooth output route is selected.
  5. No audio heard on headset.

Relevant log (logcat/build log)

### Example log lines
  
  03-02 21:44:39.xxx  BluetoothManager
  A2DP State
  Current Codec: LDAC
  Connected: true

  03-02 21:44:40.xxx  media.audio_policy
  Selected Device: {AUDIO_DEVICE_OUT_BLUETOOTH_A2DP, @:88:C9:E8:0B:36:73}
  Global active count: 1

  03-02 21:44:39.862  E Hal2AidlMapper
  [default] findOrCreateDevicePortConfig: device port for device
  AudioDevice{type: AudioDeviceDescription{type: OUT_DEVICE, connection:
  bt-a2dp}, ...} is not found

  03-02 21:44:40.106  E Hal2AidlMapper
  [default] findOrCreateDevicePortConfig: ... connection: bt-a2dp ... is
  not found

Screenshots or videos

No response

Solution

Not available yet

Additional context

Device / ROM / Firmware

  • Device: Google Pixel 9 (tokay)
  • Android: 16 (SDK 36)
  • Build fingerprint: google/tokay/tokay:16/ BP4A.260205.002/14624737:user/release-keys
  • Build ID: BP4A.251205.006
  • Incremental: 44
  • Bootloader: ripcurrentpro-16.4-14097580
  • Baseband: g5400c-250908-251105-B-14386369,g5400c-250908-251105-B- 14386369
  • Verified boot: green
  • Boot state: locked
  • Security patch (system): 2026-02-01
  • Security patch (vendor): 2026-02-05
  • Partition build dates (system/vendor/product/system_ext/odm): all
    1771539258 (2026-02-19 22:14:18 UTC)

Vendor/Firmware mismatch check

No obvious system/vendor mismatch found.

  • ro.system.build.fingerprint, ro.vendor.build.fingerprint,
    ro.product.build.fingerprint, ro.system_ext.build.fingerprint,
    ro.odm.build.fingerprint, ro.bootimage.build.fingerprint are
    aligned.
  • Incremental/version values are aligned (44, Android 16 / SDK 36).

Critical findings

  • A2DP/LDAC is connected and active:
    • Current Codec: LDAC
    • Connected: true
    • Active peer: xx:xx:xx:xx:36:73
  • Audio policy selects BT A2DP output:
    • Selected Device: {AUDIO_DEVICE_OUT_BLUETOOTH_A2DP, @:88:C9:E8:0B:36:73}
  • Repeated hard error in audio stack:
    • E Hal2AidlMapper: [default] findOrCreateDevicePortConfig ... connection: bt-a2dp ... is not found
  • Also observed:
    • BTAudioSessionAidl: SessionType=A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH has NO session

Workarounds attempted (no fix)

  • settings put global bluetooth_a2dp_offload_disabled 1
  • settings put global bluetooth_a2dp_optional_codecs_enabled 0
  • settings put secure spatial_audio_enabled 0
  • settings put secure spatial_audio_head_tracking_enabled 0
  • Bluetooth restart after each change

Result:

  • Stack still reports A2dpOffloadEnabled: true
  • Connection still negotiates LDAC
  • No audio output via headset
  • Same Hal2AidlMapper ... bt-a2dp ... not found errors continue

How logs were collected (commands)

Device / build / firmware

adb shell getprop ro.product.device
adb shell getprop ro.build.fingerprint
adb shell getprop ro.system.build.fingerprint
adb shell getprop ro.vendor.build.fingerprint
adb shell getprop ro.odm.build.fingerprint
adb shell getprop ro.build.version.release_or_codename
adb shell getprop ro.build.version.sdk
adb shell getprop ro.build.version.incremental
adb shell getprop ro.vendor.build.version.incremental
adb shell getprop ro.build.version.security_patch
adb shell getprop ro.vendor.build.security_patch
adb shell getprop ro.bootloader
adb shell getprop gsm.version.baseband
adb shell getprop ro.boot.vbmeta.device_state
adb shell getprop ro.boot.verifiedbootstate
adb shell getprop ro.boot.flash.locked
adb shell getprop ro.boot.slot_suffix
adb shell getprop ro.boot.hardware.sku
adb shell getprop ro.build.date.utc
adb shell getprop ro.system.build.date.utc
adb shell getprop ro.vendor.build.date.utc
adb shell getprop ro.product.build.date.utc
adb shell getprop ro.system_ext.build.date.utc
adb shell getprop ro.odm.build.date.utc

Bluetooth / codec state

adb shell dumpsys bluetooth_manager | rg -n -i "A2DP State|Current
Codec|LDAC|mCodecConfig|Active peer|Connected: true|A2dpOffloadEnabled|
mA2dpOffloadEnabled"

Audio policy / route state

adb shell dumpsys media.audio_policy | rg -n -i "BT A2DP Out|a2dp
output|Selected Device|Global active count|State: Active|State:
Inactive|AUDIO_DEVICE_OUT_BLUETOOTH_A2DP"

Audio flinger state

adb shell dumpsys media.audio_flinger | rg -n -i "A2DP|Bluetooth|Tracks
of which|active|AudioOut_|CFG_EVENT_CREATE_AUDIO_PATCH|
CFG_EVENT_RELEASE_AUDIO_PATCH"

Error focus in logcat

adb logcat -d -b main -b system | rg -n "findOrCreateDevicePortConfig:
device port for device AudioDevice\{type: AudioDeviceDescription
{type: OUT_DEVICE, connection: bt-a2dp\}"
adb logcat -d -b main -b system | rg -i "BTAudioSessionAidl|
A2DP_HARDWARE_OFFLOAD_ENCODING_DATAPATH|Hal2AidlMapper|openOutput|
createOrUpdatePatch"

Notes

  • adb root is not available on this build (ro.debuggable=0), so no
    root-only debugging was possible.
  • This looks like an Audio HAL / audio policy routing integration issue
    for bt-a2dp device port creation on Pixel 9 Android 16 base.

The information and the issue were collected/generated by gpt-5.3-codex-high.

Full logs

crdroid_bt_issue_logs_20260302_212950_sanitized_20260302_214602.tar.gz

Acknowledgements

  • I've checked device is officially supported and that no support is provided for unofficial devices (for device specific reports and not source related).
  • I'm running latest version available on crdroid.net for this device and that the device is still maintainer supported (not flagged unsupported on download page)
  • I have searched the existing issues and this is a new and no duplicate or related to another open issue.
  • I have written a short but informative title.
  • I filled out all of the requested information in this issue properly and understand that not doing so will automatically result in closing of ticket.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingneeds-triagelabled for new issues in order to confirm viewed and directed properly

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions