I have finally rooted my Adam, using the instructions and files provided on Notion Ink Hacks. I am gradually putting the old applications back. The primary purpose for rooting was to get my bluetooth keyboard running, after the disappointment with Android and driver vendors.
[Update: another reason was that I wanted to get ad hoc mode running on the Adam, to be able to connect to the internet, now that I have ruined my mifi device. Ad hoc works, and I could connect through my Nokia’s Joikuspot Lite package. However, it offers very limited functionality. My second attempt was to try and connect through Connectify on my laptop. Now the Adam can see my Connectify ad hoc connection, remember it and the WEP key, but it can’t still obtain an IP address. I think something is wrong with either Connectify or Windows 7’s firewall. Needs research.]
I found these tips from an Android developer about putting the hci/hidd tools on /system/xbin, using the versions he had developed, hosted on Google Code. I proceeded to download hciconfig, hcitool and hidd from the links, but somehow Browser did not allow me to do it. So I downloaded them from my laptop and mailed them to myself for retrieval on the Adam.
I started looking for a terminal emulator that I supposed would be installed on the Adam along with busybox, but could not find anything. So I went and installed Android Terminal Emulator from the market. I can now access it through an icon on my desktop.
Next step, move the files to /system/xbin. My normal approach of cp and su + cp failed, so I had to change the mount permissions of /system as laid out on the Android developer’s blog. After doing chmod 777 /system/xbin (root access needed), I switched on my keyboard, put it in pairing mode, and invoked hidd –search from the terminal (root access needed).
Voila! The keyboard was detected and connected (output just says connecting to…). I could type on the terminal with the keyboard. However, I could not see the keyboard being listed in Settings > Language & Keyboard. The status under bluetooth settings also did not change to ‘connected’, and still showed ‘paired but not connected’. The keyboard did not work in regular text input areas, which defaulted to the NI keyboard, and long press did not show it as an option.
Quitting the terminal releases the bluetooth connection, and if I want to use the keyboard again, I have to open the terminal again, get root, and reissue hidd –search.
It seems I will still need proper drivers for the keyboard for the Adam / Android subsystems to connect to it properly, but at least now I know that it works on the terminal.
If anybody has an android.apk driver file for the Mini Bluetooth Keyboard that does not have a time restriction, please pass it along. As I said earlier, my manual / driver CD did not contain any, but there is enough evidence on the internet to learn that other ‘brands’ of the same keyboard might be including it.
A repeat word of caution. The drivers on the Market from Teksoft and their website Teksoftco.com have a 16 day limitation, forcing you to purchase after expiry, and they don’t seem to work properly.
[Update 2: I tried another strategy, this time of removing the pairing from Bluetooth Settings, and then connecting from the terminal through hidd. It works. I can now use the keyboard within the GUI as well, although it still does not get registered as a keyboard. Text entry in documents, fields etc. is now possible. However, the connection either quit after a while, or got removed after the Terminal was closed. This means we are halfway through.]