Android 14 has a wallpaper problem
If you like to use third-party apps to customize your wallpaper, then you may be in for a shock if you're on Android 13 or newer.
Google has always made out as if it was committed to privacy, and over the last few Android releases, it would be hard to argue the contrary. The company has clearly been trying to improve the security of its platform while also adding new features in Android 13 and Android 14, but not every change has been a good one. In fact, one such change that the company is touting (quietly) as a security improvement seems to have been implemented by accident, and makes it so that third-party apps can't really access your wallpaper.
In a Mastodon thread shared by Android developer Zachary Wander, he outlines how the splitting of the READ_EXTERNAL_STORAGE permission into three separate permissions breaks apps that interact with the user's wallpaper. These three permissions are for accessing images, videos, and audio files, which is undoubtedly a good change. However, wallpaper APIs (including retrieving the user's wallpaper) also previously required this permission. Because they did not get a new permission as well, and Android 13 no longer supports granting the READ_EXTERNAL_STORAGE permission, there isn't an alternative.
This behavior was reported as a bug last year before Android 13's release, and Google failed to respond (aside from an initial request for more information) for a number of months. In May of this year, a Googler replied saying that it wouldn't be fixed, adding the following:
"We discussed the behavior with our product and engineering team and they were supportive of keeping the API only accessible to privileged system apps."
Why this matters is multi-faceted. If you use your phone with just the default wallpaper (or any of the other default wallpapers) and don't delve too deep into customization, then you're probably fine. However, any apps that can manage your wallpaper for you will be hurt by this. LWP+ for example requires access to backup, import, and export your wallpaper, but it won't be able to once it's required to target newer Android versions. This app is also used for setting custom Material You colors, but you won't be able to in the future unless this changes. Google's currently published timelines state that apps will need to target Android 13 by the end of August.
Even worse, Wander reports that he has had trouble with third-party launchers not being able to show his custom wallpaper. While we weren't able to replicate that exact behavior, we tested a number of third-party launchers on the latest Android 14 beta and noted that one launcher, Lynx Launcher, ran into permission-related issues. It gave an error saying that it couldn't get all of the permissions that it needed which we couldn't rectify, and we couldn't set a custom wallpaper from Google Photos.
We reached out to Nova Launcher for comment, and were told that while they had only seen permission-related issues cropping up on Samsung-related devices so far, a spokesperson for the company told me that "It's unfortunate to see that they've now marked it as intended behavior." One such permissions issue on a Samsung device that I was shown was that when setting a wallpaper from within Nova's wallpaper picker, an error that said "Permission denied" appeared, and the wallpaper wasn't set. These reports have only been coming from Samsung devices, and the team hasn't been able to replicate it on a Google Pixel yet.
To be clear, this API was never only accessible to privileged system apps, and it was a result of what appears to be an oversight in the splitting up of the READ_EXTERNAL_STORAGE permission that led to this situation in the first place. This permission actually still exists on Android 13 too, and the permission controller simply just denies it to any app requesting it if that app targets Android 13. Android's Permission Controller is a Project Mainline module, so Google could in theory rectify this behavior on Android 13 devices. As it stands, Google will soon require all apps to be targeted at Android 13 or newer to be updated, meaning that those apps will no longer be able to access your wallpaper.
Google's own documentation of the WallpaperManager class is similarly flippant. It states that "Starting in T, directly accessing the wallpaper is not possible anymore, instead the default system wallpaper is returned," and that from version U (Android 15), certain class methods should not be used at all.
If it were a security improvement, it's certainly strange that the company hasn't drawn attention to it all, and it's hard to see how exactly it would even be one in the first place. We've reached out to Google and will update this article if we hear back.
I’m Adam Conway, an Irish technology fanatic with a BSc in Computer Science and I'm XDA’s Lead Technical Editor. My Bachelor’s thesis was conducted on the viability of benchmarking the non-functional elements of Android apps and smartphones such as performance, and I’ve been working in the tech industry in some way or another since 2017.In my spare time, you’ll probably find me playing Counter-Strike or VALORANT, and you can reach out to me at [email protected], on Twitter as @AdamConwayIE, on Instagram as adamc.99, or u/AdamConwayIE on Reddit.