Fairphone 3 (fairphone-fp3)
|
| |
| Manufacturer | Fairphone |
|---|---|
| Name | 3 |
| Codename | fairphone-fp3 |
| Model | FP3 |
| Released | 2019 |
| Type | handset |
| Hardware | |
| Chipset | Qualcomm Snapdragon 632 (SDM632) |
| CPU |
4x 1.8 GHz Kryo 250 Gold 4x 1.8 GHz Kryo 250 Silver |
| GPU | Adreno 506 |
| Display | 1080x2160 |
| Storage | 64 GB |
| Memory | 4 GB |
| Architecture | aarch64 |
| Software | |
Original software The software and version the device was shipped with. |
Android 9 |
Extended version The most recent supported version from the manufacturer. |
Android 13 |
| Optional software | eOS |
| FOSS bootloader | no |
| postmarketOS | |
| Category | testing |
Pre-built images Whether pre-built images are available from the postmarketOS Installation page. |
N |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
yes |
pmOS kernel The kernel version that runs on the device's port. |
6.17.7 |
Unixbench score Unixbench Whetstone/Dhrystone score. See Unixbench. |
4123.8 |
| Device package |
|
| Kernel package |
|
Flashing Whether it is possible to flash the device with pmbootstrap flasher. |
Works
|
|---|---|
USB Networking After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system). |
Works
|
Internal storage eMMC, SD cards, UFS... |
Works
|
SD card Also includes other external storage cards. |
Works
|
Battery Whether charging and battery level reporting work. |
Broken
|
Screen Whether the display works; ideally with sleep mode and brightness control. |
Works
|
Touchscreen |
Works
|
| Multimedia | |
3D Acceleration |
Works
|
Audio Audio playback, microphone, headset and buttons. |
Partial
|
Camera |
Broken
|
Camera Flash |
Broken
|
| Connectivity | |
WiFi |
Works
|
Bluetooth |
Works
|
GPS |
Works
|
NFC Near Field Communication |
Works
|
| Modem | |
Calls |
Partial
|
SMS |
Works
|
Mobile data |
Works
|
| Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Works
|
USB OTG USB On-The-Go or USB-C Role switching. |
Works
|
Fingerprint Fingerprint reader. |
Broken
|
| Sensors | |
Accelerometer Handles automatic screen rotation in many interfaces. |
Broken
|
Magnetometer Sensor to measure the Earth's magnetism |
Broken
|
Ambient Light Measures the light level; used for automatic screen dimming in many interfaces. |
Broken
|
Proximity |
Broken
|
Haptics |
Works
|
Description
The Fairphone 3(+) is a touchscreen-based smartphone made by Fairphone. The phone has a modular, repairable design and is "constructed out of responsibly-sourced, conflict-free, and recycled materials where possible".
Boot modes
By holding various button combinations while booting, the device can 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
| You should upgrade your phone to the latest official firmware before start tinkering with it. Development is mostly done on the latest firmware. |
Unlock the bootloader according to the official instructions. You do not need to unlock critical partitions.
Manual install
- Enter fastboot according to boot modes instructions above.
- Firstly, flash the dtbo partition from here:
fastboot flash dtbo dtbo.img - Secondly, flash the boot partition:
pmbootstrap flasher flash_lk2nd - Thirdly, you have a few choices to flash the postmarketOS rootfs:
- userdata partition (48.7GiB usable space):
fastboot flash userdata *rootfs.img - SD memory card:
dd if=*rootfs.img of=/dev/$blk_dev bs=8M status=progress
- userdata partition (48.7GiB usable space):
- Finally, reboot the device:
fastboot reboot
In order to access lk2nd's menu, during bootup when you see the warning screen about the unlocked bootloader, press the power button twice and then immediately hold the Volume Down button. You should now see a different looking boot menu.
Return to Android
Follow the instructions on the respective official page of Fairphone-OS or Murena-/e/OS to return to stock Android.
Partition layout
fdisk -lo Device,Start,End,Sectors,Size,Name /dev/mmcblk0
Disk /dev/mmcblk0: 58.24 GiB, 62537072640 bytes, 122142720 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 98101B32-BBE2-4BF2-A06E-2BB33D000C20
Device Start End Sectors Size Name /dev/mmcblk0p1 131072 311295 180224 88M modem_a /dev/mmcblk0p2 311296 491519 180224 88M modem_b /dev/mmcblk0p3 524288 524289 2 1K fsc /dev/mmcblk0p4 524296 524311 16 8K ssd /dev/mmcblk0p5 524312 525335 1024 512K sbl1_a /dev/mmcblk0p6 525336 526359 1024 512K sbl1_b /dev/mmcblk0p7 526360 527383 1024 512K rpm_a /dev/mmcblk0p8 527384 528407 1024 512K rpm_b /dev/mmcblk0p9 528408 532503 4096 2M tz_a /dev/mmcblk0p10 532504 536599 4096 2M tz_b /dev/mmcblk0p11 536600 537111 512 256K devcfg_a /dev/mmcblk0p12 537112 537623 512 256K devcfg_b /dev/mmcblk0p13 537624 570391 32768 16M dsp_a /dev/mmcblk0p14 570392 603159 32768 16M dsp_b /dev/mmcblk0p15 603160 606231 3072 1.5M modemst1 /dev/mmcblk0p16 606232 609303 3072 1.5M modemst2 /dev/mmcblk0p17 655360 655423 64 32K DDR /dev/mmcblk0p18 655424 658495 3072 1.5M fsg /dev/mmcblk0p19 658496 658527 32 16K sec /dev/mmcblk0p20 786432 808959 22528 11M splash /dev/mmcblk0p21 917504 923647 6144 3M aboot_a /dev/mmcblk0p22 923648 929791 6144 3M aboot_b /dev/mmcblk0p23 929792 946175 16384 8M dtbo_a /dev/mmcblk0p24 946176 962559 16384 8M dtbo_b /dev/mmcblk0p25 962560 962687 128 64K vbmeta_a /dev/mmcblk0p26 962688 962815 128 64K vbmeta_b /dev/mmcblk0p27 962816 1093887 131072 64M boot_a /dev/mmcblk0p28 1093888 1224959 131072 64M boot_b /dev/mmcblk0p29 1224960 1227007 2048 1M devinfo /dev/mmcblk0p30 1227008 7518463 6291456 3G system_a /dev/mmcblk0p31 7518464 13809919 6291456 3G system_b /dev/mmcblk0p32 13809920 15907071 2097152 1G vendor_a /dev/mmcblk0p33 15907072 18004223 2097152 1G vendor_b /dev/mmcblk0p34 18087936 18153471 65536 32M persist /dev/mmcblk0p35 18153472 18155519 2048 1M misc /dev/mmcblk0p36 18155520 18156543 1024 512K keystore /dev/mmcblk0p37 18156544 18160639 4096 2M prodinfo /dev/mmcblk0p38 18160640 18160703 64 32K config /dev/mmcblk0p39 18160704 18684991 524288 256M oem /dev/mmcblk0p40 18743296 18743359 64 32K limits /dev/mmcblk0p41 18874368 18875391 1024 512K mota /dev/mmcblk0p42 18875392 18877439 2048 1M dip /dev/mmcblk0p43 18877440 18942975 65536 32M mdtp_a /dev/mmcblk0p44 18942976 19008511 65536 32M mdtp_b /dev/mmcblk0p45 19008512 19009535 1024 512K syscfg /dev/mmcblk0p46 19009536 19017727 8192 4M mcfg /dev/mmcblk0p47 19136512 19136767 256 128K lksecapp_a /dev/mmcblk0p48 19136768 19137023 256 128K lksecapp_b /dev/mmcblk0p49 19137024 19139071 2048 1M cmnlib_a /dev/mmcblk0p50 19139072 19141119 2048 1M cmnlib_b /dev/mmcblk0p51 19141120 19143167 2048 1M cmnlib64_a /dev/mmcblk0p52 19143168 19145215 2048 1M cmnlib64_b /dev/mmcblk0p53 19145216 19147263 2048 1M keymaster_a /dev/mmcblk0p54 19147264 19149311 2048 1M keymaster_b /dev/mmcblk0p55 19267584 19268095 512 256K apdp /dev/mmcblk0p56 19268096 19268607 512 256K msadp /dev/mmcblk0p57 19268608 19268623 16 8K dpo /dev/mmcblk0p58 19268624 19399695 131072 64M logdump /dev/mmcblk0p59 19399696 19400719 1024 512K frp /dev/mmcblk0p60 19400720 19662863 262144 128M product_a /dev/mmcblk0p61 19662864 19925007 262144 128M product_b /dev/mmcblk0p62 19925008 122142686 102217679 48.7G userdata /dev/mmcblk0p63 0 0 1 512B
Components
Component table
| Component | Model | Notes |
|---|---|---|
| Modem | Snapdragon X9 LTE | |
| Power button | PM8953 | pwrkey |
| Volume down | PM8953 | resin |
| Volume up | GPIO | |
| Display | HX83112B | |
| Touchscreen | HX83112B | |
| Chipset | SDM632 | |
| GPU | Adreno 506 | |
| SD card | sdhc_2 | |
| Internal storage | sdhc_1 | |
| Camera flash | PMI632 | |
| Audio codec | WCD9326 | |
| Amplifier | FP3: AW8898, FP3+: TAS2557 | |
| Earpiece | ||
| Speaker | ||
| Microphones | ||
| Vibration motor | PMI632 | |
| WiFi | WCN3680B | |
| Bluetooth | WCN3680B | |
| GNSS/GPS | ||
| NFC | NQ310 | |
| Fingerprint | ||
| Sixaxis | ||
| Light / Proximity | ||
| Magnetometer | ||
| Fuel gauge | PMI632 | qg |
| Charger | PMI632 | smb5 |
Battery
| WARNING: Do not allow your battery to fully deplete as you will reduce its lifespan. |
There are no drivers for the fuel gauge and charger and you can not see the battery charge state in postmarketOS. Make sure you either switch to the slot where Android is installed from time to time, or you boot into eOS recovery to check the battery status and charge as needed.
Audio
No sound coming from the earpiece. Only the speaker works. No microphone is working.
Audio path:
- CPU via I2S (quinary) to AW8898 (FP3) / TAS2557 (FP3+): speaker
- CPU via SLIMbus to WCD9326: microphones, headphones, etc.
- AMIC2 (using MIC_BIAS2) for headset mic
- DMIC1 (using MIC_BIAS1) for main microphone next to USB port
- DMIC2 (using MIC_BIAS3) for secondary microphone on top
- HPH output is headset output (wired headphones)
- EAR output is 'receiver' output (top speaker for calls)
Camera
| Camera | Sensor | EEPROM | Actuator | Bus |
|---|---|---|---|---|
| Rear (FP3) | Sony IMX363 | Belling BL24S64 | ON Semi LC898217 | D-PHY |
| Front (FP3) | Samsung S5K4H7YX | D-PHY | ||
| Rear (FP3+) | Samsung S5KGM1SP | Puya P24C64E | Dongwoon DW9800W | D-PHY |
| Front (FP3+) | Samsung S5K3P9SP04 | Puya P24C64E | D-PHY |
UART

Contributors
Users owning this device
- Bastianilso (Notes: lineage os)
- Chronos (Notes: for testing)
- DancesWithCycles (Notes: tbd)
- Devbrones
- Hk (Notes: 1x, for HiL testing)
- Joshaspinall (Notes: Booting Mainline)
- Justsoup (Notes: Fun mainline device)
- Kf
- Mariob (Notes: pmOS hobbying and dreaming platform)
- Mtvec
- Multisn8 (Notes: edge with phosh)
- Nivs
- Polyfloyd (Notes: postmarketOS)
- Wrenix (Notes: postmarketOS edge with Phosh)
- Z3ntu
See also
- pmaports!2158 Initial merge request