Android permissions

Heya! I was planning on promoting my game as entirely offline, but upon uploading the apk to google play i noticed it’s automatically saying it needs internet permission. it’s also saying it needs vibrate permission, which i dont understand either cause i have no vibrate related events lol.

Are those just things that gdevelop games ask for by default? I’m not using google play services or third party analytics and i dont have the game registered with gdevelop to make it collect statistics, so i’m not sure why it’s saying it needs android.permission.INTERNET. I do have some links to my privacy policy and terms and conditions, is it linked to that maybe?

You probably forgot to turn off analytics in your game project itself. GDevelop includes analytics for you as a developer.

This event to disable:

1 Like

Ah I see. So you just run that at the very beginning of the first scene that runs and it’s good to go? Thank you for the quick reply!

Yep, should get you going.

For more info on the metrics and what it is for, you can read more here: Games Dashboard [GDevelop wiki]

1 Like

Thank you so much silver!

1 Like

If once the metrics are disabled and the apk still asks for internet permissions let us know.

1 Like

Heya, it does actually still ask for internet permission even with that event disabling metrics (and, like I said I never registered my project either). Also, as a test I created an empty project, also not registered, that just included one scene and that event to disable metrics, and exported it and that also needed that same permission (the permission is kind of hidden, you have to press “all permissions” in the drop down menu while looking at the app and it’s listed there as “have full network access”.
I also see that permission on every other gdevelop game i could find on google play, as well as more or less 99% of apps in the play store including offline games with no ads or anything, so I figured I maybe didn’t need to worry about it and submitted my game lol. It’s not a runtime permission, internet is autogranted and not considered dangerous but if there is actually a way to get rid of that I would :slight_smile:

I think that internet access is just so commonly used that it is a permission enabled by default :thinking: I think it also might be necessary for cordova to access the webview (system browser) used to run the game (as all GDevelop games are web games in the background).

A empty project export in APK don’t require any permissions.
I’ve tested it some minutes ago.
I’ll replicate with the action request to an url.
Stay tune

1 Like

Even if you go into hidden permissions? :o

That’s where i see this -
image

@arthuro555 That’s what i was wondering, if it was just built in by default

There are no authorizations at all for export in the information panel according to Android.
Here another export with just a request to an API for get a name (Luke Skywalker)
There is no permissions required too.
https://builds.gdevelop-app.com/3c53e3f9-44e6-4c75-a1c4-a6197be08b47/game.apk

Is it possible that permissions are added when the user submits their APK to the Google Play Store?
I thought there was a permission step in this process.

I wondered that as well, but I see the same permissions on the test apks I created that weren’t uploaded on google play, and I also see them on the one that you linked lol
This is yours -
image
I’m feeling like it may actually be android, potentially even the android OS, just automatically enabling internet?

update: upon checking all of these apks on another phone, permissions is greyed out so it’s acting like there really arent any. I think this is more of an android thing than a gdevelop thing lol

I’ve run a test on Android 10, and i can see the “other app capabilities” in informations.
But there is nothing like that on Android 9.
I think it’s related to the system, like some default requirement, i don’t know really.

Could it be that the cordova/export config.xml is adding these permissions by default?

Nope the config.xml is not adding it. As i said I bet it’s either required by cordova or given by default to all apps because it is so commonly used.

1 Like