Starting May 5th, you must let us know why your app requires broad storage access

Please provide the following:

  1. SDK Version: 40.0.1
  2. Platforms(Android/iOS/web/all): Android/iOS/
  3. Add the appropriate “Tag” based on what Expo library you have a question on.

Hi. I got this notification inside the Google Play Store.
Starting May 5th, you must let us know why your app requires broad storage access with content saying We've detected that your app contains the requestLegacyExternalStorage flag in the manifest file of 1 or more of your app bundles or APKs.

The app does not require access to write files, just to read from Photo Library… Do you if it’s a matter of removing some permissions or this is tied to SDK 40 ?

Here is my android permissions set:

"permissions": [
        "ACCESS_COARSE_LOCATION",
        "ACCESS_FINE_LOCATION",
        "CAMERA",
        "READ_PHONE_STATE",
        "READ_EXTERNAL_STORAGE",
        "WRITE_EXTERNAL_STORAGE",
        "VIBRATE",
        "WAKE_LOCK",
        "com.htc.launcher.permission.READ_SETTINGS",
        "com.majeur.launcher.permission.UPDATE_BADGE",
        "com.sec.android.provider.badge.permission.READ",
        "com.sec.android.provider.badge.permission.WRITE"
      ]

I might have overloaded this so I appologize. But all I need is to make sure people can upload Photos and take Photos with their camera (in terms of what’s related to files). Is external_storage needed for that?

2 Likes

in sdk 41 we added support for the storage access framework, which is less “broad”. more info in fyi/android-r.md at master · expo/fyi · GitHub and you can read about sdk 41 in https://blog.expo.io/expo-sdk-41-12cc5232f2ef

@notbrent, sorry, I bit confused where to start. Was checking the links and those seem to talk about the expo-media-library, but I am currently using expo-image-picker with Permissions.askAsync(Permissions.CAMERA_ROLL) and Permissions.CAMERA. Does that affect me? Looking at the latest docs for the image picker, only things I am doing wrong is not using Permissions.MEDIA_LIBRARY instead of CAMERA_ROLL and asking permissions via ImagePicker instead of expo-permissions?
And what do I do with the permissions set in app.json?

Hi I have the same warning from the google play store with permissions of

"permissions": []

Hi, I have received the same email. Has anyone found a solution for expo 40?

1 Like

hi there!

it’s hard to parse out exactly what google wants from us here. you can read more discussion on this in this reddit thread: https://www.reddit.com/r/androiddev/comments/mqzls8/ominous_scoped_storage_warning_messages/

if you are have an expo managed workflow app, as far as i know there is no action needed on your behalf. i imagine almost every app on the play store would have received this same warning email.

we’ll investigate further and let people know what we find

7 Likes

the warning seems to have been based off of requestLegacyExternalStorage - which is included in expo-media-library, which is included in the expo runtime. (every expo library is included in the expo runtime when using expo build).

1 Like

I also received the same email. Below is a list of my permissions. How can I solve it?

  "permissions": [
                "VIBRATE",
                "BROADCAST_BADGE",
                "CAMERA",
                "CAMERA_ROLL",
                "ACCESS_FINE_LOCATION",
                "READ_EXTERNAL_STORAGE"
            ],
1 Like

we’ll follow up with a more detailed blog post soon, but it does seem like no action is needed on your part

7 Likes

Thank you very much for your efforts

1 Like

Thank you for dealing with this with high priority. What I’m surprised the most is that Google have given such a short timeframe to rectify the situation, 3 weeks is extremely tight for many developers especially for big companies.

3 Likes

I’m little confused about the expo response. Should I at least migrate my managed app to expo sdk 41? Will my app be removed from Google Play if I don’t do anything and keep my app on sdk 40?

2 Likes

I would suggest to wait for @notbrend updates in the next few days. I’m also on SDK40 but reluctant to upgrade now to SDK41 as some of my dependencies may break.

Furthermore, I’ve not read that SDK41 would solve the issue.

1 Like

We are running really short on time – May 5 is pushing it. If the upgrade is required, I’d better start now.

I have a bare workflow app that uses expo-media-library. It imports images from the media library and saves images taken in my app to the media library. I also use the app’s document directly to store images sometimes. Doesn’t seem like I need any broad access to storage. I already request permission to work with the media library. And anything else I’m doing on storage is in my app’s own directory. So why is my manifest requesting for more than that?

I received the same warning, I have an app with sdk 39, this only shows information, should I update it to sdk 41? I do not know what to do

Pinned a github issue about this with all the information we have so far: Google Warning regarding `MANAGE_EXTERNAL_STORAGE` and `requestLegacyExternalStorageflag` for Android apps · Issue #12603 · expo/expo · GitHub

If you have something to add, let’s continue the conversation there (but please make sure that whatever you add is relevant, otherwise it’ll just become a long list of “+ 1s” and “also getting this warning”)

4 Likes

I would suggest to wait for @notbrend updates in the next few days. I’m also on SDK40 but reluctant to upgrade now to SDK41 as some of my dependencies may break.

I’m little confused about the expo response. Should I at least migrate my managed app to expo sdk 41? Will my app be removed from Google Play if I don’t do anything and keep my app on sdk 40?