Summary
With this workshop we wanted to explore the possibilities of reinstalling our mobile telephones. We asked ourselves: Could it be possible to be completely free of ”gratis” accounts that track your behaviour and contacts? Can you really become root and change anything you want? What are the boundaries of mods and app-stores? We approached it as an install party for mobile devices, version 0.001 and made back up obligatory, no warranties were given. Participants brought various types of G—gle powered phones and we quickly discovered that one of the problems is the endless array of models around. After a full day of work, two of the fifteen participants managed to install a more or less working system.
There are no
copy‑paste solutions
Interview of Gijs de Heij by Marloes De Valk
- Marloes
- What was most striking to you during the workshop?
- Gijs
- Part of the attraction of Open Source Software is that it’s about sharing knowledge, but you need quite some pre-existing knowledge to understand what is being shared and how to use it productively. And that was what happened in the end. There are no copy-paste solutions. We had to look at, and solve each case individually. It was confronting. It became a real transfer of knowledge. You have to get your hands dirty to start understanding what it’s about. Maybe people have too much respect for technology. You need to be quite brutal, decide to just do it. You do need the time and freedom to do that. It can be time or means. If your phone is bricked, it’s bricked. You need to be able to afford that, not everybody can.
- But to use that as a critique on Open Source Software… It is a problem though. Knowledge transfer, learning, teaching… Solving things together is faster than doing it alone. The Read-me is a protocol. You also need to learn to read it. A lot of tutorials consist of terminal commands. Often people simply copy paste those. By making it easier, with these step-by-step tutorials or even one-click installers, it also becomes more obscure. The process requires less knowledge but at the same time also hides many aspects of the process from you. You follow the steps in the tutorial but you don’t understand what is happening. When something doesn’t work, you have no idea how to solve the problem by yourself. You need to understand the “language”.
- Marloes
- Back to the questions raised in the workshop description… Can your phone be completely free of “gratis” accounts that track your behaviour and your contacts?
- Gijs
- It’s about wanting to have control over your phone. In reality, this is impossible. You can’t read the source code of everything that is on your phone. It remains a question of trust. A paradox.
Even if you’d read all the source code, a code audit doesn’t guarantee anything. There are obvious ways to hide harmful code by obfuscation and then there are more elaborate ways as described by Ken Thompson in his paper “Reflections on Trusting Trust” <http://cm.bell-labs.com/who/ken/trust.html> where he describes how you can use a compiler to insert bugs into binaries with no trace in the source code. “The moral is obvious. You can’t trust code that you did not totally create yourself. (Especially code from companies that employ people like me.) No amount of source-level verification or scrutiny will protect you from using untrusted code. In demonstrating the possibility of this kind of attack, I picked on the C compiler. I could have picked on any program-handling program such as an assembler, a loader, or even hardware microcode. As the level of program gets lower, these bugs will be harder and harder to detect. A well installed microcode bug will be almost impossible to detect.”
- Marloes
- Can you really become root and change anything you want?
- Gijs
- Not having root on a device is a matter of self-protection in many cases. Just because you aren’t supposed to doesn’t mean it is not possible, but these possibilities do have consequences. This is a call for realism. Root away, but know what you’re doing or accept the risk of breaking things.
To put the privacy concerns on mobile devices in a broader context, recent developments in governmental violations of privacy are perhaps by far the most stunning at the moment. On December 20, 2013, Reuters reports on the NSA’s secret 10 million dollar contract with RSA, as part of a campaign to embed encryption software that it could crack into widely used computer products.1 And on January 2, 2014 the Washington Post reports on the NSA’s investment of $79.7 million into a research project called “Penetrating Hard Targets,” meant to build a quantum computer, a computer that could break nearly every kind of encryption used to protect banking, medical, business and government records around the world.2 These developments could easily lead to a feeling of hopelessness when it comes to privacy and control over technology. But accepting corporate spying because of governmental spying is not a very productive choice…
Notes
Read the live notes at: <http://vj14.constantvzw.org/r/notes::thursday>
The Problem, and some options
While Android itself is Open Source, many apps are not. 3
- FACC
- Android comes Free of charge, is Ad supported, Cloud-based, and highly Customizable. G—gle says it logs your “phone number, calling-party number, forwarding numbers, time and date of calls, duration of calls, SMS routing information and types of calls” in their privacy policy. It also logs your IP address.
TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY
“We may collect device-specific information (such as your hardware model, operating system version, unique device identifiers, and mobile network information including phone number). G—gle may associate your device identifiers or phone number with your G—gle Account.”
You can opt to stay in the current system.
Find alternatives to G—gle Play, using only free software apps.4
If you want to hide, encrypt your communication. 5
A stripped non-free ROM is still a non-free ROM. 6
You Need To Be Root
- Why root? What is root?
- Android, despite being open source, still did not give a user complete control over the device. This laid a basis for many potential abilities remaining dormant, and subsequently Android devices began to get “rooted”. Now this begets the question, why root? With so many Android-based handsets out there now, this question has become even more important.
TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY TRICKY
Rooting essentially means gaining root-level access to your device. Rooting means you are the master and in control, not to mention the fun of it.
Changing the Operating System of your phone depends on the model.7
Future G—gle plans
It seems certain that Android ROMs without G—gle Apps are going to get harder to make as core functionality is increasingly being moved out of the core OS and into proprietary G—gle packages.8
How to free your phone
Disclaimer: this is not a class, this workshop is about discovering together.
RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY
Step 1: BACK UP!!! Superbackup is an app you can use for this. Step 2: Install ADB (Android Debug Bridge) 9 Step 3: Charge your phone Step 4: Root your phone Step 5: Start searching for your phone model and “mod” and see what you can find.
- Wendy
- Android comes free of charge, is advertising-supported, cloud-based, and highly customizable. G—gle says it logs your “phone number, calling party number, forwarding numbers, time and date of calls, duration of calls, SMS routing information and types of calls” in their privacy policy. It also logs your IP Address…10
- Installing software on your Android phone is per default done via G—gle Play store, linked to your G—gle account. There is an alternative with FOSS Apps for Android: F-Droid. Free Software Foundation Europe recommends its use as it is a very nice showcase of all FOSS projects for Android out there.11
- The Guardian project is a collection of apps that help encrypt and obscure, to protect from intrusion and monitoring, like for instance Orbot: Anonymous Web Browsing With Tor On Android.
- In Linux systems there is always a root user, but in Android root access is not a default. You have to do some work to get it. Why root? You can’t modify much except the wallpaper, for instance a simple thing like removing apps that are installed by default is not possible unless you have root power.
- There are many mods available. Mods are forks of the Android OS that have been modified. Examples of mods are Replicant and CyanogenMod. Most mods are proprietary because they contain proprietary drivers. It is very unclear how ”free” most of these mods are. Replicant however, gives clear information on what they stripped and what they included but is only available for very few phones.
- Other OS include: Firefox OS (originally boot 2 gecko), a Linux-based open source operating system developed by Mozilla, Ubuntu Touch (announced to be released in April 2014), and Sailfish OS, an open source project developed by Jolla in collaboration with Mer and Sailfish Alliance (available for Android devices since September 2013).
- Fairphone pushes manufacturers to publish drivers under free licenses. The company is using fair and conflict-free resources, fair wages for workers along the supply chain and improving the handling of electronic waste, being transparent about the cost of each part of the device. Replicant has stated it will probably be able to run on the phone, it’s very happy with all the efforts the company makes to create a ”fair” phone and creating as much (potentially a bit too much) transparency. Replicant is unhappy with the security of the phone though. The modem is embedded in the system on a chip which could mean it is poorly isolated from the rest of the platform, potentially accessing storage, RAM, GPS and the microphone.
Back up :-)
Everyone is asked to make an “ID card” for their phone, with the brand, model and Android version.
There is a Google Nexus phone here that can run Replicant. Replicant clearly states the “freedom issues” in the step-by-step guide, mentioning all the proprietary firmware it relies on. It is the most “open” mod out there at the moment.
We are going to install it step-by-step together to see the whole process. First a look at the installation guide <http://redmine.replicant.us/projects/replicant/wiki/GalaxyNexus>. The first thing you read is a warning, and for good reasons… If you load the wrong firmware onto your phone, it is “bricked”… This is the RISKY part, hence the “know what you’re doing” disclaimer. This install is supposedly one of the more straightforward ones, but boom… we run into a wall… The sub connection in the laptop, running Ubuntu, is not working correctly, making it impossible to connect to the phone.
- Wendy
- It is difficult. 10+ different phones, 10+ different laptops with different OS and an unstable wifi connection make it hard enough, and then there are the many steps of the installation process.
RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY
- Audience
- Why is there so little open source firmware?
- Gijs & Wendy
- “Firmware is not glamorous.” If developers have to choose to create a smooth running OS quickly or to spend their time lobbying with hardware manufacturers… they choose option 1.
A Samsung Galaxy Mini user is eager to install a mod because her phone is extremely slow with a lot of applications running automatically in the background without her being able to uninstall or disable them. Also it bothers her that she doesn’t know what a lot of these applications do exactly. Replicant is not available for her phone so she started looking into creating her own mod.
We bumped into the CyanogenMod wiki’s Learning Center <http://wiki.cyanogenmod.org/w/Development#Learning_To_Build_CM>. Considering the steep learning curve she opts for a ready-made CyanogenMod and after 2 hours of trying to get a USB connection, she flashes her phone and in 5 minutes she has a working mod running. Ten minutes later a Galaxy 3 is running Replicant successfully, although the wifi is not working due to a proprietary driver that Replicant is not including.
RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY RISKY
Rooting the phones proves to be difficult. For some Android database is not listing their device, other phones don’t connect via USB on laptops running Linux. The next bump is the boot loader. The boot loader is a part of the firmware administrating the loading of the boot image, but also other tasks such as re-flashing it over USB. Some of them are closed, you can only install an image cryptographically signed by the manufacturer and you have to crack the phone to install a custom image. There are also conditionally open boot loaders, that allow opening but this process will void the warranty and remove all DRM data.
Documents
Wendy’s notes as a preparation for the workshop: <http://video.constantvzw.org/VJ14/slides/phoneflash_workshop_presentation_wendy.txt>
-
<http://theguardian.com/world/ 2013/dec/20/nsa-internet-security-rsa-secret-10m-encryption> ↩
-
<http://washingtonpost.com/ world/national-security/nsa-seeks-to-build-quantum-computer-that-could-crack-most-types-of-encryption/2014/01/02/8fff297e-7195-11e3-8def-a33011492df2_story.html> ↩
-
<http://android.stackexchange.com/ questions/43361/what-information-does-stock-android-send-to-google-by-default-and-how-do-i-opt> ↩
-
The Apk Android application package file is called Freedroid. F‑Droid is an installable catalogue of Free and Open Source Software applications for the Android platform. This is what the Free Software Foundation Europe supports. <https://f-droid.org> ↩
-
Terminology: Apps And Tools You Can Trust (notice the emphasis on trust) <https://guardianproject.info/apps/> ↩
-
The most free is Replicant but only for specific phones <http://replicant.us/supported-phones/>.
Other OS: <https://en.wikipedia.org/wiki/ Comparison_of_mobile_operating_systems> ↩ -
<http://arstechnica.com/gadgets/2013/09/ balky-carriers-and-slow-oems-step-aside-google-is-defragging-android/> ↩
-
<https://developer.android.com/sdk/index.html>> On the 2nd< of November 2013, CyanogenMod introduced a 1‑click installer in the Google Play store, guiding users through the steps of enabling the ADB tool, and navigating them to the desktop installer that would perform the installation of CyanogenMod on their Android device. Only two weeks after the introduction of the installer in the Play store, it was pulled after The Google Play Support Team asked the developers to voluntarily remove the app or they would be forced to remove it; it was in violation of Google Play’s developers terms. Until the app also has a “reverse” option, putting back the original OS, it will only be available via CyanogenMod’s own channels. ↩
-
Android is an open source OS for mobile devices based on the Linux kernel. It is developed by G—gle and is released under the Apache License. G—gle has developed from a tiny search engine into gigantic data mining corporation, which should make it clear that your data is and will always be very precious to them. If you are interested in their wording of your privacy, visit <http://google.com/intl/en/policies/ privacy/> ↩
-
F-Droid <https://f-droid.org> rebuilds applications from source wherever possible. On their site they mention: “source code is checked for potential security or privacy issues. This checking is far from exhaustive though, and there are no guarantees.” When you install software using the F-Droid repository, you can see warnings such as: “This app tracks your activity”, or “This app promotes non-free add-ons” when it was impossible to remove or replace parts of the app. In a similar way, Android has a service you can enable, in the Security menu, called “Verify apps”, that warns you when installing apps that may cause you harm. This feature also can’t possibly give any real guarantee, it only induces a false sense of security. ↩