Fairphone owner

I own a Fairphone now. When I first heard about the Fairphone project it looked interesting to me, but I haven’t thought about it seriously for two reasons: 1. price, 2. I wanted the phone to be fair not only in the production chain but also to its users. When I recently started looking for a possible replacement of my old smartphone, I found out that the second problem has been fixed.

Now how about the price? A smartphone with similar hardware specifications can be obtained maybe for half the price. But Fairphone has some unique features:

  • It officially supports a free operating system with optional root access. You can freely choose whether you want to use a restricted proprietary system with Google applications or a free operating system without them. Both the options are officially supported.
  • You may also install another operating system on the phone without voiding the warranty. You’re still responsible for damages caused by malware or improper use of the root access, but the mere fact that you install another system on the phone doesn’t void your warranty.
  • Some parts of the smartphone are replaceable and they may be (in theory) upgraded in the future. And you can replace them yourself easily.
  • The smartphone is designed to last. I think nobody can tell whether it will really last, but there is at least some effort to make it more likely to happen.
  • And of course, the production of the smartphone tries to be fair. Ethics matters.

Fairphone is not perfect, but it’s the only reasonable smartphone I’m aware of that provides such a level of fairness. Considering that fact, the price is actually reasonable – freedom and ethics have their price. We must be ready to pay it, otherwise we lose those basic values. Fairphone is very unique on the distorted smartphone market, where harsh restrictions, previously rejected on the PC market, were successfully introduced without any big protests. Consider my previous smartphone:

  • It occasionally rebooted itself. Well, I could live with that.
  • The provided operating system was proprietary and contained proprietary applications that I didn’t want to use, that wasted the small storage space available and that I couldn’t remove. This is not acceptable.
  • The provided operating system was already obsolete when I bought the smartphone, even security upgrades weren’t provided. Using an old operating system is debatable, lack of security patches is not acceptable.
  • Installing an alternative operating system was possible but only with a clear message from the vendor that it would void my warranty. I’m not sure it’s legal in the E.U. but it’s not acceptable in any case.
  • Nothing was advertised about how the smartphone was produced and what harm it caused to workers or regions of the world.

Would I like to pay any money for such a device again? The obvious answer is “no”. And that was one of the better smartphones on the market, where additional restrictions such as impossibility to install a different operating system or even just unapproved applications were present.

There are some problems with Fairphone too, for instance:

  • Not everything in the supply chain is fair. The nice fact is that the vendor admits it and tries to do what’s possible in the current world.
  • Proprietary binary blobs are used in the operating system. This is the sad reality of the current market that Fairphone can’t change itself. We all must call for the change.
  • There’s no waterproof version, I miss that feature from my previous smartphone. The nice fact is that the vendor explains why the phone is not waterproof, with good arguments. (Compare it to an approach of a well known company that sells more expensive smartphones without offering a waterproof version; it officially sells an expensive waterproof case instead, which is not very useable according to the user reviews.)
  • It doesn’t provide the best hardware and the newest Android available today. But it still provides all I need and is much modern than my previous smartphone, so I don’t care much.
  • When the smartphone is charged, the touch screen works very unreliably with most chargers (charging from a computer USB port works fine for me). It was scary at first, it’s very annoying and it must be a design problem.
  • Switching from Cyanogenmod, which I used on my old smartphone, to something close to the stock Android is frustrating, many useful features are missing.
  • Fairphone can’t change that much. But it raises the awareness and makes some important steps towards a better society.

No smartphone is perfect and I like the fact that the company tries to be transparent about problems.

So I decided to buy a Fairphone. I dislike how most other vendors treat their customers and I don’t like paying them for that. I’m sad that many people pay big money to companies that mislead users and try to restrict their freedom and privacy. Fairphone 2 reviews often complain about the hardware etc. and don’t mention how nice it is to its users. That pretty well illustrates what we care most about – having funny toys without caring about our freedom.

One of good ways of fighting evil behavior is to support good behavior. And this is one of the major reasons why I decided to buy the Fairphone. I still can’t equip my whole family with Fairphones, it’s not affordable. But I wish that would change one day, so I should support the project.

Did I say that I own my Fairphone? Yes, it’s a great feeling of owning the device, instead of being owned by the device. The phone is fair.

Debian GNU/Linux on Android

Android tablets are useful portable devices. Unfortunately Android makes them less useful than they could be. There are several problems with Android, one of them being lack of applications. While there are free Android applications for many common tasks, they are typically not suitable for serious work and many applications are completely missing, most notably (real) Emacs.

But it’s possible to partially overcome the problem by installing GNU/Linux in a chroot environment on Android, making an Android tablet a poor man’s substitute for a laptop on occasional traveling. Here’s what I’ve found about running Debian GNU/Linux on Android after some experiments and testing a couple of alternatives:

  • Get a Bluetooth or other hardware keyboard. The software keyboards take screen space, are not suitable for touch typing and are especially uncomfortable to use with X.
  • Install XSDL X server, available also on Google Play. The other Android X Server, available on F-Droid, doesn’t work very well, nor the free VNC servers I tried.
  • Install GNURoot, together with one of its root images, available from Google Play. GNURoot environment works very well for many tasks, as long as you don’t need real root access.
  • Start the X server, start GNURoot, install your favorite Debian packages, set DISPLAY to localhost:0, run your favorite window manager and the applications you need. The X environment is slow but useable.
  • If you need real root access, you can use Lil’ Debi, available on F-Droid. But there are some limitations: Your Android must be rooted (obviously), the file system size is limited to about 2 GB and I couldn’t connect to the X server under user other than root.

Installing an alternative ROM on Google Nexus 10

Enough is enough. I don’t like how the stock Android installation treats its users and I finally decided to replace it on my Google Nexus 10 with something else. The reasonable choices were CyanogenMod, AOKP and OmniROM. I decided to install AOKP.

Installation instructions looked like installing an alternative ROM on Nexus is a completely easy (and safe) process. It wasn’t that easy though, there is some missing and misleading information in those installation instructions. Due to it, I got a bit scared about three times during the process and had to search the Web for solutions. Thanks to all those kind people who post instructions, answers and solutions I was able to complete the installation successfully. So here is another short guide summarizing how to install an alternative ROM on current (4.4) stock Nexus 10, based on my own experience:

  • Accept that by following these or other similar instructions you can brick your device, lose warranty, etc.
  • Backup everything on your tablet you want to retain. All data may get deleted during the installation.
  • Install Android SDK on your PC. You need it to get working adb and fastboot.
  • On your PC, download TWRP recovery image for your device. You can use ClockworkMod as well, I chose TWRP so that I could contingently install OmniROM without replacing the recovery again.
  • Download the desired ROM and Google applications (if you want them) and put them to /sdcard/ directory on your tablet.
  • Enable developer’s setting on the tablet: Go to settings, device information and tap several times on the build number, until you see the message about being a developer.
  • Go back in settings, enter the developer’s settings and enable USB debugging.
  • Connect the tablet to your PC via a USB cable. The tablet should indicate that you’re in USB developer’s mode.
  • Check that sudo adb devices (use adb binary from Android SDK) shows your tablet on your PC. Note it’s important to run adb as root for the first time. It starts a server process on the first invocation and if that starts under an ordinary user, adb functions may not work even under root later.
  • If there is something strange in adb devices output, such as no entry at all, question marks or a message about permissions, then there is something wrong with your setup.
  • Run adb reboot bootloader. The tablet reboots and enters bootloader menu.
  • Run sudo fastboot oem unlock (use fastboot binary from Android SDK). The tablet should reboot, with unlocked lock displayed under “Google”.
  • Perhaps the tablet gets stuck on the boot. It looks scary, but it can (hopefully) be fixed following the next instructions. If the tablet boots normally, skip a few next instructions and continue with “re-enable USB debugging”.
  • Long press Power + Volume Up + Volume Down to restart the tablet and to enter the boot menu.
  • Select “recovery mode” using the volume buttons and press Power. An Android robot with a triangle appears after a short while.
  • Shortly tap Power + Volume Up (the volume key on the right). A menu appears.
  • Select “wipe data” and wait until it finishes.
  • Select “reboot” and the tablet should reboot fine now. Your data is lost (no problem as that will happen during the installation anyway) and the tablet must be set up as when it was started for the first time after you had bought it.
  • Re-enable USB debugging in developer’s settings.
  • Run adb reboot bootloader to enter the bootloader.
  • Run sudo fastboot flash recovery RECOVERY-IMAGE.zip (if you decided to use TWRP then RECOVERY-IMAGE should be something like openrecovery-twrp-*-manta.img).
  • Select “power off” on the tablet.
  • Long press Power + Volume Up + Volume Down to power the tablet on and to enter the boot menu. Don’t start the tablet normally otherwise the installed recovery may get replaced with the original one during the boot.
  • Select “recovery mode” and you should be in TWRP now.
  • Perform “Backup” in TWRP to backup the original system.
  • Perform “Wipe” in TWRP.
  • If your installation .zip files are not in /sdcard, you can upload them now using adb push YOUR-DOWNLOADED-ROM-FILE.zip /sdcard/ from PC.
  • Perform “Install” in TWRP for your ROM (and Google applications, if you want them) zip files.
  • Perform “Reboot” in TWRP.
  • Hopefully the new system starts now and you are freed from the Google restrictions.

Many thanks to all those who develop alternative Android installations with improved user freedom!

CyanogenMod user

Enough is enough. I got sufficiently annoyed by Samsung Android to install an unofficial port of CyanogenMod (no better alternative) on my phone. What are the first impressions?

The system installed without problems and has been running reasonably well. The user restrictions are gone: I got rid of many useless proprietary applications wasting the very limited space on the internal storage, some things got customizable and root access is available when needed. There is improved functionality: I especially like profiles and swype on the Google keyboard works much better than on the Samsung one. Software freedom was improved by removing some pieces of unwanted proprietary software and replacing some components of unknown origin and license. While I miss a few things from the original Samsung system, I absolutely don’t regret abandoning it and have no intention to return to it unless I experience some serious problem.

As for stability, neither of the systems is perfect. Samsung system suffered from random reboots and other random stability problems. CyanogenMod has problems to start on my phone, suffering from boot loops, but once it’s completely up and running it seems to be stable (so far). Time will tell but it seems the Samsung official preinstalled system isn’t more stable than an experimental unofficial port of an alternative ROM.

Samsung produces user friendly hardware: replaceable battery, SD card slot, standard SIM size, a lot of different models for different needs, available bootloader. Too bad they cripple it with their proprietary software. I’d probably recommend my friend buying a Samsung phone, but only one of the models for which one’s favorite alternative system (e.g. Replicant, OmniROM or CyanogenMod) is officially available.

CyanogenMod removed from Google Play Store

CyanogenMod installer application was removed from Google Play Store on Google’s request. Not much issue itself as it can be installed from elsewhere and without using the proprietary Play Store application. The more interesting part is the reasoning about the issue.

According to Google the installer encourages users to void their warranty and thus is in violation of the terms of service. This seems fair at the first glance but we must ask Google some questions about its stock Android systems: Why can’t we install security updates on your Android without voiding the warranty? Why can’t we mount USB devices on your Android without voiding the warranty? Why can’t we remove proprietary applications from your Android without voiding the warranty? Why can’t we install applications on the SD card on your Android without voiding the warranty? Why can’t we install another operating system on our devices running your Android without voiding the warranty?

Even more interesting are users’ comments. Some people claim that voiding the warranty makes sense as replacing the stock Android is indeed dangerous for various reasons: The device may be destroyed by overheating; LED control can be destroyed by incorrect use; the device may be bricked by reflashing due to an undocumented feature of the device. Compare this with PCs: How many of them have you damaged or destroyed by installing another operating system on them? Clearly there is something very wrong with the stock Android devices and with all those arguments.

Given the questions above, people have a lot of valid reasons to install less restrictive Android systems, such as Replicant, CyanogenMod or even the closed Chinese distribution (can you believe it’s not under the control of Chinese army?), on their devices. The primary question is: Why are the Android devices designed to void the warranty in case the original software gets replaced? The answer is clear: Google applies invasive user and vendor lock-in. The most sad fact is that some users accept and support it.

Well, one can argue user lock-in is in the best interest of Google business: We are the products and restricting us makes us better products, to be sold for a better price. We don’t pay for Android development, Google customers do. Unfortunately, this is the perverted fact of todays economy. But Google at one time used the motto “don’t be evil”. Google had to be nice to its users when it needed to acquire them; as a monopolist today it just exploits them. Google is an evil company these days (don’t be confused: Apple, Microsoft, Samsung and others are no better): It applies aggressive user (and vendor) lock-in, it replaces its previously free software with proprietary software, and it supports DRM on the Web and in W3C standards.

Google and other such companies deserve boycott to force them to change their behavior but that can be hardly effective nowadays. So what can we do? I suggest fighting for consumer rights, using replacements of proprietary software and services, developing free software including distributed free software services, donating to organizations such as Free Software Foundation, Electronic Frontier Foundation or Software Freedom Law Center, and educating the users.

Smartphone user

I can no longer ignore smartphones, for various reasons. So I bought one, an Android based Samsung phone.

One of the reasons I’ve avoided smartphones so far is they run on non-free software. While the underlying operating system is mostly free, phone vendors are active in putting special restrictions on it.

Samsung installs its own proprietary Android based system on the phone. The user is denied root access, he may not remove preinstalled applications and installation of another operating system voids the warranty. Compared to PCs, this is much more restrictive than in the worst times of Microsoft monopoly.

Despite the user is prevented from fixing the operating system (under the penalty of voiding the warranty), Samsung doesn’t provide even proper security support — there is no update available for the more than a half year old operating system build. Who could believe there are no known security bugs in it (if nothing else then considering the fact the system can be rooted)? So the user has to decide between giving up on proper software support or giving up on the hardware warranty. Where are the consumer rights?

To be fair, Samsung’s approach to the customers is still better than by some of its direct competitors. The user is allowed to remove and replace the battery, to use his own memory card (although only for limited purposes), to install any application he likes, even to install another operating system (when accepting the loss of warranty). There is at least one big smartphone vendor who doesn’t permit anything of that and some other vendors don’t permit at least something of that. Poor security support is common among major vendors of proprietary operating systems. My new phone replaces three devices I’ve used so far and provides much more software freedom than any of them. And Samsung offers wide range of products so it’s likely any family member can find a suitable device among them. Unless you’re ready to spend a lot of money and trouble on the aging GTA04, there is hardly much better choice on the market. So buying a Samsung phone is probably a reasonable choice when avoiding the very expensive models (you wouldn’t like to spend a lot of money on a limited warranty product, would you?).

How to improve software freedom on such a device? The first step is to start using applications from F-Droid. Using preinstalled applications or applications from Google Play requires special attention as they typically don’t provide licensing information, they may be dependent on non-free software, they may be modified by spies and the Google Play thing is proprietary itself. There are many free applications satisfying most of my needs available, either on F-Droid or elsewhere. So the primary problem is the operating system. I’ll probably replace it with CyanogenMod once my warranty expires or I start believing the hardware survives it and if my model gets supported. Replicant might be even better if it supports my model, but unless it supports all the important devices in it it won’t contribute to my software freedom (but it may still improve my privacy).

So I’d say the smartphone market is still in poor state but it’s not hopeless. The main obstacles are violations of consumer rights by voiding the warranty on installation of a free operating system, unavailability of free firmware, and limited model support in CyanogenMod and other alternative distributions. Apart from that we have a complete free operating system with a lot of useful free applications. The simplest action we can take is buying smartphones from vendors who put the least restrictions on the users.