![]() |
[WIP] App / Tweak: patchmanager a system-wide patching system + homescreen tweak
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. https://pbs.twimg.com/media/BkYUFAFIAAA96vW.jpg Warning: system file patches can break your system, or worse, malicious patches can cause privacy / security issues Use with care, apply patches at your own risk. Warning: patching homescreen QML files can brick or damage your device. Use with care. Recovery is helpful to recover from bricking. There should always be a backup of lipstick code inside /opt/patchmanager/backups. Use the following code to recover broken lipstick files Code:
cd /opt/patchmanager/backups/usr/share/lipstick-jolla-home-qt5/qml/ Video thanks to @fravaccaro http://distilleryimage2.ak.instagram...c9e093e6_8.jpg Gallery video patch I have developed a small patch that provides a better UI for the video player in gallery. See this blog post for more information. (Note that the package in this blog post is not using patchmanager) Unlimited multitasking Want to have more than 9 multitasking windows ? Well, you can ! Applying unlimited-multitask patch from sailfishos-patches-advanced package, you will enjoy several pages of multitask windows. This patch is still being developed, and there are known issues. However, it can be used right now. Don't forget to restart lipstick after applying the patch (there is an option in patchmanager). https://pbs.twimg.com/media/BkKRJv8IEAAbXPO.jpg Control center Replacing the right ambience switcher panel, you can find the control center. It will (at some point), be extensible with widgets, but right now, you can find the switches from jolla-settings app. https://pbs.twimg.com/media/BkSBxfuIcAA4eRi.jpg Vibrate when call established A feature I wanted long time ago is to have a vibration when a phone call is established. A patch is now included in sailfishos-patches-base to perform this. Get it I will use OBS to build my packages, and use OpenRepos to distribute them. You can try OBS packages if you want, but I recommand OpenRepos. (Except for pandora enabled lipstick) If you like my work, please also consider a donation :) recommended builds
Not recommended ones Installation process
Note that before uninstallation, please unapply all patches. Troubleshooting If you brick your device in pandora mode, follow these steps.
Code:
cd /opt/patchmanager/backups/usr/share/lipstick-jolla-home-qt5/qml/ patchmanager
Patches
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.
|
Re: [WIP] App / Tweak: Introducing patchmanager, a system-wide patching system
Thank you, great idea!
Maybe you already did, but in case you did not, I would suggest looking into how webOS community did this: http://www.webos-internals.org/wiki/...ion_Technology There are years of work behind their patch framework and given that webOS is pretty much all about patches, I'd call this infrastructure a state-of-art. EDIT: Here is the code: https://github.com/webos-internals/ausmt |
Re: [WIP] App / Tweak: Introducing patchmanager, a system-wide patching system
Quote:
|
Re: [WIP] App / Tweak: Introducing patchmanager, a system-wide patching system
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... |
Re: [WIP] App / Tweak: Introducing patchmanager, a system-wide patching system
So if you do UI tweaks check my most wanted tweaks. :)
http://talk.maemo.org/showthread.php?t=92920 |
Re: [WIP] App / Tweak: Introducing patchmanager, a system-wide patching system
Quote:
EDIT: or do you want to do that in runtime ? |
Re: [WIP] App / Tweak: Introducing patchmanager, a system-wide patching system
Quote:
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. |
Re: [WIP] App / Tweak: Introducing patchmanager, a system-wide patching system
Quote:
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. |
Re: [WIP] App / Tweak: Introducing patchmanager, a system-wide patching system
How about disabling lipstick.service and providing own customized lipstick service that makes systemd to start a wrapper which sets LD_PRELOAD and starts lipstick as privileged?
|
Re: [WIP] App / Tweak: Introducing patchmanager, a system-wide patching system
Quote:
|
All times are GMT. The time now is 02:13. |
vBulletin® Version 3.8.8