Mobile Equals Slavery

(thoughts on Android, CyanogenMod, and mobile devices)

[see the meta article for the back story on this series of articles]

The word "mobile" implies a sense of freedom... to move about and go where you like. I quickly discovered in my efforts to separate from Google that this is the only freedom you actually get with your mobile devices if you intend to use a cellular service provider. Sure, carry those devices about with you wherever you go, but if you want to have freedom to use whatever type of device you want, or one of the non-sanctioned operating systems, you will run into the barbed-wire fence around that freedom.

All that glitters is not gold

When I decided to move my personal communications out of Google services and off the Google version of Android, it initially looked like it would be a fairly easy transition. We had a spare Sprint Galaxy SIII laying around at work that would never get used again thanks to the fact that we moved to Verizon and that the cellular radio in it was terrible and it would not even make a good Ting device. I checked the CyanogenMod install instructions for this device, and it looked like the easiest time I would ever have rooting a phone and putting an alternate OS on it. It would also give me a chance to see the latest evolution of CyanogenMod and determine if it would work for any of our users. It actually did turn out to be pretty quick and painless, and I was booting into CyanogenMod in about 15 minutes.

I spent a little while testing it out, adding the Amazon Appstore, installing some apps, browsing around in the latest Opera browser, and fiddling with settings. Everything looked pretty good and it seemed solid. It really did seem like CyanogenMod was finally a viable option for those who wanted Android without Google's tentacles entwined throughout the OS.

Armed with that experience, I then looked into options to get this or another device capable of running CyanogenMod connected to some kind of texting and voice service, because I wanted to move away from using a carrier-provided number for voice and SMS and to move away from Google Voice. I already knew that the cellular radio in this revision 1 SIII was terrible, so it would have to be a wifi phone if I used it. Of course, if I was going the wifi route anyway, I could use a Bluetooth headset with a tablet just as well and have more usability from the device. If I wanted to stick with a cellular data-only plan, I would need something I could pop a SIM card in or something I could use with Ting. The only Ting-capable phone available to me was the Motorola Photon, which was not capable of being rooted since it had been updated to the latest software. After looking into it, though, I discovered that it was not possible to activate a CyanogenMod phone on Ting anyway. That meant the activation would have to take place before putting CyanogenMod on a phone, then hoping the activation never got disconnected somehow later.

That sounded annoying, and I sure did not want to use the Photon as a phone again without changing the OS, so I was left considering the options for using wifi devices with a hotspot or a data-only SIM in a phone or tablet. Of the devices I had lying around, my wife's retired LG Android phone had a decent battery and could be used as a hotspot. It made the most sense, then to sign up for a data-only SIM with T-Mobile and turn this into a hotspot. When looking at the options, I happily discovered that T-Mobile offers a $10 monthly discount on the $20 500MB data-only plan for devices if you add it to an existing account that has voice service. We had a winner! $10 per month for enough data to cover all my voice and SMS traffic meant that I would be getting off really cheaply if I could find a decent voice service, and I found a few options that seemed like they would work (see my article about that experiment for more details). So, I ordered the SIM for $10 and added the $10 monthly service to my wife's plan and waited for the SIM to arrive.

This was supposed to work

When the SIM arrived, I popped it into the LG, fired it up, then tried connecting to the internet. I got intercepted by a T-Mobile page forcing me to activate and create a login for the service. It seemed odd since it was attached to an already active account, but I did it anyway. Afterward, I tried going to the internet again... only to get sent right back to the intercept page. I tried rebooting... same deal. I put the SIM in an old unlocked original iPhone, and that worked, albeit as slow as molasses since it was on 2G. I then tried changing the user agent in the browser on the LG, using it as a hotspot, editing APN settings, and every other trick I could find online... all to no avail.

Well, it worked with the iPhone, so maybe it needs to have the device type hidden from it since it apparently knows this is a phone and not a data-only device (why the heck do they care anyway if I can only use data on it regardless?). So, I proceeded to put CyanogenMod on the LG, but got the same results. Then I tried the latest, less stable version of CyanogenMod... same results. At this point, I was getting annoyed. I went over to my coworker's house to try it in a T-Mobile tablet he had, and it worked perfectly in that.

So, apparently, they have the IMEI numbers of all T-Mobile branded devices in a database and refuse to let you use the "wrong" type of SIM card in a device. If you use a device they don't have in the database, as in the case of the old iPhone, they just let it through. So much for T-Mobile being the champion of freedom that they claim to be. After wasting the better part of a day trying to hack this into working, I finally gave up the fight and started looking at hotspot options. Fortunately, Best Buy had a T-Mobile Pay-as-You-Go Hotspot on sale and I had enough Best Buy points saved up to get it for free, so I drove out and picked one up. I popped the SIM in and everything worked as expected. So, call it a minor defeat, but at least I was one step closer to my goal.

Slavery 1, Freedom 0

Now that I had a functioning data connection to use when I am away from wifi, the next step was to get the service I settled on (see the article linked above for the details) going on the device that would be my personal "phone" henceforth. I had already used some gift cards from Christmas to shuffle funds around and get a used Barnes and Noble Nook HD which I had put CyanogenMod on, and was planning to use this with a Bluetooth headset as my phone device. Yes, it sounds a little ridiculous, but I had worked out the logistics of making this work and it would be fine.

The problems began when I tried using my Bluetooth headset with the Nook. It paired fine and I was able to listen to music and podcasts on it, and the Play/Pause button on my headset was even working as expected. I tested a call and could hear the audio in my ear piece, so all was well... or so it seemed. A little later, a call came in from my wife and everything was working until I walked across the room and she said she couldn't hear me anymore. After a few minutes of confusion, I realized the SIP app was using the built-in mic of the tablet and not the mic in the headset. I spent the next hour trying every combo of settings and could never get the headset mic to work despite everything in the OS indicating that it should have been working. Dejected, I gave up and unpaired the headset from the Nook and prepared to try the SIII instead. Apparently, the Bluetooth profiles included in the AOSP version of Android (the open source basis of CyanogenMod and other alternate versions) are not very robust and will have issues with certain devices. Lovely.

Slavery 2, Freedom 0

Things only got worse when I tried using the headset with the SIII. It said it paired correctly and was connected to both phone and media audio, but no audio would actually go to or from the headset. I fought with this for a little while and gave up. I later discovered that the Bluetooth radio in the SIII only works with a binary driver from Samsung and that is why Bluetooth doesn't work in CyanogenMod on this device. Someone suggested to me that there was a fix to this in the XDA forums, but if Samsung is trying to hide what they are doing in their Bluetooth driver, I don't think I want to use it anyway. Open source software on non-open hardware does not equal open.

Slavery 3, Freedom 0

I tried using the headset with the previously mentioned LG phone just to see if that would work, but had similar issues with it. I even tried in desperation to see if it would work with the Photon but ran into issues with audio playback on that and didn't want to go back to that mess unless everything else was going to be perfect. In the end, I gave up and am continuing to use the Bluetooth headset with my work phone for music and podcasts, and have just resigned myself to using the SIII with my SIP service and holding the phone up to my ear when I make or take calls on my personal number. So, it is working as my personal phone, but it hasn't freed me from my dependence on my work phone for everything else.

Slavery 4, Freedom 0.5

In the end, I am left with the acceptance that it's really not possible to be free of the carriers' device slavery, and the manufacturers' control just yet. There are some signs that things will get better in the near future with Firefox OS, Ubuntu Touch, Sailfish OS, and Tizen devices now getting some notice in the industry news. I am not happy with this current device arrangement, but it is working as a temporary solution to buy me time while I wait for some of the better open source operating system solutions to come along. There is a later version of CyanogenMod available for the Nook HD which I have not yet tried that may resolve the Bluetooth quirks, though I was hesitant to tempt fate since the tablet is otherwise working splendidly with the version of CyanogenMod currently running on it.

I look forward to the day, hopefully soon, when I can stop carrying around the hotspot and put the SIM directly into an open-source friendly device running some version of Linux. I know there are others like me out there hoping for the same. If you aren't capable of taking matters into your own hands by joining one of the projects to produce such a device and support it with coding skills or money, then you will have to endure the chains of carrier-locked devices for your data connection just a little longer. The good news is that there is hope for a better mobile future looming if those building it can avoid the sabotage of the big-name cellular providers and manufacturers.