1

My users are complaining that my app now requires "run at startup" permission according the listing on Google Play. I have no need for this permission so would like to remove it from my app. I assume it must be from a library that I use but which one? In the "Merged Manifest" there is nothing about "boot" or "startup". I just have these:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

How can I track this down? My users are acting like I'm the anti-Christ for having this extra permission and I look stupid(maybe accurately) for not knowing why. Also, is there a list somewhere that shows what permissions correspond to what text on the Play store description page?

I want to address the comment about removing the permission. I understand how that is done and that's not what I'm asking. I need to know how to find the permission. Else, how can you remove something if you don't know what is is? Also, I may want to keep the permission but need to explain what it is for to my end-users.

@Mike is probably correct about WorkManager API. Still the question is how did he find that out? Why doesn't Android Studio show the permission in the Merged Manifest?

Also, even stranger is that I have removed the WorkManager API so the permission should be gone. I did check out the code for the released version and there are no left over references to WorkManager.

theJosh
  • 2,894
  • 1
  • 28
  • 50
  • 1
    This question is looking for a similar thing https://stackoverflow.com/questions/51493793/android-mystery-permissions-appear-in-build-manifest/ – Tyler V Jul 25 '18 at 00:13
  • 1
    Possible duplicate of [How to remove specific permission when build Android app with gradle?](https://stackoverflow.com/questions/31616334/how-to-remove-specific-permission-when-build-android-app-with-gradle) – emandt Jul 25 '18 at 00:14
  • It's possible that `WAKE_LOCK` is what they are seeing, but "run at startup" is usually `REQUEST_BOOT_COMPLETED`. If you're willing, post the link to the app, and we can perhaps better identify what is going on. – CommonsWare Jul 25 '18 at 00:16
  • @emandt The question is not about how to remove them, it's about how to tell where they're coming from and what text they show on the play store page. – Tyler V Jul 25 '18 at 00:16
  • `WAKE_LOCK` shows "prevent device from sleeping" on the play store page – Tyler V Jul 25 '18 at 00:17
  • @TylerV the question is exactly "I have no need for this permission so would like to remove it from my app. How can I track this down?" and the other link has the solution – emandt Jul 25 '18 at 00:21
  • Well the OP can clarify then. I read that (and the other two questions) as how do I see where they are coming from, not how do I remove them. "it must be from a library that I use but which one?" – Tyler V Jul 25 '18 at 00:35
  • 2
    If you're talking about your Solitiare apps, the Free Pack, at least, definitely has the `RECEIVE_BOOT_COMPLETED` permission in its manifest. It's for the `androidx.work.impl.background.systemalarm.RescheduleReceiver`, which is part of the `WorkManager` API. – Mike M. Jul 25 '18 at 00:42
  • "@Mike is probably correct about WorkManager API. Still the question is how did he find that out?" – I installed your app, and extracted the manifest. – Mike M. Jul 26 '18 at 00:23

1 Answers1

0

The easy way is from Android Studio. First build your app. Then from the build menu select Analyze APK. From there you can see the full AndroidManifest.

https://developer.android.com/studio/build/apk-analyzer

In my case the permissions did not show up in the Merged Manifest tab. Could be a bug. I think what happened is that I used a library during beta testing. Removed the code that uses library but still had a reference in build.gradle. That added the permission to the released apk's Manifest.

theJosh
  • 2,894
  • 1
  • 28
  • 50