Free software and cellphones
Meanwhile, Research in Motion was the first to provide corporate-slave-oriented email-enabled devices. Indeed, with the very recent focus on public-oriented devices like the iPhone, most users forget that Apple is by far not the preferred fruit for the smart phone user. Today, most people using a "smart phone" are using one given to them by their employer to chain them to their office email 24/7.
Apple, excellent at manipulating users into paying more for a product merely because it is shiny, also convinced everyone that now a phone should be paid for separately, and contracts should go even longer. The "race to mediocrity" of the phone market has ended. Phones need real features to stand out. Phones, in fact, aren't phones anymore. They are small mobile computers that can also make phone calls.
The current state of mobile software freedom
For its part, Nokia likely benefited greatly from the traditional carrier system. Most of their phones were provided relatively cheaply with contracts. Nokia sold new hardware every time a phone contract was renewed, and the carrier paid the difference between the loss-leader price and Nokia's wholesale cost. The software on the devices was simple and mostly internally developed.
In parallel, Nokia chased another market: the tablet PC. GNU/Linux remains the ideal system for these devices, and Nokia saw that. Nokia built the Debian-based Maemo system as a tablet system, with no phone. This eventually became the tablet/phone hybrid: the N900. This is among only a few available phones that make any strides toward a fully free software phone platform. Yet, the list of proprietary components required for operation remains quite long. The common joke is that you can't even charge the battery on your N900 without proprietary software.
Android/Linux is a nearly fully free non-copylefted phone operating system platform where Linux is the only GPL-licensed component essential to Android's operation. Ideally, Google wants to see it adopted broadly in both free software and mixed free/proprietary deployments. Google's goals do not match that of the software freedom community, so in some cases, a given device will give the user more software freedom than the N900, but in many cases it will give much less.
The HTC Dream is the only such device I know of where a careful examination of the necessary proprietary components have been analyzed. There also are about twenty hardware interface libraries that do not have source code available in a public repository. However, when lined up against the N900 with Maemo, Android on the HTC Dream can be used as an operational mobile telephone and 3G Internet device using only three proprietary components: a proprietary GSM firmware, proprietary wifi firmware, and two audio interface libraries. Further proprietary components are needed if you want a working accelerometer, camera, and video codecs, as their hardware interface libraries are all proprietary.
A healthy community-oriented phone operating system project will ultimately be an essential component to software freedom on these devices -- on this point, I must also mention the Neo FreeRunner device and the OpenMoko project. This was a noble experiment: a freely specified hardware platform running 100% free software. I used an OpenMoko FreeRunner myself, hoping that it would be the mobile phone our community could rally around. I do think the device and its (various) software stack(s) have a future as an experimental, hobbyist device. But, just as GNU/Linux needed to focus on x86 hardware to succeed, so must software freedom efforts in mobile systems focus on mass-market, widely used, and widely available hardware.
Fear of an FCC crack down when mobile users have software freedom is beyond the scope of this article. However, what Atheros has done with their Wifi devices shows that software freedom and FCC compliance can co-exist. Furthermore, the central piece of FCC's concern -- the GSM chipset and firmware -- runs on a separate processor in modern mobile devices. This is a software freedom battle for another day, but it shows that the FCC can be pacified in the meantime by keeping the GSM device a black box to the free software running on the primary processor of the device.
Seeking software freedom on mobile devices will remain a complicated endeavor for some time. Our community should utilize the free software releases from companies, but should not forget that, until viable community forks exist, software freedom on these devices exists at the whim of these companies. A traditional "get some volunteers together and write some code" approach can achieve great advancement toward community-oriented free software systems on mobile devices. Developers interested in applications should initially focus on applications for the existing mostly free platforms of MeeGo and Android/Linux. Meanwhile, the challenging and more urgent work is to replace lower-level proprietary components on these systems with free software alternatives, but admittedly needs special programming skills that aren't easy to find.
We should be hopefully optimistic about the mobile space. There are challenges for software freedom, but they are challenges our community knows well how to face: we need to identify the proprietary software that is important, and write free software replacements. It's catch-up work, but our community is usually successful at such tasks. So, let's get coding on mobile!
Further reading on this topic is available at: http://ebb.org/faifmobile