Fairphone 5 (fairphone-fp5)

From postmarketOS Wiki
Fairphone 5
Manufacturer Fairphone
Name 5
Codename fairphone-fp5
Released 2023
Type handset
Hardware
Chipset Qualcomm QCM6490
CPU Octa-core (1x2.7 GHz Cortex-A78 & 3x2.4 GHz Cortex-A78 & 4x1.9 GHz Cortex-A55)
GPU Adreno 643
Display 1224x2700
Storage 256GB
Memory 8GB
Architecture aarch64
Software
Original software Android
Original version 13
postmarketOS
Category testing
Pre-built images yes
Mainline yes
postmarketOS kernel 6.9.0
Unixbench Whet/Dhry score 10425.8
Features
Flashing
Works
USB Networking
Works
Internal storage
Works
SD card
Works
Battery
Works
Screen
Works
Touchscreen
Works
Multimedia
3D Acceleration
Works
Audio
Broken
Camera
Partial
Camera Flash
Works
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Works
NFC
Broken
Modem
Calls
Partial
SMS
Works
Mobile data
Works
Miscellaneous
FDE
Works
USB OTG
Partial
HDMI/DP
Works
Sensors
Accelerometer
Works
Magnetometer
Works
Ambient Light
Works
Proximity
Works
Hall Effect
Works
Haptics
Broken


Contributors

Users owning this device


Boot modes

By holding various button combinations while booting, the device can be made to boot into different modes. Unplug from USB, power off the device and press and hold the below buttons to enter the specific boot mode.

Boot mode PWR Vol+ Vol-
Fastboot Y N Y
Recovery Y Y N
Download N N N

Installation

Bootloader unlock

Before installing postmarketOS you have to unlock your bootloader.

  • Locate the IMEI 1 number in Settings > About.
  • Locate the serial number in Settings > About > Model & Hardware.
  • Get the unlock code from Fairphone.
  • Enable Developer Options: Settings > About phone > Build number (quickly tap 7 times)
  • Enable OEM unlocking: Settings > System > Advanced > Developer Options.
  • Enter the unlock code generated earlier.
  • Enter fastboot according to boot mode instructions.
  • Connect your device to a PC using a USB Type-C cable.
  • Get the SDK Platform Tools from Android.
  • Open a terminal and type: fastboot flashing unlock
Icon WARNING: This will erase all your data on the device. Please back up important data before unlocking the bootloader!
  • Follow the instructions on your device's screen.

Now use any of the following 3 installation modes.

UBports Installer

You can use UBports Installer v0.9.8 (or later) to flash a prebuilt image of postmarketOS onto your Fairphone 5. Just select postmarketOS in the OS selection and choose the desired UI and lean back!

Web installer

You can use the postmarketOS web flasher to flash a prebuilt image of postmarketOS onto your Fairphone 5. Follow the instructions on the page.

Note Web installer does not work with Firefox or Firefox based browsers like Librewolf and Mullvad. You need to use a chromium based browser.

Manual install

You need to erase the dtbo partition for the current slot with fastboot erase dtbo.

The rest of the installation is standard, but because the device contains A/B slots, you must watch out for the correct slot being active.

Note The device does not contain a system as you might be used to, it contains one super partition which contains system/system_ext/product/vendor/odm partitions, in _a and _b variant each. This concept is called Dynamic Partitions.

You have a few possibilities to flash the postmarketOS rootfs:

  • userdata partition (212 GB usable space): fastboot flash userdata rootfs.img
  • super partition (5.63 GB usable space): fastboot flash super rootfs.img
  • SD card: pmbootstrap flasher flash_rootfs --sdcard /dev/$blk_dev

Return to stock

  • Get the official firmware from Fairphone and extract the archive.
  • Flash the whole firmware by running the flash_fp5_factory file.
  • Boot into fastboot and check locking ability with fastboot flashing get_unlock_ability.
  • If it gives “0” switch slots with fastboot set_active other.
  • Flash the whole firmware again by running the flash_fp5_factory file.
  • Boot into fastboot and lock the bootloader with fastboot flashing lock.
  • Follow the instructions on your device's screen.

Partition layout

sudo fdisk -l -o Device,Start,End,Sectors,Size,Name /dev/sda

Disk /dev/sda: 232.26 GiB, 249384927232 bytes, 60884992 sectors
Disk model: KM8F9001JM-B813 
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 524288 bytes
Disklabel type: gpt
Disk identifier: 0821EE0A-71A8-3C12-DB9A-CE6A85674BF8

Device       Start      End  Sectors  Size Name
/dev/sda1        6      261      256    1M traceability
/dev/sda2      262      293       32  128K fpconfig_persist
/dev/sda3      294      325       32  128K fpconfig
/dev/sda4      326     1349     1024    4M oembin
/dev/sda5     1350     1351        2    8K ssd
/dev/sda6     1352     9543     8192   32M persist
/dev/sda7     9544     9799      256    1M misc
/dev/sda8     9800     9927      128  512K keystore
/dev/sda9     9928    10055      128  512K frp
/dev/sda10   10056    11591     1536    6M study
/dev/sda11   11592    11623       32  128K swversion
/dev/sda12   11624  1584487  1572864    6G super
/dev/sda13 1584488  1584503       16   64K vbmeta_system_a
/dev/sda14 1584504  1584519       16   64K vbmeta_system_b
/dev/sda15 1584520  1588615     4096   16M metadata
/dev/sda16 1588616  4785543  3196928 12.2G rawdump
/dev/sda17 4785544 60884986 56099443  214G userdata

sudo fdisk -l -o Device,Start,End,Sectors,Size,Name /dev/sdb

Disk /dev/sdb: 8 MiB, 8388608 bytes, 2048 sectors
Disk model: KM8F9001JM-B813 
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 524288 bytes
Disklabel type: gpt
Disk identifier: 1337EC69-5D9F-B82A-FAF4-712E5DAC1E17

Device     Start   End Sectors  Size Name
/dev/sdb1      6   906     901  3.5M xbl_a
/dev/sdb2    907   964      58  232K xbl_config_a
/dev/sdb3    965  2042    1078  4.2M last_parti

sudo fdisk -l -o Device,Start,End,Sectors,Size,Name /dev/sdc

Disk /dev/sdc: 8 MiB, 8388608 bytes, 2048 sectors
Disk model: KM8F9001JM-B813 
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 524288 bytes
Disklabel type: gpt
Disk identifier: 5110ED0C-0518-D18E-C5B0-B3AF5C114F1B

Device     Start   End Sectors  Size Name
/dev/sdc1      6   906     901  3.5M xbl_b
/dev/sdc2    907   964      58  232K xbl_config_b
/dev/sdc3    965  2042    1078  4.2M last_parti

sudo fdisk -l -o Device,Start,End,Sectors,Size,Name /dev/sdd

Disk /dev/sdd: 32 MiB, 33554432 bytes, 8192 sectors
Disk model: KM8F9001JM-B813 
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 524288 bytes
Disklabel type: gpt
Disk identifier: 09405E76-7ABA-8F0C-8C5C-2A1F0AAA40A4

Device     Start   End Sectors  Size Name
/dev/sdd1      6    31      26  104K ALIGN_TO_128K_1
/dev/sdd2     32    63      32  128K cdt
/dev/sdd3     64   319     256    1M ddr
/dev/sdd4    320  8186    7867 30.7M last_parti

sudo fdisk -l -o Device,Start,End,Sectors,Size,Name /dev/sde

Disk /dev/sde: 6 GiB, 6442450944 bytes, 1572864 sectors
Disk model: KM8F9001JM-B813 
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 524288 bytes
Disklabel type: gpt
Disk identifier: A967AD1A-77E5-28F5-B8BF-082C0AA32875

Device      Start     End Sectors  Size Name
/dev/sde1       6     133     128  512K aop_a
/dev/sde2     134    1157    1024    4M tz_a
/dev/sde3    1158    3205    2048    8M hyp_a
/dev/sde4    3206   59525   56320  220M modem_a
/dev/sde5   59526   60549    1024    4M bluetooth_a
/dev/sde6   60550   61573    1024    4M mdtpsecapp_a
/dev/sde7   61574   69765    8192   32M mdtp_a
/dev/sde8   69766   70021     256    1M abl_a
/dev/sde9   70022   86405   16384   64M dsp_a
/dev/sde10  86406   86533     128  512K keymaster_a
/dev/sde11  86534  111109   24576   96M boot_a
/dev/sde12 111110  111141      32  128K devcfg_a
/dev/sde13 111142  111161      20   80K qupfw_a
/dev/sde14 111162  111177      16   64K vbmeta_a
/dev/sde15 111178  117321    6144   24M dtbo_a
/dev/sde16 117322  117833     512    2M uefisecapp_a
/dev/sde17 117834  118345     512    2M imagefv_a
/dev/sde18 118346  118377      32  128K shrm_a
/dev/sde19 118378  118385       8   32K multiimgoem_a
/dev/sde20 118386  118641     256    1M cpucp_a
/dev/sde21 118642  118673      32  128K featenabler_a
/dev/sde22 118674  143249   24576   96M vendor_boot_a
/dev/sde23 143250  150929    7680   30M qmcs
/dev/sde24 150930  150993      64  256K qweslicstore_a
/dev/sde25 150994  152529    1536    6M studybk_a
/dev/sde26 152530  152657     128  512K aop_b
/dev/sde27 152658  153681    1024    4M tz_b
/dev/sde28 153682  155729    2048    8M hyp_b
/dev/sde29 155730  212049   56320  220M modem_b
/dev/sde30 212050  213073    1024    4M bluetooth_b
/dev/sde31 213074  214097    1024    4M mdtpsecapp_b
/dev/sde32 214098  222289    8192   32M mdtp_b
/dev/sde33 222290  222545     256    1M abl_b
/dev/sde34 222546  238929   16384   64M dsp_b
/dev/sde35 238930  239057     128  512K keymaster_b
/dev/sde36 239058  263633   24576   96M boot_b
/dev/sde37 263634  263665      32  128K devcfg_b
/dev/sde38 263666  263685      20   80K qupfw_b
/dev/sde39 263686  263701      16   64K vbmeta_b
/dev/sde40 263702  269845    6144   24M dtbo_b
/dev/sde41 269846  270357     512    2M uefisecapp_b
/dev/sde42 270358  270869     512    2M imagefv_b
/dev/sde43 270870  270901      32  128K shrm_b
/dev/sde44 270902  270909       8   32K multiimgoem_b
/dev/sde45 270910  271165     256    1M cpucp_b
/dev/sde46 271166  271197      32  128K featenabler_b
/dev/sde47 271198  295773   24576   96M vendor_boot_b
/dev/sde48 295774  295837      64  256K qweslicstore_b
/dev/sde49 295838  297373    1536    6M studybk_b
/dev/sde50 297374  297374       1    4K devinfo
/dev/sde51 297375  297630     256    1M dip
/dev/sde52 297631  297694      64  256K apdp
/dev/sde53 297695  306050    8356 32.6M splash
/dev/sde54 306051  306051       1    4K limits
/dev/sde55 306052  306052       1    4K limits-cdsp
/dev/sde56 306053  306308     256    1M toolsfv
/dev/sde57 306309  308356    2048    8M logfs
/dev/sde58 308357  318596   10240   40M quantumsdk
/dev/sde59 318597  449668  131072  512M logdump
/dev/sde60 449669  449700      32  128K storsec
/dev/sde61 449701  449828     128  512K uefivarstore
/dev/sde62 449829  449835       7   28K secdata
/dev/sde63 449836  449963     128  512K catefv
/dev/sde64 449964  450219     256    1M catecontentfv
/dev/sde65 450220  458575    8356 32.6M vm-data
/dev/sde66 458576  463695    5120   20M mdcompress
/dev/sde67 463696  463727      32  128K connsec
/dev/sde68 463728  463759      32  128K tzsc
/dev/sde69 463760  463887     128  512K rtice
/dev/sde70 463888 1572858 1108971  4.2G last_parti

sudo fdisk -l -o Device,Start,End,Sectors,Size,Name /dev/sdf

Disk /dev/sdf: 32 MiB, 33554432 bytes, 8192 sectors
Disk model: KM8F9001JM-B813 
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 524288 bytes
Disklabel type: gpt
Disk identifier: 5979A5AC-E514-89B6-D102-7D55F8A32097

Device     Start   End Sectors  Size Name
/dev/sdf1      6    31      26  104K ALIGN_TO_128K_2
/dev/sdf2     32   799     768    3M fsg
/dev/sdf3    800  2335    1536    6M modemst1
/dev/sdf4   2336  3871    1536    6M modemst2
/dev/sdf5   3872  3903      32  128K fsc
/dev/sdf6   3904  8186    4283 16.7M last_parti

Components

Component table

Component Model Driver
Modem QDM5577 ?
eSIM ST33G1M2LCL9EMM9 ?
Power button PMK7325 ?
Volume down PMK7325 ?
Volume up GPIO ?
Display BF065GBM-TK0-7DP0 ?
Touchscreen GT9897 ?
Chipset QCM6490 ?
GPU Adreno 642L ?
SD card sdhc_2 ?
Internal storage UFS 2.2 ?
Main camera IMX800 ?
Wide camera IMX858 ?
Front camera S5KJN1SQ03 ?
Camera flash PM7350C ?
Audio codec WCD9385 ?
Earpiece SLS1012A ?
Speaker SLS1115D-01 ?
Microphones SM0103B-RS421-M02 ?
Vibration motor AW86927FCR ?
WiFi WCN6750 ?
Bluetooth WCN6750 ?
GNSS/GPS ? ?
NFC ST21NFCD ?
Fingerprint ? ?
Sixaxis LSM6DSOQTR ?
Light / Proximity STK33562-175 ?
Magnetometer MMC5603NJ ?
Fuel gauge PM7250B ?
Charger PM7250B ?

Modem

Feature 5G 4G 3G 2G
Data Y Y Y Y
Call N N Y Y
Text Y Y Y Y

eSIM

Status : Broken No driver for the eSIM module yet. The eSIM module is managed by lpa-gtk available only in postmarketOS Edge channel.

Display

Screen resolution modes: only 1224 x 2700 is currently supported.

Screen refresh rates: only 90Hz is currently supported.

No Always-On Display mode implemented by any graphical user interface.

Audio

Status : Broken No driver for the audio codec yet. No internal speaker or microphone is currently working. You can get all sounds via Bluetooth or USB peripherals.

Development for audio and camera is done here.

Location

Location only works when a SIM card is installed if your modemmanager is older than v1.23. This is a global issue, not related to this device.

Sensors

Sensor drivers are available only in postmarketOS Edge channel.

Fingerprint

Status : Broken No driver for the fingerprint reader yet.

Resources

See also