Android wallpaper images can threaten privacy
fingerprintjs.com
fingerprintjs.com
Many apps I use daily require internal storage permissions and a bunch of them drop random dotfiles with magical IDs in there. Xiaomi even dumps a world readable unique device ID on the emulated SD card. Not all apps require external storage permissions, but even then there's tons of APIs that can be used to fingerprint the device.
Google is trying their absolute hardest to reduce the fingerprinting surface but as long as system APIs that work with user content like these exist, there will always be something to fingerprint users by. If everything else fails, you could just embed a webview that uses all the javascript stalking we've grown so accustomed to.
It's sad but I don't think you can prevent native code from fingerprinting your device. The sandbox just isn't tight enough and users are too willing to give out permissions.
I can see Google using a predefined set of colours in some update instead of the raw colour values to combat this, but that's only one of many ways apps abuse their users' devices. Unless app stores kick out apps that fingerprint devices, I don't think we'll see any non-fingerprinted devices any time soon.
They're fixing this with soon with scoped storage api.
My guess is that it'd be an OS which would perform tasks Google needs to stay as Google better than Android, and Google may sell these capabilities to devs to further enhance their bottom line.
Really? If true, it's so they will be the only source of such tracking info.
Google is like the one eye, it never stops seeking, looking, tracking you.
So... they're reducing their competition? Sounds anti-competitive. They wouldn't know anything about that though.
Hadn't heard about this. Like what?
Talk about throwing out the baby with the bath water on making Apple and Google the equivalent of government with the ability to define the rules on all software that anyone can exist without even considering using actual government :(.
It wouldn’t be a perfect replacement for actual color values but it would give more flexibility while not revealing the value.
Can there be a legal frame work where Google and Apple just take your source code and builds it on their farm, and app review is a source-code level review? And Developers that refuse to do these things are just blocked from developing on these platforms?
Why can't these apps be restricted to certain folders you need them to access?
I also feel like apps which abuse file system permissions to modify the user file system (e.g. create files useless to the user), let alone the system file system should be reported and banned.
Any app should have full rights to write anything to a special directory dedicated for it however. But you can set up a script to purge it or delete specific files from it on a schedule.
In KDE Connect you already need to use the modern API to pick a location for file browsing and it works fine. I picked the entire virtual storage area and that's what's available through remote browsing, but I could've picked a single directory. If all apps supported this, we'd be a lot better off.
Of course, there's a perverse incentive to put off the transition as long as possible so that stalking libraries can make more money. I think Google is moving very closely to forcing the new API with the release of Android 12, which would mean that most app developers can't really put off updating much longer.
Instead they tried to force through a completely new API that isn't compatible with anything that came beforehand, isn't compatible with code that must have a classic file handle and cannot easily be changed (native libraries, parts of the Android API itself), introduces exciting new bugs and has worse performance.
Plus at the same time they seem hellbent on hiding the true, original location of files on the file system, so a) if an app needs to ensure continuing access to a file, it needs to copy it to its own storage (Yay, dozens of copies of the same file) b) this breaks any usages and file formats that don't consist of a single, atomic, fully standalone file (HTML files, playlists, subtitles, multi-part archives, ...).
Please don't write this misleading stuff, nothing about SAF is new. It's just that it was easier for developers to hardcode paths and crap all over the storage than to open the file dialog.
Plus once apps developers were more seriously forced to use the SAF by recent Android versions, I've seen enough bug reports about actual shortcomings and performance problems of the SAF API on the Android bug tracker even for more recent Android versions.
And Google's simultaneous insistence on only allowing inter-app file sharing via content://-URIs has definitively broken all multi-file file formats, with no official replacement available.
Each restriction just makes certain ideas/project impossible or less ideal [1].
Honestly as an Android dev, I will prefer devices come with these restrictions by default. Then there should be a "I don't give a f*ck" button in the device developer options settings.
The option can be hidden behind 10 screens. Audit rails can be added. Anything but completely eliminating power-use in the name of privacy.
1 - I couldn't implement some telemetry in this project because google yanked the ability to read process stats: https://elvischidera.com/2020-11-23-building-distributed-and...
They could have required a permission instead. Or inform the user about the process I'm observing.
The data I was looking to gather has nothing to do with the user, but the task itself.
Another example is the restrictions introduced in the Bluetooth API.
Not all use of these APIs are intended for stalking. It doesn't make sense to keep "dumbing" down devices.
PS: I'm not arguing about the validity of your concerns. I just wanted to add an alternate take which I felt was missing in this thread.
This is a justified blowback. The file explorers and system utilities (apps users actually want to access the whole file system) should be given full rights. Access rights should be managed, not denied for all the apps altogether. I would introduce separate permissions for full file system (incl. OS and other apps files) access, access to user files space only, access to specific directories.
PS: Can anybody recommend a really good file system explorer for Android? I would pay any reasonable single-time price but no ads and no subscriptions please.
Even if it's just some inbound marketing blog spam bullshit, why would a company whose business it is to violate and exploit privacy want to post an article that will attract people who are concerned about privacy?
We don't believe in third party tracking and only focus on first party anti-fraud use cases. We publicly reveal any methods that we detect as being pure third party tracking privacy violations so that they get patched.
I know this is missing the point of the article, but this is not how the pigeonhole principle works.
I think the opposite is true: Nearly every app bundles an ad-serving or analytics library which uses fingerprinting techniques like this. Apps require login in addition to fingerprinting, not instead of it.
Analytics libraries are extremely easy to include. Some even get included without the knowledge of the developer. For example, when a Flutter app includes the Firebase library, it starts automatically sending user behavior data to Google. Specifically, it sends the title of every screen the user opens and how long they spend on it. This happens even on Flutter apps for iOS.
There seem to be apps that can automate changing your wallpaper, including an official Google one.
The only way to thwart fingerprinting is to make the data points the same on most devices. If you're changing the wallpaper, then it must change in sync with the other devices. Leaving the wallpaper at the default is simpler.
Color theme consists of at least 3 colors taken from the wallpaper.
At least 3 unique colors is enough to make the user potentially uniquely identifiable, depending on how rare the color combos are.
2²⁴ (R⁸G⁸B⁸) combinations for every color times 3 colors means 2⁷² combinations.
And there are color samples taken from potentially two different wallpapers.
Other apps have access to the colors picked for the theme generated from the wallpaper so they can theme themselves accordingly.
This means an app can use your color theme (of 3 or 6 colors) as a nearly unique fingerprint. The odds of collision for smaller apps (sub 1 million downloads) are pretty damn low.
https://developer.android.com/training/articles/user-data-id...
https://developer.android.com/reference/android/provider/Set...
google play services
Just checked mine, I can see Google, Facebook, Reddit and quite a lot others there
It is a little like looking at the morning sky.
It's on all phones, desktops, etc. And if I were to give it to you? Well. Maybe you're the NSA, maybe I'll be pulled off the street, thrown into a chair, and in a NDA-drugged, mildly confused state, be told "look, it is your desktop, see your familiar backgroud? You should enter your password."
No sir, I will not disclose my background image!! Sneaky! Good try though.
It's been clear to me for quite some while that the whole notion of trying to achieve privacy on the internet is broken - the paradigm we're now using (and have always been using) to achieve privacy is wrong. As no matter what steps we take - such as making browsers more private and less fingerprint prone to, say, sandboxing apps etc., etc. - someone sooner or later will always find ways around our best defenses. As it stands, it's an ongoing incremental battle over privacy that we citizens can never have any long-term certainty about.
Somehow our ID and personal data have to be separated from the hardware, software, means of transmission and IP addresses, etc. in ways that any chance of ever linking them are not just difficult but are also logically impossible. It's only then that we'd be in a situation where no matter the amount of hacking the 'system' would ever reveal or encroach upon users' privacy.
This wallpaper example may still be somewhat of a stretch to implement in practice but chances are it won't be so in the future; its existence only goes to illustrate my point.
If anyone ever manages to solve the problem in an easy implementable way then he/she will either be deemed a hero genius or a pariah. Which of these views one has will depend on which side of the political fence one's sitting.