u/Burning_Okra

▲ 2 r/Freestylelibre+1 crossposts

TL;DR: Android 15 on Fairphone broke BLE L2CAP connections, which breaks FreeStyle LibreLink Bluetooth streaming. NFC scanning still works but continuous readings stop. This guide fixes it by rooting the phone with Magisk. This will completely wipe your phone. Back up everything first.

This fix has been working for 5+ hours at time of posting. We don't fully understand exactly which part of the process fixed it, it may be the permission grants, the deviceidle whitelist, or simply the clean reboot cycle from rooting. What we know is: it works.

There's probably a much easier method which we stumbled across with all the below, we just kept trying stuff till it worked... maybe rooting the phone was a bit extreme. Please comment if out of this there's a better and easier way.

The easy alternative first

If you can afford it, just buy a cheap Samsung. A second-hand Samsung Galaxy A-series costs £50-80 and doesn't have this problem. Samsung, Sony, and other Android manufacturers managed to implement Android 15 without breaking Bluetooth medical devices. Only Fairphone has this bug.

If you can't afford a new phone, or you're committed to your Fairphone, read on - this fix does work.

A note on Fairphone

Fairphone markets itself as an ethical company. We find it deeply disappointing that a known bug breaking medical devices, continuous glucose monitors that diabetic patients depend on to stay safe, has gone unfixed for months. This isn't a minor inconvenience. People's lives depend on this data. Other phone manufacturers avoided this entirely. Fairphone has not fixed it. Someone could die because of this.

Please report this to Fairphone directly: https://forum.fairphone.com - and if you're in the UK, report it to the MHRA as a medical device incident: https://yellowcard.mhra.gov.uk. Regulatory pressure is more likely to get this fixed than forum posts.

Using AI to guide you through this

If any of these steps confuse you, paste this entire guide into Claude (claude.ai) or another AI assistant and ask it to walk you through each step. This guide was developed with Claude, and it can explain any part of the process in plain English, answer questions, and troubleshoot problems as they come up. That's exactly how we did it.

The Problem

After the March/April 2026 updates on Fairphone 4 and 5, FreeStyle LibreLink loses its Bluetooth connection to the sensor. NFC manual scans still work, but the continuous glucose streaming stops. The app shows "Ready to scan" instead of live readings.

This is a known bug in Fairphone's Android 15 Bluetooth stack - specifically in BLE L2CAP COC (Connection-Oriented Channels). Samsung and Sony phones on Android 15 don't have this issue, confirming it's specific to Fairphone's implementation. The bug has been reported to both Fairphone and Abbott (FreeStyle) but neither has released a fix as of May 2026.

Credit where it's due

The Fairphone community forums correctly diagnosed the problem. The threads below identified it as a BLE L2CAP COC bug specific to Fairphone's Android 15 implementation, confirmed it affected LibreLink specifically, and suggested temporary workarounds like toggling Bluetooth and setting battery usage to unrestricted. Without that groundwork we would have been starting from nothing.

However, nobody in those threads had found a fix. The actual solution - the ADB permission grant sequence, the deviceidle whitelist, and the rooting pathway - was worked out from scratch in a single evening session with help from Claude AI (Anthropic). As far as we know this is the first documented fix for this specific problem.

Thanks to the forum users who did the diagnostic legwork:

Warnings

⚠️ THIS WILL WIPE YOUR PHONE COMPLETELY. All data not backed up to Google or elsewhere will be lost permanently.

⚠️ Rooting voids your warranty and carries security risks. You are responsible for what you do to your device.

⚠️ This worked on a Fairphone 5 running FP5.VT2Q (April 2026). It should work on FP4 too but has not been confirmed.

⚠️ Future Fairphone OTA updates may break this fix. Do not update the phone until Fairphone releases a confirmed fix for the Bluetooth issue.

⚠️ This is a medical device situation. If you are not comfortable with any of these steps, buy a cheap Samsung instead, they don't have this bug.

What you need

  • Your Fairphone (4 or 5)
  • A Windows laptop (you can do it with any other OS, it's just we did it with Windows)
  • A USB data cable (not just a charging cable)
  • Your Google account credentials (to restore apps after wipe)
  • Your LibreView/LibreLink login details
  • About 2-3 hours

Before you start - back up everything

  1. Photos → Google Photos (make sure backup is on and complete)
  2. Contacts → should sync automatically with Google
  3. Any apps or data not in Google Play → back up manually
  4. Write down your LibreLink/LibreView email and password
  5. Write down any other app logins you'll need

A note on PowerShell commands

All commands in this guide use PowerShell. Every adb and fastboot command needs .\ at the front - so .\adb devices not just adb devices. If you forget this, PowerShell will say the command is not recognised. Also make sure you're always in the platform-tools directory when running these commands (cd C:\adb).

Step 1 - Download the tools on your laptop

  1. Download Android Platform Tools from: https://developer.android.com/tools/releases/platform-tools
    • Extract the zip to C:\adb
  2. Download Google USB Driver from: https://developer.android.com/studio/run/win-usb
    • Extract to C:\Users\[yourname]\Documents\usb_driver
  3. Download Magisk APK from: https://github.com/topjohnwu/Magisk/releases/latest
    • Save the .apk to your Downloads folder
  4. Download the Fairphone factory image matching your current firmware:

Step 2 - Enable Developer Options and USB Debugging on the phone

  1. Settings → About Phone → tap Build Number seven times
  2. Enter your PIN if prompted - you'll see "You are now a developer"
  3. Settings → System → Developer Options → turn on USB Debugging

Step 3 - Get the bootloader unlock code

  1. On the phone, go to Settings → System → Developer Options → turn on OEM Unlocking
  2. It will ask for a verification code
  3. Find your IMEI: dial *#06# on the phone
  4. Find your Serial Number: Settings → About Phone → Serial Number
  5. Go to: https://shop.fairphone.com/bootloader-unlocking-code-for-fairphone (note: it's shop.fairphone.com, not fairphone.com - the old link is dead)
  6. Enter your IMEI and Serial Number → click Get Your Unlock Code
  7. Save the code - you'll need it shortly

Step 4 - Set up ADB on the laptop

  1. Open PowerShell and navigate to platform tools:cd C:\adb
  2. Connect the phone via USB. A popup will appear on the phone - tap Allow USB Debugging and tick "Always allow from this computer"
  3. Verify the connection:.\adb devices

You should see your device listed as device. If it shows unauthorized, check the phone for the popup and tap Allow.

Step 5 - Try the ADB fixes first (no wipe required)

Before going through the full root process, try these ADB commands. In our case, these commands combined with the rooting reboot cycle fixed the issue, but try them now first as they may be enough on their own:

.\adb shell settings put global ble_scan_always_enabled 1
.\adb shell cmd bluetooth_manager enable
.\adb shell pm grant com.freestylelibre.app.gb android.permission.BLUETOOTH_SCAN
.\adb shell pm grant com.freestylelibre.app.gb android.permission.BLUETOOTH_CONNECT
.\adb shell pm grant com.freestylelibre.app.gb android.permission.BLUETOOTH_ADVERTISE
.\adb shell cmd appops set com.android.bluetooth RUN_IN_BACKGROUND allow
.\adb shell cmd appops set com.freestylelibre.app.gb RUN_IN_BACKGROUND allow
.\adb shell cmd appops set com.freestylelibre.app.gb RUN_ANY_IN_BACKGROUND allow
.\adb shell dumpsys deviceidle whitelist +com.freestylelibre.app.gb
.\adb shell am force-stop com.freestylelibre.app.gb

Then reopen LibreLink. If it shows continuous readings, you're done, no need to root. If it still shows "Ready to scan" after a few minutes, continue to Step 6.

Step 6 - Unlock the bootloader ⚠️ THIS WIPES THE PHONE

  1. Reboot into fastboot mode:.\adb reboot bootloader

The phone screen will show a menu with: Start, Restart Bootloader, Recovery Mode, Power Off. That's correct - you're in fastboot mode.

  1. Install the fastboot driver. Open a new PowerShell window as Administrator (right-click Start → Windows PowerShell (Admin)):pnputil /add-driver "C:\Users[yourname]\Documents\usb_driver\android_winusb.inf" /install /force
  2. Go back to your original PowerShell window and verify fastboot can see the phone:.\fastboot devices

If nothing shows (this is a common problem), the driver installed but didn't bind correctly. Fix it through Device Manager:

  • Right-click Start → Device Manager
  • Look for Other DevicesAndroid with a yellow warning triangle
  • Right-click it → Update Driver → Browse my computer → Let me pick from a list → Have Disk
  • Browse to C:\Users\[yourname]\Documents\usb_driver
  • Select android_winusb.inf → OK
  • Try .\fastboot devices again - it should now show your device
  1. Unlock the bootloader - this wipes everything:.\fastboot flashing unlock

On the phone, use volume buttons to select Unlock the bootloader and confirm with the power button.

  1. Then:.\fastboot flashing unlock_critical

Confirm on the phone again.

  1. The phone will reboot and factory reset. Go through the setup, sign into your Google account.
  2. Re-enable USB Debugging (Settings → About Phone → tap Build Number 7 times → Developer Options → USB Debugging) and reconnect via USB, allowing debugging again when prompted.

Step 7 - Root with Magisk

  1. Install Magisk on the phone:.\adb install C:\Users[yourname]\Downloads\Magisk-vXX.X.apk

(adjust the filename to match whatever version you downloaded)

  1. Push the boot.img from the factory image to the phone:.\adb push C:\FP5\images\boot.img /sdcard/Download/boot.img
  2. On the phone, open Magisk → tap InstallSelect and Patch a File → navigate to Downloads → select boot.img
  3. Wait for it to finish, then find the patched filename:.\adb shell ls /sdcard/Download/

You'll see a file called something like magisk_patched-XXXXX_XXXXX.img. Pull it back:

.\adb pull /sdcard/Download/magisk_patched-XXXXX_XXXXX.img C:\FP5\magisk_patched.img
  1. Reboot to fastboot and flash the patched boot:.\adb reboot bootloader .\fastboot flash boot C:\FP5\magisk_patched.img .\fastboot reboot
  2. Once booted, open Magisk - it should show as installed with a version number.

Step 8 - Grant root permissions

This step caught us out - do all of the following or the next step will fail.

  1. Open Magisk → tap the shield icon (Superuser) at the bottom of the screen. If Shell is listed there, tap it and grant access.
  2. Go to Magisk → Settings (gear icon):
    • Set Superuser Access to Apps and ADB
    • Set Automatic Response to Allow
  3. Verify root works from the laptop:.\adb shell su -c "id"

You should see uid=0(root). If you get "Permission denied", check the phone for a popup and tap Allow, then try again.

Step 9 - Apply the fixes with root

Now run the permission fixes again, this time with root backing them:

.\adb shell settings put global ble_scan_always_enabled 1
.\adb shell cmd bluetooth_manager enable
.\adb shell pm grant com.freestylelibre.app.gb android.permission.BLUETOOTH_SCAN
.\adb shell pm grant com.freestylelibre.app.gb android.permission.BLUETOOTH_CONNECT
.\adb shell pm grant com.freestylelibre.app.gb android.permission.BLUETOOTH_ADVERTISE
.\adb shell cmd appops set com.android.bluetooth RUN_IN_BACKGROUND allow
.\adb shell cmd appops set com.freestylelibre.app.gb RUN_IN_BACKGROUND allow
.\adb shell cmd appops set com.freestylelibre.app.gb RUN_ANY_IN_BACKGROUND allow
.\adb shell dumpsys deviceidle whitelist +com.freestylelibre.app.gb
.\adb shell am force-stop com.freestylelibre.app.gb

Then reinstall LibreLink from the Play Store, log in, and open it. Give it 2-3 minutes.

Did it work?

After the full root process and reboot cycle, LibreLink started showing continuous readings. It has been working for 5+ hours since.

We're honest that we don't know exactly why it worked. It's likely the combination of the Bluetooth permission grants, the deviceidle whitelist preventing Android from killing the app, and the clean reboot cycle from the rooting process together clearing whatever blocked state Android 15 had put the Bluetooth stack into. If anyone with deeper Android internals knowledge can explain it more precisely, please comment. We just messed around till the Libre worked properly, somewhere in the above is the key to it.

Important notes after fixing

  • Do not accept Fairphone OTA updates until Fairphone officially fixes the Bluetooth bug. An update could undo this fix
  • The phone is now rooted - be aware of the security implications
  • If the sensor is replaced, make sure LibreLink is used to activate the new sensor, not a separate reader device
  • Monitor LibreView reports at libreview.com to confirm continuous data is coming through

Still not working / need help?

Post in the thread. Also - seriously consider pasting this whole guide into Claude (claude.ai) and asking it to help you troubleshoot. That's how this guide was made and it's very good at walking through problems step by step.

Also please report the issue to:

Reporting to the MHRA as a medical device incident carries real regulatory weight. If enough people report it, both Fairphone and Abbott are obliged to respond.

----------------------------

Edit: After posting this, we found this post by Wanna_Winn on the Fairphone forum which is almost identical to our ADB steps but without the rooting, and therefore much safer. It was posted back in December 2025 but hadn't been widely picked up. Try their method first. We've posted what worked for us, and the Libre is still working. We can't say whether rooting was necessary or whether their ADB-only approach would have been enough, but if it works for you without rooting, that's clearly the better option.

u/Burning_Okra — 11 days ago