[FP4] Sailfish OS - 4.5.0.24 for Fairphone 4

hey @mal, have a happy new year!
since you’re here already: any news on the status of your port? i know your stability requirements from FP2, so i guess i could be happy with a 99% stable port from your pen. any chance there’s something to marvel at soon?

1 Like

Hello @mal, thank you for this hint. It works, but not as easy across different repositories :wink:.
Btw.: any thing new about your Ports for FP3 and FP4? My FP3 waiting in the drawer for further usage :wink:.
Many thanks for your continuing Fairphone support.

1 Like

Yes, the support for the Fairphone ports is very appreciated! I have used the FP2 with SFOS for many years!

Now I have a FP4 in my drawer which I don’t use because I can’t stand Android and a 2nd hand Sony Xoeria 10 III running SFOS.

I aIm going to sell one of the phones because I don’t consider it very sustainable to own two principally working phones, but I am not sure which one to keep and which one to sell. I would bite my ass if I sold the FP4 and then the port is released… :grin:

3 Likes

As much as I would like to see @mal make a release, I don’t think that will happen anytime soon. She/he seems to be involved in many projects (have a look at the SFOS forum).
If I were you I would either bite the bullet and go Android on the FP4 (no option for me personally) or stick with the Sony and sell the FP4 (would be my choice, although with a bad concious).
Of course, you could also use @dimac4455’s port, but I personally wouldn’t consider it due to the lack of encryption. But that’s obviously a rather controversial question and doesn’t need to be important for everybody. Anither reason why I would wait for @mal’s release is that she/he answers questions which @dimac4455 should answer :wink: (to be fair, if it is a school project, they are possibly still on vacation).

Disclaimer: I really appreciate what @dimac4455 is doing here, but in my personal opinion the priorities are misplaced. But as said above, this is of course a personal opinion and not an absolute value judgment.

1 Like

Hi friends!

I managed to install SailfishOS 4.5.0.24 on my FP4 :smiley:

So far everything works as planned, including:

  • Contact and Calendar synchronization (CarDAV/CalDAV)
  • Camera app is taking 12 MP pictures (3000x4000)
  • MTP file transfer to PC (set “always ask” in Settings → USB)
  • Email app with IMAP account
  • File browser (not default, should be installed from the Jolla store)
  • One-Time Passwords: SailOTP
  • Third-party app store: Chump GUI (go to System → Security → Allow untrusted software, then install rpm file for aarch64)
  • PureMaps (the app itself suggests to install from Chump instead of Jolla Store)
  • Telegram client: Fernschreiber (Chump)
  • screenshot (shortcut: Vol+ Vol- together)
  • GPS, tested with GPSInfo (Chump) and PureMaps
  • SSH (ssh defaultuser@192.168.2.15)

I took a slightly different path than the tutorial, as I didn’t flash TWRP but just booted on it :slight_smile:
Here’s a memo of the steps I followed:

1/ flash FPOS Android 11 (A.179)

plug to PC the FP4 in fastboot mode
flash_fp4_factory.bat (Windows) or .sh (Linux)

2/ Copy the image.zip on external SD

3/ boot to TWRP (without installing it)

adb reboot-bootloader
fastboot boot twrp-3.7.0_11-0-FP4.img

4/ in TWRP, erase and install the new OS

Wipe > Format Data > yes
Mount > check System
Install > zip
Reboot > Bootloader

5/ in fastboot, flash hybris-boot

fastboot flash boot_a hybris-boot.img && fastboot flash boot_b hybris-boot.img
fastboot reboot

6 Likes

Actually it seems that flashing TWRP is necessary if you want to use it later…
Once SailfishOS is installed; doing fastboot boot twrp-3.7.0_11-0-FP4.img doesn’t boot to TWRP even if fastboot says ‘OK’. Instead it is stuck at “Fairphone Powered by Android screen” :roll_eyes:

Flashing twrp to both recovery afterwards and it’s working fine :slight_smile:

Same behaviour for Ubuntu Touch, so it’s probably not SFOS-specific!

2 Likes

Can you run some Adnroid apps too ? Like some banking app or similar ?

Hello and welcome to the community :slight_smile:

Natively there is no support for Android app, so it’s not possible to run your banking app.
Only native linux app are available for installation…

(unlike LineageOS, Sailfish is not Android-based)

To be able to run Android apps on SailfishOS:

  • the proprietary solution, AlienDalvik, will never be available for Fairphone as it’s a community port.
  • it seems that the open-source solution, WayDroid -develpped for UbuntuTouch- might run (with limitations), as it was reported for others devices. Looking at the instructions it’s for advanced users… It’s not something I tried (yet?) :wink:

Thank you for your time @oli.sax. You reply is informative as I am not up-to-date with the community ports. By the way, I have tried Waydroid a few days ago under EndeavourOS (essentially Arch Linux) and I can tell that, while networking and apps installation works, banking apps do not work :-./.

Kind regards

1 Like

I’m afraid that you might be right. As there is no answer from @mal anymore, I think that it might be the safe bet to sell the Fairphone and keep the Sony :frowning:

I didn’t remember to answer, I still plan to continue porting. I did actually start a new clean build not long ago but didn’t yet test it.

5 Likes

That’s really great news, @mal :slight_smile: Hooray, maybe I can keep my Fairphone after all and sell the Sony? That would be really cool :slight_smile:
Can we support you in any way?

2 Likes

That is really great news!

1 Like

List updated :slight_smile:

For GPS it took me approximately 1 minute to get a fix :satellite: (walking outside)

And with the web browser, I’m not able to connect to this forum :sob:

2 Likes

The web browser thing is expected, as the current browser is based on FF78. But there is hope, as there is work on upgrading this ancient piece of software!

3 Likes

Some restrictions using this Sailfish port on the FP4 .
First:
I did not get bluetooth running. The dot is blinking but did not stay on. If i go back and entering bluetooth again, the dot is off. Therefore it is also not possible to connect anything to the phone.
Second:
On phonecall (e.g. to my mailbox) the speaker (with speaker dot on or off) are very loud. Reducing the volume did not work fluently it seams the speaker are on or off.

Everything else works fine (see above). Additional i use codereader, whisperfish ;-), Fotokopierer, Seaprint, MeeCast (replacing the jolla weather app), OSM Scout Server (have enought space for cards ;-)), mediaplayer, …
Some apps are not available for 64bit on openrepos (or not installable on the fp4).

Hope to get @mal s version soon ™ ;-). But also many thanks to @dimac4455 for showing Sailfish on FP4 is possible …

4 Likes

bluetoothctl list did not find any bluetooth device … :thinking:. Maybe the kernel did not have the binary blobs?

1 Like

I can confirm this behaviour on Sailfish OS 4.5.0.24

Just for curiosity, I flashed (*) the “old” previous image Sailfish OS 4.5.0.18 and in this case Bluetooth is working fine, I was able to be detected and pair with my other phone :slight_smile:

So this is clearly a regression of this version…

(*) Here is what I did: from SFOS 4.5.0.24 go to TWRP, format data, mount system, flash zip and reboot :slight_smile:
NOT flashing hybris-boot again, NOT flashing factory FPOS Android 11 either.
(I made a TWRP backup of /Data partition before format data)

4 Likes

Today I had a look at Waydroid on SFOS.
I followed the instructions here, installed the packages Waydroid, Waydroid Settings and Waydroid Gbinder Config Hybris from the Chum GUI.

Then when typing “waydroid init” in Terminal the first error occured :upside_down_face:

ERROR: Binder node “binder” for waydroid not found

Looking up for solution, I found in this article two hints to investigate:

  1. Install anbox-modules with dkms to install the required modules [1]

This repository contains the kernel modules necessary to run the Anbox Android container runtime. They’re split out of the original Anbox repository to make packaging in various Linux distributions easier.

  1. Add those kernel options and recompile the kernel:

CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=m
CONFIG_ANDROID_BINDERFS=n
CONFIG_ANDROID_BINDER_DEVICES=“binder,hwbinder,vndbinder”

The modules can either be compiled into the kernel (y), into modules (m), or not at all (n)

But are we sure the kernel is missing something? On UbuntuTouch, Waydroid works out of the box, perhaps they adapted the kernel accordingly?

Typing modprobe binder_linux [2] gives

modprobe: FATAL: Module binder_linux not found in directory /lib/modules/4.19.157-perf-g6e9050291f12-dirty

However, looking at the result of zcat /proc/config.gz | grep -Ei 'psi|binder' [3] it seems that similar commands to the ones mentioned above are included. This can be found as well in the kernel file :slight_smile: android_kernel_fairphone_sm7225/arch/arm64/configs/lineage_FP4_defconfig

CONFIG_PCI=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
CONFIG_ANDROID_BINDER_DEVICES=“binder,hwbinder,vndbinder”
#CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set

(Note that I’m not familiar with kernel so I’m not sure if it’s the good file to look at or not…)

To be continued, I guess I’ll try the “anbox-modules” path :wink:

2 Likes

I’m trying to understand better this kernel thing.

First, when typing this command ls -alh /dev/binder /dev/ashmem it seems that the files exists…

crw-rw-rw-    1 root     root       10,  57 Feb 22 14:41 /dev/ashmem
lrwxrwxrwx    1 root     root          20 Feb 22 14:41 /dev/binder -> /dev/binderfs/binder

But typing devel-su modprobe binder_linux doesn’t find anything, and devel-su lsmod is empty!

Reading about it [1], it seems that the letters m/y matter:

do you even have any modules (M)?
or is everything built-in (Y)?
Anything marked Y will always be active and won’t show up in lsmod.

And that to list all kernel modules, this is the way to go [2]:

[defaultuser@FP4 ~]$ zcat /proc/config.gz | grep MODULES
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_MODULES=y
CONFIG_MODULES_TREE_LOOKUP=y
[defaultuser@FP4 ~]$ zcat /proc/config.gz | grep =m
CONFIG_MSM_RDBG=m
CONFIG_DVB_MPQ=m
CONFIG_DVB_MPQ_DEMUX=m
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_QCOM_LLCC_PERFMON=m

By the way, I could go further with anbox-tools because the first step is to install dkms and I don’t know how to do that. devel-su pkcon install dkms says there is no package.

Later I’ll have a look to the differences with the Ubuntu Touch kernel, to see if here Binder is shipped as module or not…