dontpannic Posted May 11, 2015 Report Share Posted May 11, 2015 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 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. Enable Developer Options on the phone (Settings, About - keep tapping Build Number until the message pops up) Enable USB debugging (Settings, Developer Options - tick Enable USB debugging) Install Root Browser onto your phone from the link above Install adb onto your PC from the link above Plug your phone into the PC Create a new folder on your desktop and call it Bluetooth Download the xxd tool from the link above and save it into the folder you just created 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 Run the command adb devices 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. Run the command adb pull /system/lib/hw/bluetooth.default.so Run the command move bluetooth.default.so bluetooth.default.so.backup Run the command xxd bluetooth.default.so.backup > bsd.txt Open the newly created bsd.txt file in Notepad 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). Save the file and close notepad. Back to the command prompt, run the command xxd -reverse bsd.txt > bluetooth.default.so 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. Run the command adb push bluetooth.default.so /sdcard/bluetooth.default.so Turn off Bluetooth on your phone - otherwise the next process will not work! Open Root Browser. Scroll down and tap on sdcard, tap and hold on bluetooth.default.so, then tap Copy. 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. Tap and hold on bluetooth.default.so and tap Permissions Tick the following boxes: Owner Read, Owner Write, Group Read, Others Read. Everything else should be left blank or unticked. Tap OK Tap and hold on bluetooth.default.so and tap Ownership Ensure both drop down boxes say 0: root and tap OK. 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 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. Enable Developer Options on the phone (Settings, About - keep tapping Build Number until the message pops up) Enable USB debugging (Settings, Developer Options - tick Enable USB debugging) Install Root Browser onto your phone from the link above Install adb onto your Mac from the link above Plug your phone into the PC Create a new folder on your desktop and call it Bluetooth Open a Terminal window. Open the Terminal app (in Applications, Utilities). Switch to the new folder you created on your desktop by running the commands cd Desktop followed by cd Bluetooth Run the command adb devices 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. Run the command adb pull /system/lib/hw/bluetooth.default.so Run the command mv bluetooth.default.so bluetooth.default.so.backup Run the command xxd bluetooth.default.so.backup > bsd.txt Open the newly created bsd.txt file in Textedit 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). Save the file and close Textedit. Back to the Terminal, run the command xxd -reverse bsd.txt > bluetooth.default.so 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. Run the command adb push bluetooth.default.so /sdcard/bluetooth.default.so Turn off Bluetooth on your phone - otherwise the next process will not work! Open Root Browser. Scroll down and tap on sdcard, tap and hold on bluetooth.default.so, then tap Copy. 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. Tap and hold on bluetooth.default.so and tap Permissions Tick the following boxes: Owner Read, Owner Write, Group Read, Others Read. Everything else should be left blank or unticked. Tap OK Tap and hold on bluetooth.default.so and tap Ownership Ensure both drop down boxes say 0: root and tap OK. 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. TriggerFish, troublesome84, momo and 1 other 4 Link to comment Share on other sites More sharing options...
troublesome84 Posted May 14, 2015 Report Share Posted May 14, 2015 Thanks mate, great input! Link to comment Share on other sites More sharing options...
Nimraynn Posted May 15, 2015 Report Share Posted May 15, 2015 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 More sharing options...
dontpannic Posted May 15, 2015 Author Report Share Posted May 15, 2015 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 More sharing options...
Nimraynn Posted May 15, 2015 Report Share Posted May 15, 2015 Any ideas if this will work on 5.x, or is it just 4.x? Link to comment Share on other sites More sharing options...
dontpannic Posted May 17, 2015 Author Report Share Posted May 17, 2015 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 More sharing options...
Volandok Posted July 12, 2015 Report Share Posted July 12, 2015 Dear members, Bluetooth doesnt work on windows 7:S bluetooth host controller driver isnt installed and i cant find one Does anybody has the same macbook with working bluetooth? Greetings, Atotaj1 Link to comment Share on other sites More sharing options...