Latest Blog Posts

Icon Pusher App July 2025

Anyone using the IconPusher app may have noticed that there's not been an update recently, the main reason for this is Google being difficult.

So to explain this, a couple of years ago Google changed their policy with how developers can access app details. By default now, the app can only get permissions of the app itself and system apps. If we want to gain access to other installed apps, we now need to add in a new permission into the config to allow it.

With this change, every update to the app I've submitted has been rejected, requiring me to submit an appeal explaining why my app needs this permission to be enabled.

While annoying, it was generaaly fine, my updates still got published, although somewhat delayed.... until last year anyway.
The last update I tried to publish was rejected as usual, and I sent my appeal explaining why the permission to grant access to all apps was required.... then.... my appeal was rejected. Apparently, the Icon Pusher app, with the sole function of accessing installed apps to submit to the site, doesn't qualify for needing the permission of accessing all the installed apps!

After sending multiple messages to Google, explaining why this permission is required, I gave up.

Soooo, I had been putting this off for ages, and I've recently received an email from Google threatening to delist the app if it's not updated.

Hopefully, I'll have more luck updating the app this time.

If not, I'll have to just start uploading releases for people to download.

Linux file permissions conundrum

Linux command line graphic

I've recently been setting up a new server and ran into a file permissions issue I hadn't encountered before, and it took me hours to figure out.

So I've been setting up IconPusher on the new server, the API runs as a WAR file over Jetty9 which takes the uploaded app icons and puts them in the directory for the img subdomain.

However, once this was running on the new server, no matter what I tried, I was given a 'read only filesystem'.

I checked the usual suspects of directory permissions, Apparmor and SELinux... everything looked as it should be.

What I did in the end was to check the Jetty service to see what conditions were in effect. to do this I ran the command:

sudo systemctl cat jetty9

and this highlighted the issue:

Under the Security section was this line:

ProtectSystem=strict

So now I knew this was the cause, I could whitelist the directory I'm writing to.

This can be achieved by entering the following command:

sudo systemctl edit jetty9 

And then entering the following:

[Service]
ReadWritePaths=/path/to/my/directory

This creates a new file at /etc/systemd/system/jetty9.service.d/override.conf so it can be modified here if preferred.

After adding this you need to reload the daemon:

sudo systemctl daemon-reload

And the jetty9 service:

sudo service jetty9 restart

Then you can check that the change is in effect with the following:

sudo systemctl cat jetty9

Icon Pusher v2.1.1

Not a huge amount to see in the latest update, but hopefully the general experience will be improved.

The API was upgraded to use KTOR v3.2.1 from v2.3.10, which involved a number of updates to get working.

The main reason for this change was to hope it addresses a rare issue where the API would randomly die without warning.

There was also a lot of restructure on the front end of the website, to help improve general performance.

Icon Pusher v2

Icon pusher was something I whipped up back in 2020. For those who don't know (the majority I imagine), icon pusher is a utility for icon pack developers to get the app details and icons they need to create their packs.

The idea of some hefty QOL changes have been on the cards for a while but have only recently been worked on. The main of which is the ability to select multiple apps at once and being able to download all the data in one go. On the original version of the site, to get the data for multiple apps you would have to go back & forth between all the apps, copying all the XML data and download each icon individually. While this did the job, it was pretty inconvenient.

Icon Pusher screenshot

Version 2.0 of the website is currently available as a beta version. While it's mostly there functionality wise, there are a few pieces which still need tidying up.