Skip to content

L2CAP Connection Fails on Pixel 7a with Both Xposed and Magisk Methods #229

@MaizeShark

Description

@MaizeShark

Device Information:

  • Device: Google Pixel 7a
  • Android Version: 16 (BP3A.250905.014)
  • Root: Magisk
  • Magisk Version 29
  • Xposed Framework: ReLSPosed (v1.0.1)
  • LibrePods started with v0.1.0-rc.4 and them moved to v0.2.0-alpha

Describe the bug:
The LibrePods app is unable to establish an L2CAP connection to my AirPods Pro 2 on my Pixel 7a, despite trying both the recommended Xposed and Magisk module methods. The symptoms are slightly different depending on the method used.

I do have to say that own AirReps but that shouldn't be the issue here, it works fine on my Ubuntu 24.04 Maschine. And the "Pro 2 V5.2 TB" are also compatible with IOS so...

Steps to Reproduce & Troubleshooting Journey:

  1. Initial State (No Fix):

    • I had in ReLSPosed enabled Bluetooth (com.google.android.bluetooth) and Settings (com.google.android.settings) and used Magisks Zygisk
    • The logcat shows java.lang.SecurityException: ... has no android.permission.BLUETOOTH_PRIVILEGED and android.bluetooth.BluetoothSocketException.
  2. Method 1: Xposed Hook (Recommended):

    • I just enabled Bluetooth and used ReZygisk dont know which fixed it
    • the BLUETOOTH_PRIVILEGED security exception is gone.
    • The system logs confirm the hook is active with the message: I AirPodsHook: l2c_fcr_chk_chan_modes hooked, returning true.
    • Result: The connection now silently times out. The app shows the error "Your AirPods are connected via Bluetooth, but LibrePods couldn't connect to AirPods using L2CAP. Error: Socket created, but not connected." There is no longer a No PSM available or BLUETOOTH_PRIVILEGED error in the logs. This indicates the initial check is bypassed, but a deeper part of the stack is dropping the connection.
  3. Method 2: btl2capfix Magisk Module:

    • I disabled the Xposed module and installed the btl2capfix (from you comment) Magisk module instead.
    • Result: The BLUETOOTH_PRIVILEGED error is also resolved with this method. However, the connection now fails immediately with the error android.bluetooth.BluetoothSocketException: No PSM available.
  4. SELinux:

    • I have also tested with SELinux set to Permissive (setenforce 0), and it did not solve the issue in either case.

latest_log.txt

Thank you for your work on this project! Please let me know if there is any further information I can provide.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions