Patchmanager
patchmanager is the continuation of my work on system tweaks on SailfishOS. It allows managing patches in the whole system. Patching system files can allow UI tweaks, and a lot of other features. Only the imagination of developers is limiting here.

With the new update, Pandora enabled lipstick is no longer needed.

Don't install lipstick-pandora if you are running 1.0.7.16 or later version.

Unlimited multitask: you can enter housekeeping mode only from the first page

Control center: volume slider do not appear.

Do not unapply patches when uninstalling

Date on lockscreen seems to be broken, and breaks other patches

Events view have a swipe feedback while it shouldn't

Sort of feature: Vibration occurs from all successful calls connections, even from an incoming call

Patchmanager for developers

Patchmanager is hosted in the sailfishos-patches group on Github. Feel free to contribute, and bring more patches. All projects should have a decent README. If they don't, ask me here, on Twitter, or on IRC.

__________________I don't understand why would anyone use a random, insecure, proprietary chatting solution as WhatsApp, when you have so many safe and open alternatives.
Please, don't use it. If this doesn't convince you, read more here.
The worst thing is even if you don't use it, it takes one ***** who does and has your number in his/her contacts and your number is uploaded to servers of this insane company for 'anyone interested' to read.
Thumbs up for everyone supporting WhatsApp on Maemo. NOT

I had the same idea but mine was about patching the QML files embedded inside the binaries before they are handed over to the Qt declarative engine for parsing. I however never got to implementing it.

patching in memory might be a bit slower but it makes it possible to modify embedded QML files easily.

- applets in lipstick.
- you name it...

I explored this before. However, QML files embedded in binaries are sometimes optimized so that they are not in plain text anymore. (use a qrc to compile several QML files in release mode and use strings)

I explored this before. However, QML files embedded in binaries are sometimes optimized so that they are not in plain text anymore. (use a qrc to compile several QML files in release mode and use strings)

EDIT: or do you want to do that in runtime ?

They are compressed AFAICT but not optimized but it's trivial to decompress them.

If we have an LD_PRELOAD that can get access to the actual QML data (I don't yet know how) then we can capture the data, modify it and return the modified data to the QML "compiler". It's not resource intensive. I have done something similar in a Qt4 app of mine (replace certain strings during runtime in the embedded QML files). Don't ask me why I did that

EDIT: One advantage for patching during runtime is we can tie the patches to a certain OS release easily.

They are compressed AFAICT but not optimized but it's trivial to decompress them.

If we have an LD_PRELOAD that can get access to the actual QML data (I don't yet know how) then we can capture the data, modify it and return the modified data to the QML "compiler". It's not resource intensive. I have done something similar in a Qt4 app of mine (replace certain strings during runtime in the embedded QML files). Don't ask me why I did that

EDIT: One advantage for patching during runtime is we can tie the patches to a certain OS release easily.

I have looked about the possibility to LD_PRELOAD on lipstick. And sadly, this only happens if you manually launch lipstick as privileged. lipstick have a setgid that prevents LD_PRELOAD when started by systemd.

This means that we are seriously limited in this side. Another way to do is to patch and override some system packages, like lipstick-qt5.