HID Bluetooth Device FIX for 2.3.5 and 2.3.6!! - Android General

NOTE TO MODERATORS: I have discovered a workaround solution to a bug that plagues many android devices running 2.3.5 and 2.3.6, however I cannot post in the development forum. If this thread is moved to the development forum please unlock my ability to post in that forum.
Like many of you I was extremely excited to learn that android now supports HID devices and immediately rushed out to purchase a HID-BT Keyboard. Getting home, I fired up the phone and keyboard, entered the 6 digit code to pair them and saw the device connecting and disconnecting in an infinite loop. I was crushed and disappointed.
What went wrong? As stated above this is merely a workaround. But the problem lies somewhere between the kernel and broadcom chipset. This fix will reset your bluetooth pairings. It has been tested on my Samsung Galaxy SII I727 but it should work with any other device.
-----------------------
The Fix (Workaround)
-----------------------
While this works for me it is not guaranteed to work for you, and while it is unlikely to brick your phone, you could be left with non-working bluetooth. So please make sure to backup all files, especially /system/bin/btld This tutorial assumes a certain level of knowledge about android, if this does not make sense to you PLEASE do not try this!!
1. Make sure that your bluetooth is turned off under settings
2. Download a file manager like ES File Explorer with root capabilities
b. Optionally you can push your files over adb, but I will not cover that in this tutorial.
3. Backup /system/bin/btld to a safe location on your device.
4. Backup /data/misc/bluetoothd/XX:XX:XX:XX:XX:XX/ (where XX:XX... is the MAC of your device)
5. Delete the folder titled with your MAC under /data/misc/bluetoothd/
6. Download the zip file contained as an attachment to this thread
7. Extract btld anywhere on your device.
8. Copy btld from the zip to /system/bin/btld (you must have root access)
9. Set btld permissions to 0755
10. Restart your device.
11. Go into bluetooth settings, pair the phone with your HID device.
b. You might get a prompt to enter a keycode on device 00:00:00:00:07:00; this is a ghost device, harmless but a bit annoying, just hit ok and ignore it
12. Your phone should pair and connect with your HID device.
b. If your phone does not connect, stop here and post back on the forum.
13. Turn off bluetooth DO NOT TURN IT BACK ON UNTIL COMPLETING THE FINAL STEPS OR YOU MIGHT HAVE TO START OVER
14. Open your file explorer, go to /data/misc/bluetoothd/XX:XX.../
b. You should see a file titled hidinfo, open it with a text editor
c. Delete the CONTENTS of this file and save the file
d. Set permissions to 0444 (read only) for hidinfo
15. Restart your device
Bluetooth should be working properly with your HID device. You might continue getting a prompt to pair with a ghost device, just hit ok and ignore it.

Reserved....

Working on Samsung Galaxy i8150
Confirmed working for my mouse on Galaxy Wonder I8150. Android 2.3.5. I do however see the ghost device, but that's not a problem.
Although it seems to be working for a single device at a time, I have trouble using a mouse together with a headse. The pairing process had to be done a number of times before succeeding. It requested the pairing pin code, but sometimes requests the pin code for a "" device. (the headset is a Phillips SHB6017 and supports a2dp audio profile + headset profile)
Sometimes both devices won't connect at all, sometimes the status is connected, but it doesn't actually work.
All in all to much trouble for me. I'm reverting back. Thanks for the effort so far.

Although I have not tried pairing multiple devices, I'll try with a headset and keyboard tomorrow, you can ignore pair requests from device "". I only paired my keyboard once and it just works, although I do get requests from "" whenever I turn on bt that I ignore.
I was in a situation where hid wasn't working at all though, so the trouble is worth it for me
I'll test with two devices tomorrow

Just want to report that I have no trouble connecting with my Blueant BT and Logitech for Android KB on my I727 Samsung SII LTE. I find that once I pair the devices they connect automatically most of the time once turned on. My BT didn't pair automatically once but I just power cycled it and hit the connect button and it worked.
If anyone else has tried this fix please report your results so others can learn from it

Glad it works for you. Here are the devices I used.
My mouse is a Logitech Laser Travel Mouse (blue). The Headset is a Phillips SBH6017.
I did try to power cycle and ignore the "" requests, and I eventually could get both devices paired and connected. But the sound will not play over the headset. Reconnecting didn't help much. When I reverted back it worked instantly(headset) but the mouse (as expected because of the HID bug) doesn't work after reverting back.

thank you so mutch... i bought an A4Tech Mouse BT-630 to use it whit Samsung GSII I9100, MHL and an LG LCD TV to watch videos on Youtube when my brother is at the PC and it would paire but not connect... i was so dissapointed thinking that the mouse is not good and i just wasted my money on it. I folowed your tutorial and i can confirm that it works! Thanks againe !!! PS: english is not my native language...

I was really excited when I saw this post. But it didn't seem to work. I got to step 4. There was no file showing up with my MAC address... no files at all in that directory.
I went ahead anyway. One thing to check: I set the permissions of the btld to:
user: read, write, execute
group: read, execute
other: read, execute
Is that right? There are no numbers in the choices.
Also should the btld file go directly into /system/bin/ folder? Or should there be another folder there: /system/bin/btld/btld
SPH-D700, Samsung Epic
2.3.6, EL30
SleeperRom

zeckwoy said:
I was really excited when I saw this post. But it didn't seem to work. I got to step 4. There was no file showing up with my MAC address... no files at all in that directory.
Click to expand...
Click to collapse
If you've used bluetooth on the device even once those files should be automatically generated by the bluetooth driver. Please confirm that you are in the root directory under /data/misc/bluetoothd/ It should be a folder with your MAC and files inside, this folder needs to be generated for the fix to work.
zeckwoy said:
I went ahead anyway. One thing to check: I set the permissions of the btld to:
user: read, write, execute
group: read, execute
other: read, execute
Click to expand...
Click to collapse
Those are the right permissions for btld, btld should go under /system/bin/ directly. You should backup the old file before doing this so that you can revert if needed.

jaapsen said:
Glad it works for you. Here are the devices I used.
My mouse is a Logitech Laser Travel Mouse (blue). The Headset is a Phillips SBH6017.
I did try to power cycle and ignore the "" requests, and I eventually could get both devices paired and connected. But the sound will not play over the headset. Reconnecting didn't help much. When I reverted back it worked instantly(headset) but the mouse (as expected because of the HID bug) doesn't work after reverting back.
Click to expand...
Click to collapse
Could you describe the order that you power on your devices when they don't work, or the order that you've found has worked? I do find that sometimes my BT headset won't connect automatically but if I go under settings/bluetooth and hit to pair with it it connects successfully and works.
The fix isn't overly complicated, all you're doing is really replacing the bluetooth stack with an older version. Did you delete the contents of hidinfo under data/misc/bluetoothd/XX:XX:XX../ and set permissions to read-only?

Sorry, it doesn't work for me. I get the same message as always:
"Sorry, but HID device is not supported on this phone."
I get that when I try to pair. I have two different keyboards, and both get the same response.
The one keyboard did work when I was running ICS Cyanogen Mod (without your fix), but doesn't work when I run Sleeper Gingerbread (with your fix.)
Thanks anyway. Wish it worked!

Hello,
i have a same problem with my 2.3.6 on my Galaxy note N7000
my HID bluetooth device Also Samsung .. after upgrade to the new 2.3.6 version
my Headset cannot pair ..
please i think i need your BTFIX file .. but it seems i'm not be able to use it .. it said " CRC error " the file was corrupt ..
please i need your new file ..

Worked
Awesome, thanks! (galaxy note 2.3.6)

Did not help me on Galaxy W
This did not help me on Black Notes Hybrid 2 nor Bionic Cow 2. Interestingly - Bluetooth works great on stock ROM.

Re: Did not help me on Galaxy W
dushino said:
This did not help me on Black Notes Hybrid 2 nor Bionic Cow 2. Interestingly - Bluetooth works great on stock ROM.
Click to expand...
Click to collapse
Update from me: After some experiments I found that the problem was in kernel! (Samsung Galaxy W, Bionic COW ROM or Black Notes Hybrid 2) When I installed
stock kernel, Bluetooth started to work without modififying any configuration files or replacing a single binary.
Please note that there is a lot things what can go wrong when something does not work. It means that I am not saying kernel replacement solves it all - receipt mentioned here still might work for you.

Galaxy Exhibit
I have an Exhibit II, now called Galaxy Exhibit in its new 2.3.6 firmware. The 2.3.5 firmware actually worked well with my Logitech Android Tablet Keyboard but 2.3.6 didn't. Following the lead of this post I replaced btld with the version from the previous firmware and that worked -- once. Now that I have also made the changes to hidinfo.txt it seems to be working better -- EXCEPT that I am getting the Settings app crashing nearly every time Bluetooth is turned on or off.
Also I think the Home button on the keyboard was working that first time, but it isn't working now... and the keyboard is not listed under paired devices.

it woked for me.thank u very very much genius.

I can't overwrite btld... How do i overwrite it?

Close, but no cigar ... (SGT P1000 running 2.3.6)
tommystery said:
NOTE TO MODERATORS: I have discovered a workaround solution to a bug that plagues many android devices running 2.3.5 and 2.3.6, however I cannot post in the development forum. If this thread is moved to the development forum please unlock my ability to post in that forum.
Like many of you I was extremely excited to learn that android now supports HID devices and immediately rushed out to purchase a HID-BT Keyboard. Getting home, I fired up the phone and keyboard, entered the 6 digit code to pair them and saw the device connecting and disconnecting in an infinite loop. I was crushed and disappointed.
What went wrong? As stated above this is merely a workaround. But the problem lies somewhere between the kernel and broadcom chipset. This fix will reset your bluetooth pairings. It has been tested on my Samsung Galaxy SII I727 but it should work with any other device.
-----------------------
The Fix (Workaround)
-----------------------
While this works for me it is not guaranteed to work for you, and while it is unlikely to brick your phone, you could be left with non-working bluetooth. So please make sure to backup all files, especially /system/bin/btld This tutorial assumes a certain level of knowledge about android, if this does not make sense to you PLEASE do not try this!!
1. Make sure that your bluetooth is turned off under settings
2. Download a file manager like ES File Explorer with root capabilities
b. Optionally you can push your files over adb, but I will not cover that in this tutorial.
3. Backup /system/bin/btld to a safe location on your device.
4. Backup /data/misc/bluetoothd/XX:XX:XX:XX:XX:XX/ (where XX:XX... is the MAC of your device)
5. Delete the folder titled with your MAC under /data/misc/bluetoothd/
6. Download the zip file contained as an attachment to this thread
7. Extract btld anywhere on your device.
8. Copy btld from the zip to /system/bin/btld (you must have root access)
9. Set btld permissions to 0755
10. Restart your device.
11. Go into bluetooth settings, pair the phone with your HID device.
b. You might get a prompt to enter a keycode on device 00:00:00:00:07:00; this is a ghost device, harmless but a bit annoying, just hit ok and ignore it
12. Your phone should pair and connect with your HID device.
b. If your phone does not connect, stop here and post back on the forum.
13. Turn off bluetooth DO NOT TURN IT BACK ON UNTIL COMPLETING THE FINAL STEPS OR YOU MIGHT HAVE TO START OVER
14. Open your file explorer, go to /data/misc/bluetoothd/XX:XX.../
b. You should see a file titled hidinfo, open it with a text editor
c. Delete the CONTENTS of this file and save the file
d. Set permissions to 0444 (read only) for hidinfo
15. Restart your device
Bluetooth should be working properly with your HID device. You might continue getting a prompt to pair with a ghost device, just hit ok and ignore it.
Click to expand...
Click to collapse
Sadly, no luck on my SGT P1000 running Overcome(4.1.0) GB 2.3.6. Most of the steps work fine, but at the moment of connection the tablet reboots and I must start over. I really was hoping this workaround would work as I am very happy with my current configuration, and perfection would be being able to connect to my HID keyboard. Thanks anyway for the post! :good:

Getting same type of problem
I have a Galaxy Nexus and I CAN pair with a Dell BT mouse but I don't get a pointer. Would this fix work on my phone or is there another problem. I looked all over for a fix and I seem to be the only one with a GNex having this issue. Mouse tested and works on Thunderbolt. My Bluetooth works with BT headphones. Any help is greatly appreciated.
Samsung Galaxy Nexus
android version: 4.1.1
Base Version : FF02/FG02
Kernal Version : 3.0.42-Air_kernal_stable_G512mhz_for_JBN
AOKP version : AOKP_toro_jb-build-1
build number : JRO03H

Related

[Q] HP Touchpad BT Keyboard pairing with Android phone / other devices? *solved*

I got one of the hp touchpad bluetooth keyboards on sale with the touchpad. It pairs easily with the touchpad, but if I try to pair it with my android phone, I get prompted for a passcode.
Does anyone know the bluetooth passcode for the keyboard?
***EDIT
Figured it out: apparently android by default doesn't have the capability yet to sync properly with bt keyboards by itself yet (Cyanogenmod might work.) To make it work, I got an app 'Bluetooth Keyboard Easyconnect' from the market. Just turn on bluetooth, open the app, and turn on the hp touchpad keyboard (in that order) and wait - it will sync automatically. Don't try to force the pairing in the bluetooth settings page for your phone.
If you do have a rom that allows manual pairing from the bluetooth settings by default, to sync you need to enter a passcode on your phone when prompted (anything you want - i used 0000), and then type the same code on the bt keyboard and press enter.
market link: https://market.android.com/details?id=net.mybesttools.btkbservice&feature=search_result
Try 000 (three zeros) or 0000 (four zeros). That is what most devices I have tried use.
HP official bluetooth keyboard
I got this for $28 at best buy, and while it works decent with the touchpad, I am wondering: Can it work with other devices?
I got it to pair with windows 7, but when I type, nothing happens. Has anybody else had any success? Something I'm not doing perhaps?
Every comment I've seen about this says the keyboard works only with the touchpad. There is some concern that the keyboard may not even work on the touchpad if/when Android is ported to it.
needslipo said:
I got one of the hp touchpad bluetooth keyboards on sale with the touchpad. It pairs easily with the touchpad, but if I try to pair it with my android phone, I get prompted for a passcode.
Does anyone know the bluetooth passcode for the keyboard?
***EDIT
Figured it out: apparently android by default doesn't have the capability yet to sync properly with bt keyboards by itself yet (Cyanogenmod might work.) To make it work, I got an app 'Bluetooth Keyboard Easyconnect' from the market. Just turn on bluetooth, open the app, and turn on the hp touchpad keyboard (in that order) and wait - it will sync automatically. Don't try to force the pairing in the bluetooth settings page for your phone.
If you do have a rom that allows manual pairing from the bluetooth settings by default, to sync you need to enter a passcode on your phone when prompted (anything you want - i used 0000), and then type the same code on the bt keyboard and press enter.
market link: https://market.android.com/details?id=net.mybesttools.btkbservice&feature=search_result
Click to expand...
Click to collapse
So can your confirm that this keyboard can indeed work with android phones/devices? I just received my purchase of this keyboard, and it looks and feels great. But I don't want a bluetooth keyboard that will only work with WebOS.
Thanks
Works fine with android and webos. Haven't tried it with anything else but it seems to be a generic bt keyboard so I'm sure it's within its capabilities to work on windows or mac.
I have a stock Evo 3D. And it works that.
I can confirm it pairs with the iPad 2, so (presumably) it should also pair with other iOS devices. The iPad asks that you punch in a code to confirm the sync, but I wonder if it's static?
Will this work with Win7?
I currently use the apple BT keyboard for Win7 but used "KeyTweak" to remap the key strokes in the registry for buttons such as delete and the media keys. Everything else works just dandy (cept the damn Ctrl key is in the wrong place...stupid Apple)
Would it be safe to assume that the Touchpad keyboard would work the same and require remapping of a few keys here and there? I see one person above said that they couldn't get it to work with Win7, but then again many people say that it doesn't work with Android and it definitely does...
Thank you all!
I have been able to pair up with my touchpad, 2 android phones, and a ps3 so I am assuming it will work on any bluetooth enabled device
I can't freaking get mine to pair. I can clearly see it, but after putting in the password (I've tried 000, 0000, 1234, 0123, 01234, and ABC) it just keeps asking if I want to pair it again. I'm assuming I don't have the correct PW. Anyone else have one that might work? I'm running the latest CM7 nightly and using the CM7 BT options.
Also, I downloaded that app mentioned earlier and it like.. doesn't work at all.
Mekkakat said:
I can't freaking get mine to pair. I can clearly see it, but after putting in the password (I've tried 000, 0000, 1234, 0123, 01234, and ABC) it just keeps asking if I want to pair it again. I'm assuming I don't have the correct PW. Anyone else have one that might work? I'm running the latest CM7 nightly and using the CM7 BT options.
Also, I downloaded that app mentioned earlier and it like.. doesn't work at all.
Click to expand...
Click to collapse
im having the exact same problem, im running MIUI on my s2 and just cant get it working, with or without the app within the app the keyboard just doesn't show up >_< i just want to pair it up so that i can get confirmation that it will still work when i flash android (when its available) to my touchpad :/ please help!
My Hp Keyboard works with Windows 7 and my dell streak 7 running honeystreak, no app needed. They both ask me to enter in a number upon pairing and they both work great.
I used this app to pair a new HP Touchpad keyboard I bought through Craigslist yesterday for $40. Worked within a few minutes of poking around. My Samsung Infuse is rooted, thanks to a modded Rogers ROM someone shared here. Pairing took a bit of figuring out, mostly because I have Droidwall running and hadn't granted permissions for the app. Then I installed Null Keyboard to get rid of the thumb keyboard while typing. Works AWESOMELY well in QuickOffice and other text editors.
My only complaint is a weirdness in the native email application which makes the keyboard unusable there. I can type random-length text, anywhere from a few words to a short paragraph, then it freezes for a few seconds, then I get a 'text copied to clipboard' message and the new message or reply I was starting vanishes. Not to the Drafts folder or Trash, just gone like it was never there. Doesn't happen with any other input method, as the email application seems generally stable and good. Of course I can write messages in a text editor then copy/paste them into email, but that's a bit of a pain. Anyone heard of this glitch?
Otherwise the HP keyboard is amazingly compact and comfortable to use. There are a few keys which don't seem to work at all and some weird key functions I'll have to learn, like the sideways arrow keys navigate vertically and the vertical arrows do nothing... and how Control A doesn't select all text etc, and how symbol and numeral entry uses odd key combinations, but for basic text entry it's solid. With a good external keyboard for this phone my jump from Windows Mobile is complete, I'm happy to have made the leap.
So I finally got my keyboard. It paired with Win 7 no problems. My issue now is that the "power" button did not remap to the "del" button and program "KeyTweak" doesn't even recognize the "power" button key stroke for me to remap it.
Any ideas? Thank you!
when using the keyboard with android, the keyboard looses connection when it drops into hibernate. It doesn't re-establish connection and must be re-paired from android....am I doing something wrong?
so is it only me but the delete button only deletes a letter (in a word document) at a time and does not continuously delete even if it's held down?
Holding down any key causes it to repeat for me, including the delete key. This is with a Samsung Infuse.
So what am I doing wrong? When I got to connect with any of my Android devices, I get to the password screen and it just won't connect after that. I've tried 000, 0000, 1234 etc, with no avail. Is there a special code?
When I first connected the HP Touchpad keyboard I had to enter a 6 digit code, if memory serves. It wasn't generic - rather a proper code, something you couldn't guess at particular to the pairing request. I entered it (there was a time limit too, a countdown... maybe, but I've been doing a lot of setting up of stuff on this thing and forgetting more than I remember), and since then have not been asked for it. Connecting is a bit twitchy the odd time but mostly I just toggle power on the keyboard off and on again if it's taking more than half a minute to connect. I typically see a pop-up 2 to 4 times on the phone saying the HP keyboard is connecting before it actually does.

[GUIDE/TUT] How to get ICS devices run OBD2 interfaces via WIFI WITHOUT DROPS

Did you end up buying a OBD2 Wifi (not bluetooth) interface for your car, noticing android got some problems with ad-hoc connections and can't connect that easy, that you may have thought?
Well, if so, I'm at least not the only one
In my case I wanted to have a look at my engine stats etc. You might also be happy about checking the vin stored in the cars ecu with the one you got on paper, when buying a used car or else. Anyway I did not want those crappy bluetooth thing for some bucks. I wanted it to use wifi and also to be able to connect via usb to a laptop, if neccessary.
I got mine from eBay for about 80$. There is a bunch of these things avaible everywhere. I can't really tell you which one is better in which way. Most of them come out of china and are built pretty cheap, just like mine
BUT at least they work the way the should, once configured right.
IN GENERAL --> without any kind of workaround you shold keep in mind:
BT OBD2 is used for android devices. No Problem
WIFI OBD2 is usually used for iDevices, as they're not allowed to share BT with non-iDevices.
I didn't really make up my head about the second part, as I'm using android on every device I personally own.
Here's a tutorial on how I solved it anyway:
1. Buy yourself some OBD2 interface with wifi and the software you desire. Didn't test anything else but torque pro; no guarantee that other apps support these android-wifi-adhoc-obd-interface-workarounds
2. you need a rooted phone, in every possible case afaik.
3. Plug in your OBD interface and look, if you can see it in your wlan list.
In my case...I couldn't^^
If you see it jump to Number 4.4, if not, just keep on reading.
4. Getting my device, which is a HTC Sensation, with ARHD 6.6.7 - 4.0.3 ICS, connected to it required some effort:
4.1. I used a different wpa_Supplicant, to be able to see adhoc networks
I got this one: http://forum.xda-developers.com/showthread.php?t=1549065&highlight=adhoc also attached in the Thread. Full Credits go to the dev, although I don't know who it was exactly.
4.2. REMEMBER TO BACKUP YOUR ORIGINAL WPA_SUPPLICANT AND SWITCH WIFI OFF BEFORE!
It's stored in system/bin; so you'll need a explorer (mount R/W) for your phone's file system. I always used the root explorer. Worked flawlessly everytime. (mount R/O afterwards).
4.3. Flash the attached file in recovery -> I did at least find the adhoc network after it. Remember that some wifi off, wifi on sometimes solves problemes with this. This was at least the case for me. Reboot.
4.4. Now that you can see the OBD interface in your wlan list, you propably tried to connect, didn't you?
For most of us, this won't work, that easy, as your OBD interface doesn't work as a DHCP router, so you're in the need of taking a static IP.
Therefore it always depends on which IP range your interface is networking. In the most cases this will be 192.168.0.X
Picture #1 is a screen of the config tool, that came with mine so I can modify these values. (What is not really neccessary, cause you're doing this with your phone.)
Picture #2 are my stats. You can edit yours by long pressing on your desired OBD device in your phones wifi list and pressing "edit network". After that, change to advanced configuration and choose static IP.
4.5. Save your preferences and try to connect. Again I think my wifi needed a reboot to work with the values set now. So just swith it off/on again.
5. You're done. More or less. Because this is just what made me able to connect but drop my connection to the OBD after trying to access it via torque. It did connect (as seen on adapter status in torque), but lose connection after some seconds. It just didn't really work for a longer period of time. There also used to be connecting errors with my home wifi.
5. After hours of testing and experimenting with this whole topic I came to the conclusion my home network didn't work anymore or rather my phone couldn't keep up the connection. What you have to do is switch back to your old wpa_supplicant. Don't worry, your OBD interface should be saved and is still accessable afterwards.
5.1. SWITCH WIFI OFF. Navigate to system/bin via root explorer or similiar. (mount R/W) locate the wpa_supplicate and delete/rename/remove it and put the original file back in it. (mount R/O afterwards). Reboot.
(Picture #3 shows how it looked on my device after switching back to the original file.)
5.2. You're finally done.
Remember not to forget that wrong permissions could lead to errors. Refer to my attached screenshot or your original file, if neccessary.
where you found the configuration tool??

Cannot Pair Sony DualShock 4 Controller to my phone?

Hey everyone. I am running a stock, rooted OS (v 4.4.2). I have version 1.4 of the remote play app installed, and it works awesome! With the on screen controls it works great, and is very snappy.
I am running into a bunch of issues getting my DS4 to pair to the device via bluetooth.
I tried doing the native bluetooth pairing (holding share + PS on the controller, and scanning on the GS5). The device showed up, but if I tried to pair it, it would literally just sit there and never do anything.
Next, I ended up having to use SixAxisPairTool in conjunction with SixAxis Compatibility Checker (as mentioned in other threads). I used the compatibility checker to get my BT local address, and then I used the PairTool to change the master address to the one listed. When I try to pair the device with bluetooth inside the compatibility checker, it flat out fails and says no devices are connected, and to connect with usb.
Except the instructions on their website say the exact opposite - to disconnect the controller from usb and press the PS button to pair. When I stop trying to pair in the compatibility checker, I get an error saying that the maximum number of devices are connected.
So, I closed out of the compatibility checker, and opened back up the native bluetooth settings, and tried repairing again. This time the device showed up, and it is now listed as paired. But there is no light on the DS4. If I press the PS button, it does one of the following: it flashes white constantly, it flashes white once and stays lit for a few seconds and then goes off, it flashes white several times then stays on for a second.
I have unpaired the device inside the phone, and then pressed the PS button, and I get prompted with a request to pair the device. When I accept, the same thing happens. The light disappears on the back of the DS4, and nothing happens.
I tried using a joystick tester to see if it was connected and the light just didn't work properly, but there doesn't seem to be any communication between the two devices.
I would really like to avoid having to buy an OTG cable (namely because I can't seem to find a decent one except for questionably sourced ones from a reliable vendor), and really was hoping for a wireless setup.
Can anyone help a brother out here? I have had a prompt in my dock for months about a system update for my phone, but I have been hesitant to install it because I don't want to lose root, and none of the ROMs out there seem to be vanilla stock + root.
Edit:
I unpaired the controller from my phone, and opened back up the compatibility checker. Ignoring the pair button, I just started the software. Then I hit the PS button and it flashes white 2-3 times and stops. If I do this again, it will repeat. No text changes on the screen. I can do this two more times. When I attempt to do this a fifth time, I get an error message saying "Maximum number of clients already connected."

Bluetooth on Intel

This is mostly for the new Joying INTEL units.
*********************************************
OLD STUFF: aka "BlueBalls.apk"
The bluetooth stack on these units appears to be ENTIRELY functional, but for whatever reason (don't ask me to guess at the thought processes that go into developing a head unit in China....) they HIDE the button in the Settings application that links to BLUETOOTH settings.
This is the simplest/dumbest application anyone has ever written.
The code inside it is literally JUST the following THREE LINES;
Code:
Intent intentOpenBluetoothSettings = new Intent();
intentOpenBluetoothSettings.setAction(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS);
startActivity(intentOpenBluetoothSettings);
It launches the bluetooth settings activity that Joying has hidden.
**************************************************
NEW STUFF!!!!
Ok, so the thing is, even with blueballs installed, the process of tethering is somewhat... MANUAL. On both sides of the connection -- data source, typically your phone, and head unit. Wouldn't it be nice to AUTOMATE things a little bit?
While there are some guides and hackish programs that suggest that they can get this done, for instance http://forum.xda-developers.com/showthread.php?t=2574310 -- the reality is that NONE of these solutions will actually WORK, nor are they simple to configure, nor are they reliable. They are a BIG UGLY MESS.
So I decided to do it myself, in a nice, clean, self-contained Android application.
The result is the BluetoothTethering.apk attached below.
Here is description of this program;
Start up the program, and you are presented with a screen with some buttons, switches, and spinners.
FOR THE CAR RADIO SIDE:
At the top of the screen is a spinner containing a list of all paired bluetooth devices. If you select one of those devices, and hit the "CONNECT PAN" button, it will try to connect to that device as a bluetooth tethering client. If you enable the switch "Auto Connect PAN", then whenever it connects to that device (the one currently showing in the spinner), it will AUTOMATICALLY try to connect PAN. The application does NOT need to be running for this to occur, since there is a receiver registered in the application's manifest.
The next button down, "Launch Bluetooth Settings", just launches the standard Android Settings --> Bluetooth activity. This is the same as what BlueBalls does, so you don't need to install both.
FOR THE PHONE SIDE:
At the bottom, there is a button "START SERVICE", hit that button on your phone, and it should start up bluetooth tethering service.
And the switch "Auto Bluetooth Tethering", means that every time the bluetooth device turns ON, it will automatically enable bluetooth tethering. Again, it receives an intent and does the work in the background, so the application need not be open.
CAVEATS!!!
Ok, this is where the fun begins! Starting with Android version 3.1, newly installed applications are given a default state of "stopped", in which they are unable to receive any broadcast intents. In order to get the application out of the stopped state such that it can receive broadcast intents, it needs to be manually run first. A second part of this feature, is that if an application is force stopped, it is RETURNED to the "stopped" state. This becomes a problem on at least some Chinese Android car radios. In particular, it is a problem on at LEAST Joying units (possibly also others). In these units, when the car ignition is turned off, after a few minutes they go to SLEEP mode so that they don't drain the car's battery. The problem is that just before going to sleep, everything running is FORCE STOPPED, sending everything, INCLUDING BluetoothTethering.apk, into a "stopped" state, thus disabling the application's ability to receive the broadcast intent necessary in order to activate PAN!
Workaround: NOW TESTED AND VERIFIED FUNCTIONAL... provisioning the application with enhanced privileges, by installing it into /system/priv-app/, will allow it to avoid the "stopped" state, or at least allow it to receive broadcast intents regardless of that state. After all, there are many system receivers that fire as expected, even if you don't manually open the applicable application manually!
If you are going to do this (which you MUST on Joying Intel car radios, and possibly other MTCD Intel car radios), the steps are as follows;
Connect it and a laptop (with adb installed) to a common wifi network. This CAN be a hotspot running on the head unit or laptop, or even your PHONE. Just as long as they are all on the same network! Find the IP address of the head unit. If the head unit is connected to a different AP rather than hosting a hotspot, you can look in wifi --> 3dots menu --> advanced. If the head unit IS the hotspot, then look at your laptop (terminal --> ifconfig) and find ITS IP address (for example, 192.168.30.123) and change the last byte to a "1" to find the head unit's IP address, in this case, it would be 192.168.30.1.
In a terminal on the computer, run following;
Code:
adb connect <ip address of head unit>
adb push BluetoothTethering.apk /sdcard/
adb shell
$ su
# mount -o remount,rw /system
# mkdir /system/priv-app/BluetoothTethering
# cp /sdcard/BluetoothTethering.apk /system/priv-app/BluetoothTethering/
# chmod 755 /system/priv-app/BluetoothTethering
# chmod 644 /system/priv-app/BluetoothTethering/BluetoothTethering.apk
# sync
# reboot
Now the application is installed with extra privileges, so it will respond properly to the broadcasts when the unit powers back on after sleeping.
Note: This application will not currently work with a typical Android TABLET. The reason is that despite being "paired" to your phone for tethering, the two devices do not automatically establish a connection when they are in proximity. A car radio and phone DO automatically establish a connection when in proximity in order that your phone calls will be directed over bluetooth. I will be looking into whether or not there is some battery efficient mechanism for accomplishing this, but I am not hopeful.
I am also aware that the auto-tethering setting is currently limited to a selection of ONE bluetooth device. If two people share a car, this may be inadequate. My intention is to create a LIST of devices that it can try connecting to. CANNOT just try ALL devices, since obviously it would be silly to try to establish a PAN connection with your OBD dongle.
There is also a potential weakness where if the bluetooth connection is established BEFORE the PHONE has bluetooth tethering enabled, the head unit will just try once to connect PAN, fail, and give up. I intend to have it periodically retry if the connection is established to an enabled device, but PAN failed.
Going to test it this afternoon. I think it will work.....
By the way: many other settings are hidden (accounts, sync, ...). They even have a second "settings.apk" (only 1 MB)....wtf.....? A lot of overlays too (we should get rid of them)
Interesting.
I'll have to rip a few of those apart and see what is up with them.
Hopefully, I'll have my 128N2's by next week.
FYI: Brainless "Candy" at Joying is really giving me the runaround when asking her about getting into recovery. Told her even to ask their technical people for the answer.... her solution? Just wait an extra hour before responding to the email with the same nonsense "do not worry, it will not fail to boot into Android, this is our latest very much more stable"
I *really* hate dealing with chinese manufacturers.
Wonder how she's going to respond to my request for kernel source code? Probably give me a link to kernel.org....
The blueballs.apk is working.
lol anyone wanna try this on a RK3188 unit
thanks doitright..
My UL128N2 from joying in in transit. hopefully receiving it in a week. I will try this in my unit and post you the feedback:good::good:.
May be this simple app can make UL128N2 to connect to 'any brand' BT OBD2 adapter.
doitright said:
This is mostly for the new Joying INTEL units.
The bluetooth stack on these units appears to be ENTIRELY functional, but for whatever reason (don't ask me to guess at the thought processes that go into developing a head unit in China....) they HIDE the button in the Settings application that links to BLUETOOTH settings.
This is the simplest/dumbest application anyone has ever written.
The code inside it is literally JUST the following THREE LINES;
Code:
Intent intentOpenBluetoothSettings = new Intent();
intentOpenBluetoothSettings.setAction(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS);
startActivity(intentOpenBluetoothSettings);
It launches the bluetooth settings activity that Joying has hidden.
Note: It works perfectly on my Nexus 6, but I don't have a Joying INTEL head unit yet (two UL128N2's on order). It *should* be fine, unless they did something REALLY weird, in which case I have another way to issue the intent that may work.
Click to expand...
Click to collapse
masri1987 said:
lol anyone wanna try this on a RK3188 unit
Click to expand...
Click to collapse
Not even remotely the same thing.
leonkernan said:
Not even remotely the same thing.
Click to expand...
Click to collapse
I know, just don't understand why the CPU makes the native ROM different for
masri1987 said:
I know, just don't understand why the CPU makes the native ROM different for
Click to expand...
Click to collapse
The Bluetooth was a separate module on the RK boards, it's on the processor board on the Sofias.
They have completely different driver software requirements.
leonkernan said:
The Bluetooth was a separate module on the RK boards, it's on the processor board on the Sofias.
They have completely different driver software requirements.
Click to expand...
Click to collapse
Well, you know something... just because the bluetooth module is on a separate board does not mean that it is necessarily "wrong". Consider the fact that you can plug a bluetooth USB dongle into ANY normal laptop/desktop/server and have it work correctly! The thing is, there ARE a bunch of high speed ties between the SoC through to the MCU board, and we know from the fact that things like torque CAN work on the rockchip/arm/mtcX units that BT SPP profile is definitely able to make it through to the bluetooth device itself. Also the fact that WIFI works on those units supports the idea that they aren't completely broken (wifi and bluetooth are on the same physical RF chip, since they use the same spectrum and need to coordinate with each other in order to operate correctly).
What this really boils down to, is that very likely, those older arm boards *actually could* be programmed to have correctly working bluetooth.
However, there IS a difference in the software. While on the RK/arm boards, they have MODIFIED the settings/bluetooth screen to be horribly broken, on the INTEL boards, they have simply deleted the link to the settings/bluetooth activity from the main settings activity, and otherwise left it fully intact. So really, there are TWO possibilities here in just how they butchered it; (1) They added a new settings/bluetooth screen and changed the link to point to it, which could mean that the original one is actually still there UNBROKEN, or (2) They actually butchered the settings/bluetooth activity.
If they used approach (1), then this apk ***COULD ACTUALLY WORK*** on them. However, if they used approach (2), then it would definitely be necessary to build a new settings/bluetooth screen with the appropriate permissions to change bluetooth settings, and installed in the system partition (i.e., root needed).
Hi,
My Joying JY-UL135N2 just arrived. So far so good with the functionalities except Bluetooth OBD2. I have used 'blueballs.apk' and the Bluetooth settings screen appeared which was not visible otherwise. I could find my BT OBD2 device in the device list with the name 'CHX'. I tried to pair to it and unfortunately error popped up " Couldn't pair with CHX because of an incorrect PIN or passkey".
In the BT settings screen, there is no option to specify PIN or passkey. May be the unit sends some JOYING pass key or PIN to the device without giving an option for the user to specify one.
Is there any way to send an user defined PIN or pass key to Bluetooth device?
doitright said:
This is mostly for the new Joying INTEL units.
The bluetooth stack on these units appears to be ENTIRELY functional, but for whatever reason (don't ask me to guess at the thought processes that go into developing a head unit in China....) they HIDE the button in the Settings application that links to BLUETOOTH settings.
This is the simplest/dumbest application anyone has ever written.
The code inside it is literally JUST the following THREE LINES;
Code:
Intent intentOpenBluetoothSettings = new Intent();
intentOpenBluetoothSettings.setAction(android.provider.Settings.ACTION_BLUETOOTH_SETTINGS);
startActivity(intentOpenBluetoothSettings);
It launches the bluetooth settings activity that Joying has hidden.
Note: It works perfectly on my Nexus 6, but I don't have a Joying INTEL head unit yet (two UL128N2's on order). It *should* be fine, unless they did something REALLY weird, in which case I have another way to issue the intent that may work.
Click to expand...
Click to collapse
---------- Post added at 02:03 PM ---------- Previous post was at 01:55 PM ----------
hi, doitright,
error screenshot attached.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
aneesp said:
Hi,
My Joying JY-UL135N2 just arrived. So far so good with the functionalities except Bluetooth OBD2. I have used 'blueballs.apk' and the Bluetooth settings screen appeared which was not visible otherwise. I could find my BT OBD2 device in the device list with the name 'CHX'. I tried to pair to it and unfortunately error popped up " Couldn't pair with CHX because of an incorrect PIN or passkey".
In the BT settings screen, there is no option to specify PIN or passkey. May be the unit sends some JOYING pass key or PIN to the device without giving an option for the user to specify one.
Is there any way to send an user defined PIN or pass key to Bluetooth device?
Click to expand...
Click to collapse
@aneesp --> Use the built-in BT app to connected (first time) with your OBD device. Maybe you have to change the PIN to 0000 or 1234 to get a paired connection (use the built-in BT app to change the PIN!!!)
aneesp said:
Hi,
My Joying JY-UL135N2 just arrived. So far so good with the functionalities except Bluetooth OBD2. I have used 'blueballs.apk' and the Bluetooth settings screen appeared which was not visible otherwise. I could find my BT OBD2 device in the device list with the name 'CHX'. I tried to pair to it and unfortunately error popped up " Couldn't pair with CHX because of an incorrect PIN or passkey".
In the BT settings screen, there is no option to specify PIN or passkey. May be the unit sends some JOYING pass key or PIN to the device without giving an option for the user to specify one.
Is there any way to send an user defined PIN or pass key to Bluetooth device?
---------- Post added at 02:03 PM ---------- Previous post was at 01:55 PM ----------
hi, doitright,
error screenshot attached.
Click to expand...
Click to collapse
Ok, so what it is sounding like, is that the pin prompt on the head unit is broken, causing it to default to one specific user-set pin code for pairing. This user-set pin code is controllable via the chinese "bluetooth" application -- go there and set the pin to match your device, then go back into the "real" bluetooth settings menu and try again from there.
ok..
I will do that way and give you feed back..
doitright said:
Ok, so what it is sounding like, is that the pin prompt on the head unit is broken, causing it to default to one specific user-set pin code for pairing. This user-set pin code is controllable via the chinese "bluetooth" application -- go there and set the pin to match your device, then go back into the "real" bluetooth settings menu and try again from there.
Click to expand...
Click to collapse
@doitright and @MMTK84,
you saved my day and night. It worked. I entered my BT OBD2 PIN "6789" in the Chinese "Bluetooth" application (stock) and then used blueballs.apk to pair CHX. it paired smoothly. Torque could successfully establish connection and I am very happy about this unit JY-UL135N2. BT in the unit is fully functional. simultaneous playback of BT music and OBD2 is possible. Bluetooth hardware which is on on the SOC is perfect and only chinese software interface is making the issue. Any way we got the work around for this.
Please note that I didnt go for any firmware update from JOYING to make this happen. Yesterday I received the unit shipped with factory firmware MCU Version 2016-10-31 14:30:43 JY_(NOR)_90_C9_7706_5009_CAN(GX)_Newlap.
:highfive::good::good::good::good:
doitright said:
Ok, so what it is sounding like, is that the pin prompt on the head unit is broken, causing it to default to one specific user-set pin code for pairing. This user-set pin code is controllable via the chinese "bluetooth" application -- go there and set the pin to match your device, then go back into the "real" bluetooth settings menu and try again from there.
Click to expand...
Click to collapse
aneesp said:
@doitright and @MMTK84,
you saved my day and night. It worked. I entered my BT OBD2 PIN "6789" in the Chinese "Bluetooth" application (stock) and then used blueballs.apk to pair CHX. it paired smoothly. Torque could successfully establish connection and I am very happy about this unit JY-UL135N2. BT in the unit is fully functional. simultaneous playback of BT music and OBD2 is possible. Bluetooth hardware which is on on the SOC is perfect and only chinese software interface is making the issue. Any way we got the work around for this.
Please note that I didnt go for any firmware update from JOYING to make this happen. Yesterday I received the unit shipped with factory firmware MCU Version 2016-10-31 14:30:43 JY_(NOR)_90_C9_7706_5009_CAN(GX)_Newlap.
:highfive::good::good::good::good:
Click to expand...
Click to collapse
Glad to hear it!
Once I get my head units delivered (can you believe that I'm writing software to fix problems on these things before even owning one? LOL), I will look into it a bit more deeply. There is probably an intent being fired to prompt for the BT pin, but the receiver (or its registration) has probably been deleted by china.
wow... many thanks for your great support. :highfive::victory::victory:
Do you have an idea how to boot in to stock recovery of this unit. I just wanna to take a nandroid backup of the unit. I t seems I have to root the unit before doing it.
doitright said:
Glad to hear it!
Once I get my head units delivered (can you believe that I'm writing software to fix problems on these things before even owning one? LOL), I will look into it a bit more deeply. There is probably an intent being fired to prompt for the BT pin, but the receiver (or its registration) has probably been deleted by china.
Click to expand...
Click to collapse
aneesp said:
wow... many thanks for your great support. :highfive::victory::victory:
Do you have an idea how to boot in to stock recovery of this unit. I just wanna to take a nandroid backup of the unit. I t seems I have to root the unit before doing it.
Click to expand...
Click to collapse
I actually just started a thread to compile all the known methods of booting into recovery. Nothing firm on that front, however, obviously you CAN "reboot" to recovery.
Good news for you about root though! Joying Intel devices ship WITH ROOT. The only thing you need to know about it, is that it is restricted to access through ADB. So turn on adb over wifi, adb connect to the ip address of the head unit on your LAN, adb root, and adb shell. You can then issue your "reboot recovery" command.
ADB over USB should also work, but you'll need to find the place in their menus where you can control the USB mode switch, and of course, you'll need a USB-A-male to USB-A-male cable.
Hi doitright,
I followed your steps for reboot to recovery using adb over wifi. I could issue the command "reboot recovery" and unit rebooted. After few seconds showing the boot logo, the android logo screen appeared with "No command" after two seconds, No command changed to "Error!". From earlier threads, I got an idea to press power button when we get this error screen. |I did so, but nothing happened. I was little bit afraid if the device is soft bricked. But, upon pressing reset button, unit booted normally.
Any clue?
doitright said:
I actually just started a thread to compile all the known methods of booting into recovery. Nothing firm on that front, however, obviously you CAN "reboot" to recovery.
Good news for you about root though! Joying Intel devices ship WITH ROOT. The only thing you need to know about it, is that it is restricted to access through ADB. So turn on adb over wifi, adb connect to the ip address of the head unit on your LAN, adb root, and adb shell. You can then issue your "reboot recovery" command.
ADB over USB should also work, but you'll need to find the place in their menus where you can control the USB mode switch, and of course, you'll need a USB-A-male to USB-A-male cable.
Click to expand...
Click to collapse
aneesp said:
Hi doitright,
I followed your steps for reboot to recovery using adb over wifi. I could issue the command "reboot recovery" and unit rebooted. After few seconds showing the boot logo, the android logo screen appeared with "No command" after two seconds, No command changed to "Error!". From earlier threads, I got an idea to press power button when we get this error screen. |I did so, but nothing happened. I was little bit afraid if the device is soft bricked. But, upon pressing reset button, unit booted normally.
Any clue?
Click to expand...
Click to collapse
Congrats. You successfully made it into recovery. Not sure what to tell you at this point, since factory recovery is what factory recovery is.
Going from there to the regular recovery menu on MOST devices (remember that I don't have one of these yet, so I haven't been able to play with it yet) involves more than just the power button. Typically it is hold power + something like volume up. You could also try mashing on a USB keyboard and see if anything happens.

Problem with ported ROM and bluetooth keyboard

Hi.
I've successfully ported a Marshmallow rom to an old tablet that was running Kitkat.
Almost everything works ok, but I can't pair a bluetooth keyboard I need to use.
The tablet can pair with other android devices, and can send and receive files.
Also, the keyboard works with any other device and with the tablet doing a downgrade.
When I try to connect the keyboard to the ported tablet it's detected and shows the pin alert, I type the pin on the keyboard and then nothing else happens.
I've dumped the bluetooth logs and I've seen that, in the ported tablet, the log stopped when waiting for the pin. In any other device the log continues showing the complete connection.
I've tried to replace any bluetooth library form stock to ported rom, individually and by sets, and can't get it better (ever worst)
So please, can anyone help me? Where should I look for making it work?
Thanks and best regards.
PS: I've attached the HCI log files: the one named huawei is for the well pairing device, and the other is the problematic pairing with the ported tablet.

Categories

Resources