Connecting the HTC Nexus One to Ubuntu 14.04

Many days, I did struggle with this problem. My old 2010 HTC Google Nexus One simply would not connect to Ubuntu 14.04. A couple of weeks ago I gave up. Today, I had the brilliant idea to try connecting the Nexus One to Windows 7, and by a fluke of connecting to Win7, Ubuntu 14.04 also detected it. Why did this happen, I do not know, but I am thankful for these lucky flukes of the universe. Praise Zena Princess Warrior, for her good luck and intervention.

Most people ask, why are you still using this crap piece of outdated phone, at the lowly API8? The reason is that I’ve not the cash to buy a new phone, so I’m using Little Weed’s. He is not so enthusiastic. At least his is on Ice Cream Sandwich API 15. Soon the Big Weed will upgrade, as she has already grumbled loudly about her Kit Kat API 19, and her phone is not 2 years old. Oh these kids are somewhat spoiled.

So a couple of weeks ago I spent 2 days hitting my head against the virtual wall called the internet, trying to get my my Nexus One to connect to Ubuntu 14.04. I failed miserably, and gave up. Today I thought, since I have a dual boot system with Win7, and I have Eclipse installed on the Win7 partition, I’ll boot up in Win7 and try the Nexus One. The result was that Win7 would not recognize the Nexus One. Ok, same physical machine, same problem. I have Little Weed’s Win7 machine, so maybe I could try his with the Nexus One.

I was charging Little Weed’s Samsung with a Nokia USB cable, so I had to find another USB cable for the Nexus One. Sure enough when I plugged in the Nexus One to Little Weed’s Win7, with the new USB cable, Win7 recognized it immediately. Wow, this was progress. Well, if his Win7 machine can recognize the Nexus One, then my Win7 install should do the same. With the new USB cable I rebooted my machine into Win7 and the Nexus One was recognized, but the driver had a problem. Google searches yielded a solution, which proved to solve the problem. My Eclipse based small Android app ran successfully on the Nexus One.

So on to Ubuntu 14.04, which is not as easy to add USB devices as Win7. I originally followed the Using Hardware Devices web page. With these instructions I was able to easily install and use the Samsung. Each device’s USB vendor ID needs to be added to your 51-android.rules file. While easy for the Samsung (USB vendor ID 04e8), the Nexus One is made by HTC (USB vendor ID 0bb4) but branded Google (USB vendor ID 18d1), so I added them both. LG (USB vendor ID 1004) was also easy. Following the instructions with a chmod, then:

sudo service udev restart

or adb kill-server followed by sudo adb start-server

then lsusb, to see if my device was recognized. Turn the phone’s USB debugging on. Then adb devices, to see if adb recognized my device.

Lo and behold, the Nexus One was listed in lsusb as “18d1:4e12 Google Inc. Nexus One (debug)”, and in adb devices as “HT9CPP804012”. I fired up Android Studio, created the simplest test app and it displayed on the Nexus One. Great!

The next step was to take some of the apps I have and reduce their min sdk down to API8, and see if they run. Most did run. I had to play with a Gradle file, synch Gradle, rebuild the project and then run, and it did.

While I don’t profess to keep old hardware for its vintage quality, especially in tech, I also hate to throw out hardware if it can still be used. While Google is pushing it’s Android M (API 22), which is not even officially out yet but available from the Android SDK Manager, the rest of the world moves to a slower beat. Today, the Android Dashboard states that Android M 5.1 API 22 is used by only 0.8% of all people visiting the Android Store, very similar to Android 2.2 Froyo 2.2 API 8 at 0.3%. While ICS has 5%, the vast majority of Android users are Jellybean (38%) and Kit Kat (39%). It seems like Android users are not buying new phones just because Google has some new API out, and this is a very good thing.

Why do Android phone OS’s need to be upgraded more than once every 2 years? Yes, each API adds more software goodies, but older phones will have a hard time running the newer goodies because their hardware is not fast enough. The hardware churn that we experienced with Windows is alive and well in the Android ecosystem as well, and this is too had. Hardware gets thrown out after less than 2 years, creating an ecological disaster. Do we really need the hardware churn and the expense this entails, all in order to chase Google’s software direction?

Leave a Reply

Your email address will not be published. Required fields are marked *