Our approach to software and ongoing support for the first Fairphones
Fairphone was started by a group of passionate thinkers, designers and makers who want to change the phone industry. As our campaign grew into a social enterprise making our own phone, we started with a road map outlining our ambitions to raise awareness and create change in the sectors of mining, manufacturing, design, life cycle, and social entrepreneurship.
In this post, I’ll take a closer look at one specific element of the design part of our road map: software. Fairphone is shaping its approach to software and to do so, we’re expanding our team of engineers and technical experts. In addition to our software ambitions and challenges, I’d like to explain what this means for ongoing support and updates for the first edition and second batch Fairphones.
Fairphone’s ambitions for software: Transparency and longevity
Fairphone’s high-level ambition is to bring more fairness to software. To us, that means focusing on two key principles: transparency and longevity.
We believe products should be long-lasting. The longer a phone lasts, the less waste it creates and the fewer resources it requires. Longevity plays a role in hardware choices; and at the software level, longevity means keeping the software up-to-date and secure after the product was sold.
Openness ties directly into our ideas for longevity. We believe that our community should have access to the source code of our software to make improvements, add cool functionality, and extend usability. We believe that releasing the code as open source will prolong the life of the phone past its commercial life.
For the first Fairphone, we pinpointed a number of (in retrospect, over-ambitious) goals that aligned with the ideas of transparency and longevity.
Long before the first phones shipped in 2013, our ambitions for software were the following:
- Long-term use and support: We wanted to release updates and upgrades for our products for as long as possible.
- Open source: Our goal was to have Fairphone ready for alternative operating systems like Ubuntu and Firefox. In addition, we wanted our own code to be released under an open source license (that we co-developed with our partners in UI/UX and software development, Kwamecorp) and made available on GitHub.
- Root access: We wanted to give advanced users the ability to access deeper levels of the Android system by enabling root access.
- Community involvement: We wanted to encourage developer communities, (e.g. XDA) to design custom operating systems and build upon other work started by the community.
Software achievements and challenges with the first Fairphone
Over the course of 2013, as we got closer to manufacturing our phone, it became clear that some of our goals for software would not be feasible in the short term and would have to be postponed and re-assessed as we continued on our road map.
Here is what we have accomplished so far:
- Given users a choice between Fairphone-customized Android and stock Android operating system
- Shipped a root-enabled phone
- Experienced our first custom ROM
- Collaborated with the community to get crowdsourced translations on the phone (using the parts of our own code we released through GitHub)
- Prioritized development based on community demand (e.g. unified storage partitions)
- Provided support to developers by publishing as much code as we were allowed to
- Released new software images that have developer-friendly features, like enabling fastboot
- Continued discussions with our chipset vendor for alternative licensing models that would have enabled us to get further access to the source code
This list falls short of our original ambitions for the first edition Fairphone. This is due to a number of reasons.
Open source software – what does it look like?
The ability to provide open source software is directly related to the “openness” of the software stack running on the chipset and the availability of its associated documentation. A truly open chipset stack means that the entire content would be open, including the Applications, Application Framework, Libraries, Android Runtime, Hardware Abstraction Layer, and Linux Kernel. To get a better idea of the complexity, have a look at this graphic.
Our chipset vendor MediaTek is only publicly releasing what it is bound to by the obligatory terms of the GNU public license GPL (the Linux Kernel and a few userland programs) and has chosen not to release any of the Android source code.
This has prevented us from getting the source code in the first place let alone sharing the complete source code with our community.
It has prevented interested parties like developers on XDA to develop custom ROMs (software/system files), for example the well-known CyanogenMod. Without the necessary source code and/or collaboration with our chipset vendor, it is also impossible for alternative operating systems like Firefox and Ubuntu to be ported to our device.
Put simply, before we can have community development or alternative operating systems on the Fairphone, our chipset vendor MediaTek has to open up parts of the source code. This has not happened despite our discussions over the past year.
Choosing MediaTek as our chipset provider
So, if it seems that MediaTek is at the heart of our challenges to openness, why did we choose them as our chipset provider in the first place?
In terms of our System on Chip (SoC) for the first Fairphone, it is now clear that an alternative chipset would have been a better choice in respect to some of our objectives such as openness. But at the time we were selecting a partner for the first Fairphone there were few choices available to us, and even today, there is no such thing as a completely open chipset platform.
Further, the availability of chipset platforms is also restricted, so not all original design manufacturers (ODMs), eg our own manufacturer Guohong, could get access to just any platform from any vendor.
In short, as we were selecting our ODM partner and platform in 2013, MediaTek as the chipset provider came with the package.
Implications for updates and ongoing support for the first Fairphones
The lack of openness on the side of the chipset vendor is also presenting certain challenges for our longevity goals, specifically in terms of offering operating system (OS) upgrades for the first Fairphones. Our current operating system is based on Android 4.2.2 (aka Jelly Bean). We had hoped to provide an update to deliver Android 4.4 (KitKat), but as of now, it is still uncertain if it will be possible.
We are actively looking at ways to achieve this goal, but we’re trying to be realistic and face the fact that the first Fairphones will most likely not be upgraded beyond Android 4.2.
The issue is that the development and integration of software on specific chipset platforms can only be done by the chipset vendors and at some point, vendors stop supporting their platforms. In order to receive an update to Android 4.4, we need support from two external partners: our production partner, Guohong, and the chipset manufacturer, MediaTek. There are some other devices using the same platform as the first Fairphones that will receive updates to Android 4.4. But the support for these updates is prioritized for manufacturers that produce a high volume of devices. Smaller manufacturers (such as Fairphone) cannot expect to receive support in the near future or will be required to move to the next generation platforms as the older ones are being phased out. For more information about the difficulties of getting Android 4.4 and the various stakeholders involved, please read our support article from May.
While this situation is very frustrating for us at Fairphone as well as for many of our Fairphone owners, practically-speaking, we’re confident that this won’t impact the overall usefulness of our first Fairphones in the near future.
At the moment, Android 4.0 (Ice Cream Sandwich) and 4.1/4.2 (Jelly Bean) are actually the dominant Android versions in the market now (on 50% of all Android devices).
Fairphone owners will continue to receive support from us on our current 4.2 platform, and we will keep providing updates.
Right now, we’re putting the finishing touches on a new Fairphone update (version 1.8 Kola Nut) that will be available this week (read what’s in this software update). This update will offer bug and security fixes, as well as a new interface and functionality to make it feel more like Android 4.4 KitKat, but the system itself is still based on Android 4.2.2. We hope this demonstrates that we’re doing what we can to deliver the most up-to-date functionality and look and feel based on our limitations with the chipset hardware.
What about long-term support for the first Fairphones? Our current outlook is that over the next 6 to 8 months, we will continue to offer bug fixes and updates for things like issues with Bluetooth compatibility. We are looking to support the software and provide security updates at least until the end of 2016, and this process requires the collaboration of external parties.
Learning points for the next generation Fairphone
The entire process of defining our ambitions and developing software for the first Fairphone has been a huge learning experience for the team. The biggest realization for us was that we overestimated our influence on the system. As a small player, we were unable to make much headway in offering open source software, as so much of the development ecosystem was outside our realm of control. We also boosted our appreciation for how integral software is to the overall product – with an impact that extends long after the phone has been sold.
As I mentioned earlier, although our first steps towards making the Fairphone’s software open source were not successful, we have learned a number of valuable lessons to take with us in the development of our next device. We want to sincerely thank all of our first Fairphone owners for their tremendous support and investment (buying the phone but also the discussions we’ve had over the last year), as this trajectory will contribute to a more open source platform in the future.
Interested in social impact and open source platforms? Join the team!
We will also focus on relying on the right people (both internally and externally) to achieve our goals on transparency and longevity for Fairphone software development. Since setting out on this journey, we have expanded our internal technical team, and also established a supporting network of industry experts. And we’re still growing. We currently have openings for a few positions on our software team: Android build and release engineer, Android platform developer, Android application developer, and a junior Android/embedded software engineer.
Know someone who is ready to make social impact and develop our open source platform for 2015? Share our job vacancies.
Finally, we’ll continue to better connect with the open source community to expand the dialogue on alternative and open source software for the Fairphone. The Fairphone team understands there’s a group of active members in the developer community and users who want upgrades past 4.2, and we’re sorry to disappoint you with news in this post. I hope in delivering all these facts to you, we’ve shed light on the difficult and frustrating process we’ve had the last year. We hope your support can provide paths towards more open source platforms in our next device.