Defender app update (harbour-defender) - my very own ‘Sailfish Devember’


Please use exact commands as below once more (note the asterisk at the end):

P.S.: I had left out the alien, so use corrected commands, please…


[root@VollaPhone etc]# find . -name 'host*'


[root@VollaPhone etc]# find . -name 'host*'


[root@VollaPhone etc]# find /opt/alien/system/etc/ -name 'host*'
find: /opt/alien/system/etc/: No such file or directory

My opt: /opt/sdk … that’s it.

-rw-r–r-- 1 root root 2000199 Mar 9 12:45 /etc/hosts
-rw-r–r-- 1 root root 0 Mar 9 12:44 /etc/hosts.editable
[root@VollaPhone etc]# ls -l /system/etc/host*
-rw-r–r-- 1 root root 56 Jan 1 2009 /system/etc/hosts

Okay, good news first: I seem to see why the update loops.
Bad news: I do not understand why this happens on your phone.

Please do me a favor and do a
pkcon remove harbour-defender; pkcon install harbour-defender
and show me again the output of
ls -l /system/etc/host*

I’ve already removed harbour-defender and added hosts-adblock which I’ve modified and which conflicts.

But, I’ll do this once.

[root@VollaPhone ~]# ls -al /system/etc/host*
-rw-r–r-- 1 root root 56 Jan 1 2009 /system/etc/hosts

Which looks identical.

TBH I do not understand :confused:

As this is executed postinstall:
[ -f %{_a1configdir}/hosts.editable ] && echo "%{_a1configdir}/hosts.editable exists" || cp %{_a1configdir}/hosts %{_a1configdir}/hosts.editable 2>/dev/null || :
with _a1configdir=/system/etc

So maybe is /system/etc somehow write protected on your device?
ls-al /system/etc/.*

Or can you do a
cp /system/etc/hosts /system/etc/hosts.editable
manually (as root)?
(with the hosts.editable defender will work)

I fixed some python code which would auto-create that missing hosts.editable file (causing the loop). But maybe that would also fail on your side as above mentioned code line should do this after installatuon!

So if you would like to be my “guinea pig” then private message me your e-mail and I can send you latest 0.5.3 rpm before releasing it.
Here on mine it works… :smiley:

total 5280
drwxr-xr-x 1 root root 4096 Feb 12 17:26 .
drwxr-xr-x 27 root root 4096 Mar 4 11:40 …
drwxr-xr-x 69 root root 4096 Jan 1 2009 app
drwxr-xr-x 1 root root 4096 Feb 12 17:26 bin
-rw------- 1 root root 3267 Jan 1 2009 build.prop
-rw-r–r-- 1 root root 89089 Jan 1 2009 compatibility_matrix.xml
drwxr-xr-x 1 root root 4096 Mar 4 13:54 etc
drwxr-xr-x 2 root root 4096 Jan 1 2009 fake-libs
drwxr-xr-x 2 root root 4096 Jan 1 2009 fake-libs64
drwxr-xr-x 2 root root 12288 Jan 1 2009 fonts
drwxr-xr-x 6 root root 4096 Jan 1 2009 framework
drwxr-xr-x 1 root root 4096 Feb 12 17:26 lib
drwxr-xr-x 1 root root 4096 Mar 4 13:54 lib64
drwxr-xr-x 3 root root 4096 Jan 1 2009 media
drwxr-xr-x 57 root root 4096 Jan 1 2009 priv-app
drwxr-xr-x 2 root root 4096 Jan 1 2009 product
-rw-r–r-- 1 root root 5235173 Jan 1 2009 recovery-from-boot.p
drwxr-xr-x 8 root root 4096 Jan 1 2009 usr
lrw-r–r-- 1 root root 7 Jan 1 2009 vendor -> /vendor
drwxr-xr-x 2 root shell 4096 Jan 1 2009 xbin

I see ‘root’ can write to it?

As for guinea pig, push your changes to a repo and I’ll compile it myself. and I have no private email. everyone, pay attention now, I am so, you can mail me an rpm if you wish. Or I can pull the src.

cp /system/etc/hosts /system/etc/hosts.editable
cp: can’t create ‘/system/etc/hosts.editable’: Read-only file system

Ah! Well, now that explains it, don’t it! I’m very distrustfull of /system ! /etc and the like. What is that?

If it isn’t in /etc, it doesn’t belong on my system :slight_smile: Sorry, I’m an old guy who rips systemd out of systems, bit by bit until they function by design.

1 Like

Now, that explains it! 25 posts later :slight_smile:
You said Volla phone and SFOS3.4, right?
Jolla does not support Volla officially so this is a community port, or?
Maybe something during packing went wrong?
Ping the porter(s) and let them know…

At least I am happy that (again) defender is not the one to blame :wink:
And I think I fixed / enhanced some other feature because of this ‘journey’. :smiley:
Thank you for being patient and providing details.

Ok, I’ll ping piggz and see what he says… thanks for sticking to it.

It seems like you may be making an error (freenode->sailfishos-porters):

<poetaster userland guy says, sigh, it’s not me, it’s the community port.
<poetaster I say, you make assumptions that are not warranted.
<T42 <elros34 depends on port but most use /system from lineage and that is mounted as read-only.
<mal yes, very few community ports have /system as rw
<poetaster hmm. so he’s shooting self in foot. his app will fail on many ports.
<poetaster I’ll tell him.

soo, you should probably not assume /system is writable. I don’t get why you do? /etc + jails will work, or not? Or are you trying to service the android stuff? probably?

Are you suggesting your defender app ONLY runs on one or two phones?

I mean, I’ve already replaced it with a script. But I think you should try a little harder.

my defender stopped working, i only used mvps, is it not updated anymore?


Just refreshed/updated only MVPS and back to other configuration and no problems…

Hm, pity, for me I’m stuck in update loop. I disabled now all lists and he is still updating. Just this morning I saw ads where they usually with mvps do not appear :frowning:

Take a look here regarding the update loop.
Or open cli and fire
rm ~/.config/harbour-defender/update

Is internet connection working fine?

Hmpf, the above update loop killing is not working for me, even after a restart its in the update loop.
I have no “~” character on my vkb in the terminal ’ (
I removed and reinstalled defender, now ads are blocked but I can not open defender application to look whats going on.
Very spooky

I added support in the application to get rid of that update loop.
Please do note that the update itself is running under root and might still be looping.
So a reboot, or uninstall/install or issuing a
devel-su systemctl restart harbour-defender
might benecessary.

Oh yes, you have. Push the Shift (Hochstelltaste) and look in the upper row, fourth from the right (same location as in toeterm).

So that means defender updated your hosts file. :slight_smile:


Indeed spooky! :slight_smile:
And I confirm. I ran into this already on my X but was about to flash so I did not care.
But yesterday it happened to me on the tablet as well:
the application does not start when the icon is clicked from the app drawer. BUT it starts just fine when executed from console.
It happened after installing/uninstalling/installing/installing-local…
But I could not find any reason for this!? :frowning: (maybe firejail? Nope, see below, happened also on 3.4.0)
A simple restart of lipstick, either using Sailfish utilities restarting home screen or devel-su systemctl-user restart lipstick or a reboot cures.

If anybody has experienced this as well or knows something about it, please post.

Maybe it is worth another [4.0.1] (or even earlier [3.4.0]? as that version is on tablet where it happened as well) bug report?

1 Like

Oh man, I like this forum (and together). So many helpful hints :slight_smile: Ok, now I got to know where “~” is. I also ran the update of defender, restarted it and lipstick and now the gui appeares again and I can see that mvps list is there and up and running. Thanks for all the help.
Regarding firejail I read a bit about it (before updating my device) but do not really know what it is and what it does :smiley: I forgot anything about what I read. Such a shame sometimes but I’m really not a coder of the quality of most people here. In my job its kind of the other way around :smiley:

1 Like

Just a note, since I reflashed my Vollaphone trying to debug sensors, I’ve reinstalled (on 3.4) defender and it works as expected. Both hosts and db behaviour.

1 Like

@peterleinchen I just saw your comment on openrepos, and replied there. But to ping here, the build for aarch64 works quite fine when building through the Sailfish IDE.
I just extract defender.conf from your latest armv7hl rpm, and rename it to defender_default.conf and put it in qml/python. After that, building with the IDE is a snap.

1 Like