Jump to content
dontpannic

Early Bluetooth ULF & Android 4.3+

Recommended Posts

Hi Guys

I don't know how widespread an issue this is but for those of us with early generation Bluetooth ULF's in our E46's and Android phones running Android 4.3 or above, this guide is for you.

Symptoms: Pairs to the car successfully, won't stay connected for more than 5 seconds or so. May or may not download phonebook.

Be warned - this is an in depth procedure that involves modifying an integral Android system file that could, if you make unnecessary changes or screw up, could render the bluetooth on your phone useless until a factory reset. I can't be held liable if you attempt this and f**k up. Only change what is in this guide - do not try anything else unless you are absolutely sure you know what you're doing.

The instructions differ between PC and Mac, so bear with me.

Windows Instructions

Requirements

A rooted Android 4.3 (or higher) device.

adb (available here)

xxd (available here)

Root Browser (available here)

Guide

  1. If you haven't already, root your phone now. Instructions differ for this on different phones - you'll have to Google it I'm afraid for your phone model, but the guys over at xda-developers.com are generally pretty good with this.
  2. Enable Developer Options on the phone (Settings, About - keep tapping Build Number until the message pops up)
  3. Enable USB debugging (Settings, Developer Options - tick Enable USB debugging)
  4. Install Root Browser onto your phone from the link above
  5. Install adb onto your PC from the link above
  6. Plug your phone into the PC
  7. Create a new folder on your desktop and call it Bluetooth
  8. Download the xxd tool from the link above and save it into the folder you just created
  9. Open a command prompt window. Easiest way to do this in the place we want it is to hold shift and right click on the folder you just created, then select Open Command Window Here
  10. Run the command adb devices
  11. This should pop up a message on your phone asking if you trust the computer - select Always Trust and tap OK. The output of adb devices should show a device connected.
  12. Run the command adb pull /system/lib/hw/bluetooth.default.so
  13. Run the command move bluetooth.default.so bluetooth.default.so.backup
  14. Run the command xxd bluetooth.default.so.backup > bsd.txt
  15. Open the newly created bsd.txt file in Notepad
  16. Now you'll have a file open with thousands of hex digits. Don't worry, we know what we're looking for. Using notepads Find tool, find a8b1 b4f8 6032 93b9 b0f8 08e0 0de0. Replace it with a8b1 b4f8 6032 93b9 4ff0 000e 0de0 (underline shows what has changed).
  17. Save the file and close notepad.
  18. Back to the command prompt, run the command xxd -reverse bsd.txt > bluetooth.default.so
  19. If you've done this correctly, inside your Bluetooth folder you should have 4 files; xxd.exe, bsd.txt, bluetooth.default.so.backup and bluetooth.default.so.
  20. Run the command adb push bluetooth.default.so /sdcard/bluetooth.default.so
  21. Turn off Bluetooth on your phone - otherwise the next process will not work!
  22. Open Root Browser. Scroll down and tap on sdcard, tap and hold on bluetooth.default.so, then tap Copy.
  23. Scroll to the top and tap the green back arrow, tap system, tap lib, tap hw, then tap Paste. If asked to overwrite the file, tap Yes. Depending on your root method you should be asked to grant root permissions to perform this action - accept it.
  24. Tap and hold on bluetooth.default.so and tap Permissions
  25. Tick the following boxes: Owner Read, Owner Write, Group Read, Others Read. Everything else should be left blank or unticked.
  26. Tap OK
  27. Tap and hold on bluetooth.default.so and tap Ownership
  28. Ensure both drop down boxes say 0: root and tap OK.
  29. Congratulations - you should now be able turn on Bluetooth and follow the pairing procedure to connect to the car. If all has gone well, it should stay connected to the onboard bluetooth and you should be able to make and receive calls, and use the onboard phone book on the radio display.

Mac Instructions

Requirements

A rooted Android 4.3 (or higher) device.

adb (available here)

Root Browser (available here)

Guide

  1. If you haven't already, root your phone now. Instructions differ for this on different phones - you'll have to Google it I'm afraid for your phone model, but the guys over at xda-developers.com are generally pretty good with this.
  2. Enable Developer Options on the phone (Settings, About - keep tapping Build Number until the message pops up)
  3. Enable USB debugging (Settings, Developer Options - tick Enable USB debugging)
  4. Install Root Browser onto your phone from the link above
  5. Install adb onto your Mac from the link above
  6. Plug your phone into the PC
  7. Create a new folder on your desktop and call it Bluetooth
  8. Open a Terminal window. Open the Terminal app (in Applications, Utilities).
  9. Switch to the new folder you created on your desktop by running the commands cd Desktop followed by cd Bluetooth
  10. Run the command adb devices
  11. This should pop up a message on your phone asking if you trust the computer - select Always Trust and tap OK. The output of adb devices should show a device connected.
  12. Run the command adb pull /system/lib/hw/bluetooth.default.so
  13. Run the command mv bluetooth.default.so bluetooth.default.so.backup
  14. Run the command xxd bluetooth.default.so.backup > bsd.txt
  15. Open the newly created bsd.txt file in Textedit
  16. Now you'll have a file open with thousands of hex digits. Don't worry, we know what we're looking for. Using Textedit's Find tool, find a8b1 b4f8 6032 93b9 b0f8 08e0 0de0. Replace it with a8b1 b4f8 6032 93b9 4ff0 000e 0de0 (underline shows what has changed).
  17. Save the file and close Textedit.
  18. Back to the Terminal, run the command xxd -reverse bsd.txt > bluetooth.default.so
  19. If you've done this correctly, inside your Bluetooth folder you should have 3 files; bsd.txt, bluetooth.default.so.backup and bluetooth.default.so.
  20. Run the command adb push bluetooth.default.so /sdcard/bluetooth.default.so
  21. Turn off Bluetooth on your phone - otherwise the next process will not work!
  22. Open Root Browser. Scroll down and tap on sdcard, tap and hold on bluetooth.default.so, then tap Copy.
  23. Scroll to the top and tap the green back arrow, tap system, tap lib, tap hw, then tap Paste. If asked to overwrite the file, tap Yes. Depending on your root method you should be asked to grant root permissions to perform this action - accept it.
  24. Tap and hold on bluetooth.default.so and tap Permissions
  25. Tick the following boxes: Owner Read, Owner Write, Group Read, Others Read. Everything else should be left blank or unticked.
  26. Tap OK
  27. Tap and hold on bluetooth.default.so and tap Ownership
  28. Ensure both drop down boxes say 0: root and tap OK.
  29. Congratulations - you should now be able turn on Bluetooth and follow the pairing procedure to connect to the car. If all has gone well, it should stay connected to the onboard bluetooth and you should be able to make and receive calls, and use the onboard phone book on the radio display.

***I can't stress enough that if you are not sure, don't do it. Get a techy friend to help you. If all else fails, the guide builds in a backup of the stock bluetooth file so if all else fails, you can copy bluetooth.default.so.backup back to /system/lib/hw/bluetooth.default.so and use Root Browser to make sure the ownership and permissions are correct.***

Information gathered and adapted from http://forum.xda-developers.com/android/help/qa-lollipop-bmw-e46-carkit-bluetooth-t3045523]here.

Link to comment
Share on other sites

Could this potentially be the problem I'm having with my Andrive AN46-3? The bluetooth pops up saying no device connected and gives the connection details. Then my phone connects to it, the screen disappears to the dialling screen, then few seconds later, it disconnects. After this, ends up in an infinite loop of disconnect reconnect every 5-10 seconds.

My phone is an HTC One M8 running Android 5.0.1

Link to comment
Share on other sites

Hmm, symptoms sound the same but I thought this issue only affected the standard bluetooth... may be worth a try if you're feeling up to it. I've not noticed any other bluetooth devices not working after performing the above fix

Link to comment
Share on other sites

Works on 5.0. Should work on any version which isn't cyanogenmod as long as it has the correct hex code.

You can always pull the file off the phone and take a look, your phone is untouched until you've made the edit and reuploaded the new file. In fact to pull the file I don't even think you need to be rooted.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


×
×
  • Create New...