Install on Fairphone 4
From a Linux computer
Contents
Terminology
- Factory Image: This is a zip file that contains the entire CalyxOS operating system to be installed on your device.
- Flashing: On Android devices, installing a new operating system is called “flashing,” because it writes a new factory image to the device’s flash memory.
- Android Device: The device that you are installing CalyxOS on to.
- Host Computer: The Linux computer used to send commands to the Android Device. You will connect this computer to the Android device and run device-flasher to install CalyxOS.
- Fastboot: A mode of the Android device needed to install a custom Operating System. At various stages, you will be asked to put your Android device in Fastboot mode.
Prepare your Android device
There are a few things you must do to prepare your device to accept a new operating system:
Remove SIM card
On brand new devices, especially those obtained from a carrier, it’s better to remove the SIM card from the device before starting it for the first time, to help with the “OEM Unlocking” step below.
Enable Developer Options
Settings → About Phone → tap Build number 7 times
Enable USB debugging
Settings → System → Advanced → Developer Options → USB Debugging
Enable OEM Unlocking
Settings → System → Advanced → Developer Options → OEM unlocking
This step might fail if there is no internet connection. In that case, connect to a WiFi network and then try again.
Obtaining an unlock code
Fairphones require you to request for a code to unlock their bootloader.
You can do this by heading over to: https://www.fairphone.com/bootloader-unlocking-code-for-fairphone
Prepare your host computer
Linux packages
The device-flasher program needs certain udev rules installed. You should install one of the following packages to correctly set the udev rules.
Debian, Ubuntu, & derivatives:
sudo apt update
sudo apt install android-sdk-platform-tools-common
Fedora & derivatives:
sudo dnf install android-tools
Currently, there are issues with udev rules on Fedora, you may need to run device-flasher.linux
using sudo
later on the install process.
Arch Linux:
sudo pacman -S android-udev
openSUSE:
sudo zypper install android-udev-rules
NixOS:
Add the following to /etc/nixos/configuration.nix
and sudo nixos-rebuild switch
:
services.udev.packages = [
pkgs.android-udev-rules
];
Create a shell.nix
for temporary FHS-compatible shell:
{ pkgs ? import <nixpkgs> {} }:
(pkgs.buildFHSUserEnv {
name = "calyxos-device-flashing";
}).env
Enter it with nix-shell
.
Download device-flasher
Save this executable to a new directory, where you will also later save the CalyxOS image.
Verify Digest
This is an optional step, useful for ensuring you have the correct device-flasher executable. Open a terminal on your host computer, change to the directory where you saved device-flasher, and then run:
sha256sum device-flasher.linux
And ensure the result says 90c306006c8f6ff74a6fc264b85349f9dce4f0e790f673d7c3c8b8a9e083284b
. This is the unique digest of the device-flasher. If it doesn’t match, then you have a corrupted or incorrect file.
Download factory image
Save this image in the same directory as device-flasher. This image will only work for Fairphone 4 (FP4). Any attempt to install this image on a different device model may brick (destroy) the Android device.
Do not extract or rename the zip, simply copy it as-is.
Once downloaded, the next step is to verify the image. This step is optional, but verification helps ensure that you downloaded the image correctly, and that you got the correct image.
Verify Digest
To verify the image, open a terminal window on the host computer where you saved the image and run the command:
sha256sum FP4-factory-24514000.zip
And ensure the result says a219115aae6504a7aa7a79f79f8aeb066241cd517c266749a60f160d7ad5934e
. This is the unique digest of the image file. If it doesn’t match, then you have a corrupted or incorrect file.
Verify Signature
For the highest level of confidence, you can optionally download the signature file and then verify image signature.
Install CalyxOS
Run device-flasher
Now you are ready to install. Ensure that both the CalyxOS image and device-flasher are in the same directory.
Step 1. Connect the USB cable between the computer and the Android device.
Step 2. Run device-flasher
Open a terminal, change to the directory with the firmware image, and run:
chmod +x device-flasher.linux
./device-flasher.linux
Unlock the bootloader
At some point in the installation process, it will ask you to unlock the bootloader.
NOTE: if the bootloader is already unlocked, you will not see the unlock bootloader menu and installation will proceed automatically without you needing to touch anything.
The bootloader unlock menu looks like this:
Press a volume key to select UNLOCK THE BOOTLOADER option. Then press the power key to activate that option.
Success?
Once device-flasher is finished, you should now have a fully functional CalyxOS device. If not, please see our Community page for where you can post your questions.
Troubleshooting
Error running device-flasher
If you get a mysterious error when running device-flasher, or if device-flasher hangs, it may be a USB problem. Try connecting to a different USB port on your computer (yes, not all USB ports are created equal) or a different USB cable.
How do I tell if the bootloader is locked?
In Fastboot “Device State: locked” means the bootloader is locked.
On the initial boot screen, you may also see this if the bootloader is unlocked:
The bootloader is unlocked and software integrity cannot be guaranteed. Any data stored on the device may be available to attackers. Do not store sensitive data on the device.
Back to Stock
If you would like to return to the default operating system, please see Back to Stock Android.
Security Notes
- Over-the-air Updates: CalyxOS updates are delivered over-the-air (OTA) automatically, without any manual intervention needed. However, if you'd like to manually update your CalyxOS install, see OTA.
- Security Updates: The Pixel 9 Pro Fold, 9 Pro XL, 9 Pro, 9, 8a, 8 Pro, 8, Fold, Tablet, 7a, 7 Pro, 7, 6a, 6 Pro, 6 contain the full security patch, as they are still being updated by Google.
- Security Updates: The Fairphone 4, 5, Motorola moto g32, moto g42, moto g52 stock OS follows a different security update release schedule, which usually lags behind by a month or two compared to Pixels. The CalyxOS releases for it only contain the latest fixes to the open source components, such as the OS code and the Linux kernel. Proprietary components such as the bootloader, modem firmware, and other firmware get updates as soon as the stock OS update is available.
- End-of-life: The Pixel 5a (5G), 4a (5G), 5, 4a, 4 XL, 4 are no longer being updated by the manufacturer, so the CalyxOS releases for these devices only contain the fixes to the open source components, such as the OS code and the Linux kernel. Proprietary components such as the bootloader, modem firmware, and other firmware no longer get updates.