The Following 86 Users Say Thank You to Sfiet_Konstantin For This Useful Post: | ||
abyzthomas, afaq, aironeous, Amboss, anapospastos, Ancelad, Arpa, Artyom, asys3, b.cloanta, BluesLee, borghal, Boxeri, Bundyo, chemist, ck2nb, clovis86, d@niel, Dam, Daneel, dmelamet, dommau, ezameht, faenil, fullauto, gexc, handyAndy, HtheB, Iryus, jakibaki, jalyst, jberezhnoy, Jordi, juz, Kaacz, Kabouik, lal, Leinad, lkravovicz, locusf, Makeclick, Manatus, mankir, Markkyboy, MartinK, max_power, meemorph, Mikkosssss, mind_the_gap, minimos, MINKIN2, Mitrigol, mrsellout, mscion, nodevel, olf, OVK, pepa77, peterleinchen, pichlo, Rauha, rcolistete, richardski, sbock, Schturman, shanttu, sombrer0, ste-phan, TeHeR, ThomasAH, TMavica, totex, Tujutzki, Unreasonable Behaviour, Van-ess, velox, Victorious, Wanker, Watchmaker, willi6868, WilliePre, wnt, youmeego, zlatko, ZogG, [Knuckles] |
|
2014-03-26
, 12:54
|
Posts: 752 |
Thanked: 2,808 times |
Joined on Jan 2011
@ Czech Republic
|
#2
|
|
2014-03-26
, 13:28
|
Posts: 344 |
Thanked: 1,345 times |
Joined on Aug 2012
@ Paris, FR
|
#3
|
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
|
2014-03-26
, 16:31
|
|
Posts: 605 |
Thanked: 1,778 times |
Joined on Feb 2008
@ Helsinki
|
#4
|
The Following 4 Users Say Thank You to MSameer For This Useful Post: | ||
|
2014-03-26
, 17:25
|
|
Posts: 645 |
Thanked: 519 times |
Joined on Apr 2012
@ Finland
|
#5
|
The Following User Says Thank You to Mikkosssss For This Useful Post: | ||
|
2014-03-26
, 21:17
|
Posts: 344 |
Thanked: 1,345 times |
Joined on Aug 2012
@ Paris, FR
|
#6
|
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...
The Following User Says Thank You to Sfiet_Konstantin For This Useful Post: | ||
|
2014-03-26
, 21:30
|
|
Posts: 605 |
Thanked: 1,778 times |
Joined on Feb 2008
@ Helsinki
|
#7
|
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 ?
The Following 5 Users Say Thank You to MSameer For This Useful Post: | ||
|
2014-03-31
, 10:06
|
Posts: 344 |
Thanked: 1,345 times |
Joined on Aug 2012
@ Paris, FR
|
#8
|
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.
The Following User Says Thank You to Sfiet_Konstantin For This Useful Post: | ||
|
2014-03-31
, 18:12
|
Posts: 144 |
Thanked: 242 times |
Joined on Nov 2007
@ Finland
|
#9
|
The Following User Says Thank You to Penguin For This Useful Post: | ||
|
2014-04-01
, 13:41
|
Posts: 344 |
Thanked: 1,345 times |
Joined on Aug 2012
@ Paris, FR
|
#10
|
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?
The Following User Says Thank You to Sfiet_Konstantin For This Useful Post: | ||
Tags |
patchmanager, sailfish os |
|
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.
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
Video thanks to @fravaccaro
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).
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.
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.
patchmanager
Patches
Unlimited multitask: you can enter housekeeping mode only from the first pageDate on lockscreen seems to be broken, and breaks other patchesEvents view have a swipe feedback while it shouldn'tPatchmanager 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.
Developer of Friends Facebook client, patchmanager, Phonebot
Blogger at Jollafr and random thoughts on my personnal blog
Support my work
Last edited by Sfiet_Konstantin; 2014-11-23 at 17:45.