Skip to content

Use app-specific storage for Google Play versions of the Android app#18321

Merged
LibretroAdmin merged 6 commits intolibretro:masterfrom
white-axe:no-external-storage
Oct 22, 2025
Merged

Use app-specific storage for Google Play versions of the Android app#18321
LibretroAdmin merged 6 commits intolibretro:masterfrom
white-axe:no-external-storage

Conversation

@white-axe
Copy link
Copy Markdown
Contributor

The Google Play versions of the RetroArch Android app have not been updated for a while due to the scoped storage requirement in Android API level 30 and the Google Play store requiring all new apps and app updates to target Android API level 35, thus enforcing scoped storage for all new apps and app updates on Google Play.

There was a fix for this in #16393 that would make all versions of the RetroArch Android app use the app-specific storage, which is allowed, but that was reverted because it would break people's workflows. This pull request changes only the Google Play builds to use app-specific storage and does not change the non-Google Play builds, which is hopefully a good compromise. This would, at least, get the app back on Google Play without disrupting any users who are not using the Google Play version.

As mentioned in #12181, we could use the Storage Access Framework (SAF) in addition to, or instead of, this, to allow RetroArch and libretro cores to access persistent storage so that users' ROMs don't get deleted whenever they uninstall the app. However, all libretro cores that use full paths would need to be changed to use the libretro virtual filesystem (VFS) interface, since the SAF offers only a Java-based API for accessing the directories and doesn't expose them to C/C++. The SAF also introduces a performance penalty for that reason. I suppose it's the decision of the maintainer of this repository with regards to whether or not the SAF + VFS thing is worth it.

cwyc and others added 6 commits March 30, 2024 01:12
Added move and rename methods
Provider notifies viewer to refresh view when files are changed
Bumped up TargetApi annotation for DocumentsContract.buildTreeDocumentUri. Could alternatively use androidx compat class.
It says on
https://developer.android.com/google/play/requirements/target-sdk
at time of writing that starting August 31 2025, "New apps and app
updates must target Android 15 (API level 35) or higher to be submitted
to Google Play".
The old version of com.google.android.play:core doesn't work with
Android API level 34 or later due to an incompatible change made to the
registerReceiver() function in the Android API.
@LibretroAdmin LibretroAdmin merged commit d43a641 into libretro:master Oct 22, 2025
31 checks passed
@white-axe white-axe deleted the no-external-storage branch October 22, 2025 14:00
@davidhedlund
Copy link
Copy Markdown
Contributor

davidhedlund commented Oct 23, 2025

@white-axe
Thank you very much for your workaround. Please also have a look at

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants