Why do we need Open-Source phones?

A project log for ZeroPhone - a Raspberry Pi smartphone

Pi Zero-based open-source mobile phone (that you can assemble for 50$ in parts)

ArsenijsArsenijs 01/28/2017 at 02:090 Comments

Most modern smartphones have FM receivers. Obvious? Not if you're from USA, since phone resellers disable FM receivers in software to make you spend more money on data. Now that I have your attention, I want you to know you can take action against it, and I encourage you to.

This is an argument you can make in 10 seconds when somebody asks you about why you need an open-source phone. Just think how ubiquitous mobile phones have become in our life - and realize that the ones developing those phones are mostly big companies. Companies with their own interests, looking for new ways to get more money from you using the technology that's a requirement for everybody nowadays. Open-source technology has been solving problems like this for a very long time, so applying it to mobile phones seems like a logical solution. What can it solve for us, exactly?

Open-source is about getting the most of what you own.

For example, this phone has expansion headers with different GPIOs, which you can use to connect your own addons, to add whatever features you'd like to see in your phone. What would you like to add?

It's all possible, and is as simple as adding something to a Raspberry Pi - with all the tutorials and code already available for most occasions. To be honest, I just looked into my parts box and listed first 6 things that I spotted, and they all can be used with this phone.

Having an open-source phone removes many limitations that typical phones have. Whatever is not implemented, can be implemented - the code is available and open to modifications. If some hardware problems appear, it's actually possible to fix them yourself, not relying on somebody that has access to the code.

Generally, open-sourcing technologies gives companies less ways to hide things from us, and lets us do more with what we get. The possibilities we could only dream of might already be there, just not implemented, be it for lack of resources, interest, or just understanding that implementing a feature that less than a 1% of users would need wouldn't bring as much profit as developing a new, thinner and faster phone would.

Open-source is about not being left alone with your problems.

This phone has the phone functions working independently of the Linux OS it's running. As the Raspberry Pi hardware support is being better and better integrated into the kernel, OS support will stay with us for years. It'll receive all upgrades, especially the security-related ones. The phone and UI code are open-source as well, so fixing any future problems is possible without any support from the side and without depending on anybody.

With modern smartphones, having more complicated software and thus more possibilities for problems, manufacturer is ready to support a phone for a couple of years - a year in worst case. Manufacturers want to innovate since it's how they get revenue - there are people chasing new trends and they're the ones paying most money. Nowadays, our phones stop getting OS updates in a year or two - but the hardware is still not outdated and likely to be in good condition! People do assemble and release their custom firmwares for phones to make them do what they're technically capable of, but it's problematic to do because manufacturers don't release the necessary information. Thousands of man-hours are spent by enthusiasts porting new versions of Android to phones that are not really "old", just not supported by the manufacturer anymore.

And, if you think people aren't typically as motivated as companies, the wonderful thing is that there are lots of people that would solve their own problems, then share what they've made. Be it new programs, firmwares, hardware drivers or just simple usage tips, open-source is just a logical extension of what helped humanity survive and thrive - people helping other people.

Open-source is about learning.

The phone I'm working on is very simple. Each board's schematic takes no more than a single schematic list, and that's with annotations. The boards, while tightly packed, are two-layer and don't use any complicated techniques. The code is in Python, which is more than enough for a simple phone framework running on a Pi Zero, that's capable of multitasking, has various UI elements and APIs for developers - all that while still being easy to read, as well as learn from.

You could sit down, read the worklogs, look at the schematic, the boards, the code - and learn plenty about how this phone works, how phones work in general, about the design decisions made to achieve the project's goals and problems that were encountered on the way.

In contrast, modern phones are complicated. You won't find schematics for a typical phone, and code is complex because it has to be. Modern phones have to deal with every function that users want, every API developers want to be available, every case that can appear and every legacy function that has to remain in the code because software that was written at some point depends on it.

Open-source is about protecting our data, identities, things we own and care about.

In 2014, we saw evidence that various big companies were forced to leak our data to the USA government. Most of them complied and lowered security of their programs, computers, phones and services they offer, or left weaknesses government intelligence agencies could exploit. There are at least three problems with this I can spot instantly - first and foremost, constitutional rights to privacy of people all over the world who were affected by this. Moreover, if a government intelligence agency can do it, so can a sufficiently determined hacker, and at this point it's a safety issue. Furthermore, there's less and less people trusting the USA government nowadays - and I know most of them would be happy to be wrong in their lack of trust.

Not only that, 2010s are the years we started raising awareness about data people themselves leak to various companies. People started to feel the influence of targeted advertisements - from funny and inappropriate, to annoying and outright dangerous.

Open-source software and hardware, traditionally, has been less endangered by this. It's much harder to insert a backdoor, the code is open so that people can independently review its security, and privacy-endangering features are easier to remove.

Next week will be software writing week - as soon as I finish testing the protoypes I'll be sending out and send the back board to OSHPark. I hope to write less about the obvious things and more about what this specific phone can achieve with the right software ;-) As usual, every point made is open for discussion - I'd love to hear your opinions!