Project

General

Profile

Emulator Issues #12764

[Android] [Scoped Storage] Consider moving the user folder from Android/data/org.dolphinemu.dolphinemu to Android/media/org.dolphinemu.dolphinemu

Added by mbc07 10 months ago. Updated 10 months ago.

Status:
Questionable
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
Android
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Since version 5.0-15348, Dolphin complies with Scoped Storage requirements by storing the user folder under Internal Storage => Android => data => org.dolphinemu.dolphinemu. That folder, however, has restricted access and the transition hasn't been exactly smooth (we've seen phones that deny access to the folder even when accessed on a computer via USB, phones that hides the only system app that still has full access to the folder, among other related issues).

I've been watching how other apps that used to store content in bare folders at the root of the internal storage reacted since the Scoped Storage enforcement went live on the Play Store and noticed that a few opted to use Android => media instead of Android => data (e.g. WhatsApp). At first I thought only media files could be stored there but those apps are storing all kinds of files there. The most important benefit, however, is that the media folder doesn't have the same access restrictions of the data subfolder: any app can read/write files there, even in the folder of other apps and using that directory seems sufficient to comply with the Scoped Storage requirements.

I haven't investigated if there are other implications in using the Android\media folder that might affect Dolphin, but given the benefits it might be worth considering the switch, if feasible?

History

#1 Updated by JosJuice 10 months ago

  • Status changed from New to Questionable

getExternalMediaDirs is marked as deprecated by API 30. If I use it I bet Google is going to break it next year or something, once again giving us the headache of how to best migrate user data...

#2 Updated by JosJuice 10 months ago

  • Operating system Android added
  • Operating system deleted (N/A)

#3 Updated by mbc07 10 months ago

Well, that's a bummer.

Maybe we could provide an option to select between Android\data and Android\media, that defaults to Android\data and has a warning that it might stop working in future Android updates if the user changes the location to Android\media, similar to how we handle save states on Android? Another approach I could think of is keep using Android\data but provide an option to import whatever the user has put into Android\media to Android\data.

From the dev side, I agree the code for handling that will probably be ugly, but from the user side, not having to deal with workarounds that may or may not work (depending of the device) to access the user data folder might justify the effort...

#4 Updated by JosJuice 10 months ago

If someone else wants to implement an option to use Android/media/, I'd be willing to include it in Dolphin. But personally I'm just tired of dealing with scoped storage at this point...

Also available in: Atom PDF