Fairphone 5 (fairphone-fp5)
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 |
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
- BEEDELLROKEJULIANLOCKHART (Notes: Daily device)
- Crashniels (Notes: Stock)
- Deathmist (Notes: Porting Ubuntu Touch)
- Linmob (Notes: postmarketOS edge)
- Mariob (Notes: Running Gnome 46 via postmarket ~ Transparent)
- Mtvec
- Tjikkun
- Tommi
- WhyNotHugo (Notes: Ex-daily driver. Murena edition, stock.)
- Z3ntu
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
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.
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.
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
- Fairphone 5: Information on how to repair and recycle - Schematics and other information
See also
- Device package
- Kernel package (close to mainline)
- Firmware package