
Disclaimer: this is not an advertisement nor a recommendation for any course of action with any mobile device you may own. We are not responsible for anything you do to your phone after reading this.
It does not take a lot of research to learn that mobile phones tend to leak personal information like a sieve. This is especially true for increasingly popular smartphones running apps that are more concerned with sharing your personal information far and wide than ensuring you are in control of what gets shared, where it gets shared and when. The use of any consumer mobile phone is a potential privacy concern, but some phones cause more concern than others, depending primarily on the carrier, the operating system, and the apps in use on the phone.
For those who live or travel overseas for ministry, this can be an especially complicating situation. There are many incredibly helpful features in modern phones that make life and ministry overseas much easier: built-in GPS receivers, web browsers, instant/text messaging, Internet phone calls, Bible study apps, language-learning apps, translation apps, word processors, media players, etc. But how much of your private data may be leaking from your phone and potentially putting yourself—and the people you serve, whose contact information is in your phone's address book—in potentially compromising situations? So the question comes down to this: What can someone do who wants to make the most of the technology available to us today, but to do so in a way that does not wantonly leak their private information?
The bad news is, there is no perfect solution. That said, some may find the approach we used as a step in that direction.
The Goal
Some of us here at Distant Shores Media were talking recently about how we could accomplish the following objective:
Using an off-the-shelf smartphone, maximize the usefulness of the mobile device for all matters of life and overseas ministry while minimizing the exposure of private information.
Accomplishing this objective requires thinking through a number of considerations, including the carriers used, the operating system, and how to manage the privacy concerns of the applications that run on the phone.
Carriers – A further complication to our objective is that we want the mobile phone to be optimally functional here in the U.S. as well as overseas. We are currently with a CDMA-based carrier that provides good coverage in the U.S. but limits the selection of phones, as virtually all overseas carriers are GSM. So we needed to find a phone that has both CDMA capability (for in the U.S.) as well as a SIM slot and GSM capabilities (for overseas). There are not a lot of phones that offer both CDMA + GSM capabilities, and most of the ones that do get less than stellar reviews.
Operating System – There are two kinds of operating systems for mobile phones: open-source systems, and closed-source systems. Both of them have bugs that create open doors for malware and other issues. But only the open-source systems can be reviewed at the source code level by independent third parties. This means that users of phones with closed-source operating systems must trust solely in the good graces of the owner of the operating system. For many, that is enough. But given our objective of being able to know what is going on in the "guts" of the phone, we needed to go with an open-source operating system. Users of open-source operating systems do not need to blindly trust the creator of the operating system, as they have another ally on their side: the hacker community that reviews the source to the operating system to confirm that it does what is expected (and only what is expected).
Applications – Finally, we need a way to identify what a given application running on the phone is doing and, at our discretion, disallow some of those things from happening. For instance, we want to know if the "smart" keyboard application that we downloaded has permission to access the Internet. Some keyboard apps do, ostensibly to be able to download additional language packs. But, being the paranoid kind of people we are, we would rather not have the keyboard app we are using to enter login names and passwords be able to phone home over the web at all. So we need a way to disable it from doing so.
Filling A Tall Order
To summarize, this is what we need:
- A smartphone running an open-source operating system
- Complete control over what applications can and cannot do on the phone
- CDMA + GSM capability
- Decent processor speed & memory
- Decent screen size
- Decent battery life
- Usable camera + media
After reviewing what we thought were all the phone options, we had given up hope. But an offhand comment from a clerk at a phone store changed all that and we walked out of there with an HTC Droid Incredible 2 (nearly identical to the HTC Incredible S). Here's why:
- Speed – The phone is very responsive. It is not the fastest phone on the market and it doesn't have 4G. But what it does have, in our opinion, is far more valuable. We are not using this phone for gaming, so the single-core 1Ghz processor and 768MB of RAM are more than adequate for our needs.
- Features – The 8MP camera, media features and screen size (4 inch 800 x 480 pixel) are all firmly in the middle-to-good end of the quality spectrum. We were looking for something passable and the features of this phone are more than passable for our needs. The GPS is fast and the phone even has an FM radio receiver.
- Connectivity – In addition to standard WiFi and Bluetooth 2.1, the phone has CDMA (800 and 1900MHz) and GSM capabilities (Quad-Band GSM 850 900 1800 1900 MHz, Dual-Band UMTS 900 2100MHz). Pop off the back of the phone, pull out the battery and you'll find the SIM card slot.
But the single best thing about this phone for our purposes is that it is officially supported by the Cyanogenmod project. Cyanogenmod is an open-source build of the Android mobile operating system. From the website:
CyanogenMod (pronounced sigh-AN-oh-jen-mod), is a customized, aftermarket firmware distribution for several Android devices (See above for supported devices & how to install CyanogenMod on said devices). Based on the Android Open Source Project, CyanogenMod is designed to increase performance and reliability over Android-based ROMs released by vendors and carriers such as Google, T-Mobile, HTC, etc. CyanogenMod also offers a variety of features & enhancements that are not currently found in these versions of Android.
The first thing we did after getting the phone activated was take it back to the office and void the warranty. Such is the nature of installing your own operating system on your own phone, but it was a risk we were willing to take. The process was not for the faint of heart, and involved downgrading the phone's firmware, rooting the phone (to get full control over it), then installing Cyanogenmod 7.1 and flashing a new radio to the phone to improve its reception. Inadvertently putting the phone into a boot loop at one point was particularly exciting. But, having completed the process successfully, it's the best thing we could have done to the phone!
Cyanogenmod 7.1 is, by design, a fairly "vanilla" Android operating system (though it is easily themed), and contains no bloatware or carrier-installed apps. This avoids problems like CarrierIQ and other potential covert invasions of privacy at the operating system level. Rather than sport bells & whistles and "bling", the OS is designed to be minimalist, stable, and secure, while also enabling a number of features that make the user's life easier. These include the capability to overclock/underclock a device (to improve performance or battery life), built-in WiFi tethering (for phones with cards that support it, see below), improvements in the usability of the camera and media playback, etc. But the feature we like best about Cyanogenmod is the built-in permissions management.

Just Saying "No"
The Android operating system, unlike iOS and other operating systems, requires applications that run on it to inform the operating system (and, by extension, the user) what permissions the app wants to be able to run. The user is informed of these permission requests during the installation of the application. For example, an app that wants to read contact information from the address book requests that permission. Any app that wants to be able to do anything like access the system logs, write to the memory card, access the Internet, make phone calls, sends text messages, etc. informs the system and the user of the need for those permissions when the app is installed.
The problem is that the versions of Android installed on phones by carriers and vendors do not provide a means of doing anything about those individual permissions—either you accept the app and all that it wants to be able to do with your phone and information, or you don't install it. You have no other option. As applications add more features that appeal to some consumers' interests, many apps start to get a lengthy list of permissions. This puts the user in a conundrum: Do you install the app so as to get access to the functionality you need, even though you have to accept a lot of the functionality (and potential privacy concerns) you don't want? Or, do you not install the app because of the privacy concerns, and give up the use of the app and functionality it provides?
If, however, a user can selectively disable certain permissions in a given app, they could conceivably have the best of both worlds—install the application but allow it only to have access to what the user decides it should have access. This is exactly what custom operating systems like Cyanogenmod make possible.
The screenshots below show the permissions list for the keyboard app installed on the phone. The first screenshot shows the default permissions, and the second screenshot shows that the permission for the keyboard app to access the Internet has been removed. By simply tapping on each individual permission for each app, we can choose what any given app can or cannot do. In rare circumstances, apps may become unstable without all their permissions enabled, but in our experience, that has been a very rare occurrence.


Going Global
We have not yet tested the GSM functionality of the Droid Incredible 2 + Cyanogenmod 7.1. That said, we are optimistic that things will work as advertised in GSM mode with a local SIM card—tutorials and comments in various online forums suggest there should be no trouble. The switch is accomplished by selecting GSM / WCDMA (in Settings > Wireless & networks > Mobile networks > Network Mode) and rebooting.

Minimizing Exposure to Google
Android is created by Google and is intended to synchronize content—email, contacts, calendars, and more—with a Google account. If, for any number of reasons, giving Google access to that much of your online life is not something that you want to do, you have options. We set this phone up to minimize exposure to Google, as follows:
- No Data Sync – Although the phone is linked to a Google account, we configured it to not synchronize any content with Google. We run our own email + information management server and sync the phone's contacts using CardDAV and the calendar using CalDAV. Email is secure IMAP. This setup has worked well for us, so far.
- 3rd-Party Browser – We have not done extensive research to confirm, but our assumption is that Google searches and analytics made from an Android browser on an Android phone that is linked to a Google account are associated with that account and used by Google according to the terms of their EULA. We use an alternative browser (Firefox Beta) on the phone that is not logged in to any Google account.
- Maps & Location Services – Location services (like weather reports) and statistics are not submitted to Google from this phone. We are still in the process of testing alternatives to Google Maps, e.g. MapQuest or apps that interface with Open Street Maps.
Conclusion
This setup works very well for our needs and, though it is not perfect, it is the best solution we have found so far in our quest for a smart, secure and private worldphone. The combination of a capable, dual-radio (CDMA + GSM) phone and the open-source Cyanogenmod operating system is an ideal scenario. We can use the phone optimally overseas as well as in the U.S. and we have root control of the operating system, as well as the ability to disable permissions on a per-app basis. There is more research to be done, but for our needs, this setup works very well.
Photo Credit: Nathan O'Nions, cc-by