Another #HowTo, this time how to use #Signal on #Android without giving it broad media permissions.
Signal does not use the 2 possible secure methods of accessint photos that Android offers, and clones #Whatsapp in that regard.
By insisting on needing access to read all your images, while being a complex app connected to the internet, and the only official versions containing proprietary #Google #blobs.
Links:
- https://community.signalusers.org/t/46828
- https://community.signalusers.org/t/55725
Other messengers like #SimpleX, #Element, #ElementX, #Fluffychat, #Conversations, #Threema and more save themselves the effort and just use the builtin options, improving security by design and unnecessary code bloat.
So, how can I use Signal without trusting it with all my images?
1. Use the "Share" Portal.
That is the obvious one, and a very nice feature on Android. It allows to share any media to an application and giving it access to only that.
This also works across the #WorkProfile or #PrivateSpace and can be used by Apps like #SaveTo to transfer files.
The workflow is often slower than just using the media chooser portal, but it works. It is what I use since years.
2. Android hacks
But this is not all. Setting a profile picture or group profile picture does not work through the share portal. So we use a Feature specific to Androids Sandbox:
- All apps can save files to various default directories like Pictures, Movies, Music, Downloads, Documents; without having read access to it.
- And all apps can access files they themself saved there.
Combining these two features, you can send a picture to Signal and use the "Save locally" button to save it from within the app.
The result is that this picture will be visible in Signals internal gallery and can be selected for profile and group pictures.
Obvious downsides are
- it is a stupid workflow
- it duplicates images that you need to delete manually afterwards
- pictures might be compressed twice, losing quality
But for this very limited purpose, it is kinda fine.
Still, @signalapp please solve this very old issue!