Jolla C2 Bluetooth regression after Sailfish OS 5.1.0.11 update

Device: Jolla C2
OS version: Sailfish OS 5.1.0.11 (Pispala)

Problem:
Bluetooth cannot be started reliably after updating. This is not a hardware issue. The phone can end up in two bad states:

  1. The bridge stack fails during startup:

    • bluebinder.service reports Bluetooth binder service failed
    • appsupport-bridge-bt.service reports No physical HCI target is currently available
  2. After deeper manual recovery, the services can all show as active, but Bluetooth is still unusable:

    • bluetoothctl list is empty
    • hciconfig hci1 up returns Connection timed out (110)
    • Android/AppSupport com.android.bluetooth repeatedly crashes

Most important evidence:

  • Android Bluetooth times out waiting for HCI opcode 0x0c14 (READ_LOCAL_NAME)
  • then aborts with Fatal signal 6 (SIGABRT)
  • host-side logs repeatedly show:
    • delaying writing host command to controller until bt is up
    • AppSupport sending 0x0c14
    • AppSupport later sending vendor opcode 0xfd5b

Conclusion:
This looks like a regression in the Bluetooth bridge/AppSupport integration on Jolla C2 after the 5.1.0.11 update, not a hardware fault and not just an rfkill problem.

Logs:
HOSTNAME: JollaC2
DATE: Tue Jun 16 12:05:03 BST 2026
==== SYSTEMCTL ====
â—Ź bluebinder.service - Simple proxy for using android binder based bluetooth through vhci.
Loaded: loaded (/usr/lib/systemd/system/bluebinder.service; disabled; vendor preset: enabled)
Active: activating (start) since Tue 2026-06-16 12:04:56 BST; 7s ago
Process: 28444 ExecStartPost=/usr/bin/droid/bluebinder_post.sh (code=exited, status=0/SUCCESS)
Process: 33780 ExecStartPre=/usr/bin/droid/bluebinder_wait.sh (code=exited, status=0/SUCCESS)
Main PID: 33787 (bluebinder)
Memory: 3.2M
CGroup: /system.slice/bluebinder.service
└─33787 /usr/sbin/bluebinder

Jun 16 12:04:56 JollaC2 systemd[1]: Starting Simple proxy for using android binder based bluetooth through vhci…
Jun 16 12:04:56 JollaC2 bluebinder_wait.sh[33780]: Bluetooth service running
Jun 16 12:04:56 JollaC2 bluebinder[33787]: Own hci index: 531
Jun 16 12:04:56 JollaC2 bluebinder[33787]: delaying writing host command to controller until bt is up
Jun 16 12:04:56 JollaC2 bluebinder[33787]: Turning bluetooth on
Jun 16 12:04:56 JollaC2 bluebinder[33787]: Got BLUEBINDER_LOCAL_FEATURES_MASK 0x8001000000000000
Jun 16 12:04:56 JollaC2 bluebinder[33787]: Got BLUEBINDER_LOCAL_EXT_FEATURES_PAGE_2_MASK 0x0
Jun 16 12:04:56 JollaC2 bluebinder[33787]: Bluetooth binder service failed

â—Ź appsupport-bridge-bt.service - Bluetooth virtualization for AppSupport
Loaded: loaded (/usr/lib/systemd/system/appsupport-bridge-bt.service; enabled; vendor preset: enabled)
Active: activating (start) since Tue 2026-06-16 12:04:55 BST; 8s ago
Process: 28475 ExecStartPost=/usr/bin/systemctl --no-block try-restart appsupport-bridge-bt-aidl.service (code=exited, status=0/SUCCESS)
Main PID: 33755 (appsupport-brid)
Memory: 3.3M
CGroup: /system.slice/appsupport-bridge-bt.service
└─33755 /usr/sbin/appsupport-bridge-bt

Jun 16 12:04:55 JollaC2 systemd[1]: Starting Bluetooth virtualization for AppSupport…
Jun 16 12:04:55 JollaC2 appsupport-bridge-bt[33755]: setup_appsupport_bridge_bt: starting bridge setup
Jun 16 12:04:55 JollaC2 appsupport-bridge-bt[33755]: No physical HCI target is currently available
Jun 16 12:04:55 JollaC2 appsupport-bridge-bt[33755]: Physical controller channel is not owned yet; bridge not ready yet
Jun 16 12:04:55 JollaC2 appsupport-bridge-bt[33755]: Retrying bridge setup in 10 seconds

â—Ź appsupport-bridge-bt-aidl.service - AppSupport Bluetooth AIDL binder bridge
Loaded: loaded (/usr/lib/systemd/system/appsupport-bridge-bt-aidl.service; static; vendor preset: enabled)
Active: inactive (dead)

â—Ź bluetooth.service - Bluetooth service
Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; disabled; vendor preset: enabled)
Active: inactive (dead) since Tue 2026-06-16 11:53:08 BST; 11min ago
Docs: man:bluetoothd(8)
Process: 28478 ExecStart=/usr/libexec/bluetooth/bluetoothd -n $TRACING (code=exited, status=0/SUCCESS)
Main PID: 28478 (code=exited, status=0/SUCCESS)
Status: “Powering down”

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
==== RFKILL ====
0: bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
531: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
==== HCICONFIG ====
hci0: Type: Primary Bus: Virtual
BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
DOWN INIT RUNNING
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:8 acl:0 sco:0 commands:1 errors:0
Features: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Packet type: DM1 DH1 HV1
Link policy:
Link mode: PERIPHERAL ACCEPT

==== BLUETOOTHCTL ====

3 Likes

Maybe put link to this bug report in to the bluetooth feedback thread?

3 Likes

Hi, does it do this on every boot? It’s a good idea to try a cold boot i.e. power the device down, then turn it on instead of just restarting. Does it still do this with the new bluebinder, with appsupport-bt removed? Another think to try is stopping the main bridge daemon and appsupport from starting at boot, then manually starting them once it’s up. The bridge should restart BlueZ for you. If any of those variations work, it might help pin down what’s going on.

The C2 has a firmware bug where it will unload the radio firmware when it thinks every radio device is off, and doesn’t count Bluetooth HCIs properly. Then when it’s brought back up it doesn’t initialize itself correctly which leavesit in an unusable state. There is already a workaround for this in the current bluebinder, but clearly it isn’t enough for everyone.

4 Likes

Sorry, I missed your reply. Removing appsupport-bt does make it go away. I’ll reinstall it now, try your suggestions and get back with the details.

1 Like

Cold boot did solve it reliably. It is reliably reproducible on my device. Restart leads to bt in unusable state every time, cold booting so far worked in all 5 cases I tried.

1 Like

Glad it’s sort of workable, though obviously not a great solution. That means whatever it going wrong is far down enough in the C2 firmware that it’s not getting re-initialized on restart.

3 Likes

Hi, I haven’t had time to trace the program execution in the terminal yet. However, here are a few tips for users who just want to “get started”:

  1. Before installing the Bluetooth App Support (beta), Bluetooth on the smartphone must be switched on and active.
  2. Bluetooth must also be active whenever the smartphone is turned off. If you forget this, Bluetooth will stop responding after the device reboots or is turned back on, and the app will have to be uninstalled via the App Store. Only after uninstalling can you reactivate Bluetooth, shut down the smartphone, restart it, and reinstall the Bluetooth App Support.
  3. Sometimes the function under Settings > Bluetooth > Search for devices might not work. In that case, simply toggle Bluetooth off and then back on. It does take a moment for the search function to show as active again, but the search will work after that.
    All in all, a fantastic job by the Jolla team for a beta version!!!
    All tests regarding pairing and functionality on my Jolla C2 were completely error-free (Garmin, Withings, vehicle pairing—to name just a few). Thanks
4 Likes

To add to this I had troubles BT not turning on after installation and reboot.

Tried twice/thrice to no avail with my XA2+.

After turning on AAS rhe BT came on. After rebooting again no fun.

Please note: AAS is set to not auto-start

And BT was set to on all the time.

But after some de- and re- installation it worked.

A bit tricky to get Garmin Connect and Fenix connected, but at the end success :slight_smile:

2 Likes

I have been facing the same. I can’t turn on BT from quick menu, or settings(in the settings, the dot blinking forever). Restart BT utility and restarting the phone didn’t help. C2, 5.1.0.1.

Removed the reply and created a new topic.