Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New app idea: Permissions Overview #5609

Closed
TheRealMystic opened this issue Jul 13, 2022 · 18 comments
Closed

New app idea: Permissions Overview #5609

TheRealMystic opened this issue Jul 13, 2022 · 18 comments
Labels

Comments

@TheRealMystic
Copy link

TheRealMystic commented Jul 13, 2022

Hello @d4rken

The idea I spoke about earlier is about an app that will list all app permissions in one place. Currently, Android shows app permissions in 3 different places:

  1. App Info page
  2. Special Access
  3. Permissions Manager

In order to control or just see what permissions an app has access to, the user has to go to 3 different places now.

This new app I'm suggesting will basically list every single permission an app has requested in one place, giving the user a bird's eye view of app permissions.

It will have two tabs at the bottom (or top):

  1. Apps: This will list all the apps installed. Clicking on any app will list every single permission that the app has requested, including those that show up under Permissions Manager and Special Access, along with their status (ON/ OFF, Allowed/ Disallowed, etc.)

  2. Permissions: This will list every single permission such as Contacts, Microphone, Camera, etc., including those that show up under Permissions Manager and Special Access. Clicking on each will show all the apps that currently has access to that permission.

This will also include internet permissions, SharedUserID status!

In both the above cases, it will be nice to segregate the output in two sections: One where apps have been allowed a permission or permissions that an app currently has access to, and another section where the same is denied.

Due to limitations of Android, this app will not allow for controlling permissions from within the app, atleast not without root. Instead, it will provide a bird's eye view of the entire permission set available to each app, and also provide a shortcut to the appropriate System Settings page, if the user wants to change any.

Currently, there is not a single app that can do this. So you may consider making one.

Thanks.

@d4rken
Copy link
Member

d4rken commented Jul 13, 2022

  • Permissions may be declared but not granted.
  • Are there permissions that can be granted, even though they have not been declared?

If all granted permissions must be declared, then this app could determine those purely by reading the APK file.

If it's important to know whether an app has not only declared a permission, but also been granted it. Can we determine this for all apps without root?

e.g. "All files access" is a special permission.
From code you determine it using this:
https://developer.android.com/reference/android/os/Environment#isExternalStorageManager()
but this is only for your own app. How would one check this for other apps?

Seems this is possible:
https://stackoverflow.com/questions/69735887/check-if-external-storage-manager-is-granted-for-another-app

🤔

@d4rken
Copy link
Member

d4rken commented Jul 13, 2022

So many apps already do this though:

none of them does this?

@TheRealMystic
Copy link
Author

TheRealMystic commented Jul 13, 2022

Since I mentioned specifically that there are currently no apps that do this, you could have assumed that I have done my homework. :)

They all show the same thing that is already available within system settings, i.e. they DON'T show all permissions in one place. Their only value addition is in segregating apps into risk categories, which may be useful for basic users. But for someone who goes into some more detail, none of those apps are helpful.

@TheRealMystic
Copy link
Author

  • Permissions may be declared but not granted.
  • Are there permissions that can be granted, even though they have not been declared?

If all granted permissions must be declared, then this app could determine those purely by reading the APK file.

If it's important to know whether an app has not only declared a permission, but also been granted it. Can we determine this for all apps without root?

e.g. "All files access" is a special permission. From code you determine it using this: https://developer.android.com/reference/android/os/Environment#isExternalStorageManager() but this is only for your own app. How would one check this for other apps?

Seems this is possible: https://stackoverflow.com/questions/69735887/check-if-external-storage-manager-is-granted-for-another-app

🤔

Permissions can be granted, even though they may not be declared - for example, WiFi control, Modify System Settings, etc. that show up under Special Access. I often find some apps have been automatically granted these permissions without the user even knowing. So it becomes a tedious task to go through each item one by one when wanting to check for which permissions an app has access to.

I don't know much about the links you have shared as I am not a programmer or someone with specialist IT knowledge.

@d4rken
Copy link
Member

d4rken commented Jul 13, 2022

Can you give me an example of an app that has permission that it did not declare in the manifest?

On the surface this seems like a straight forward app. If the UI is not too complicated... Maybe I could make a open source project... What would it be named? 🤔

@TheRealMystic
Copy link
Author

TheRealMystic commented Jul 13, 2022

Can you give me an example of an app that has permission that it did not declare in the manifest?

On the surface this seems like a straight forward app. If the UI is not too complicated... Maybe I could make a open source project... What would it be named? 🤔

I'm not sure what you mean by app manifest. I went through the Special Access page and found a long list of apps under both 'Change System Settings' and 'WiFi Control'. Usually, most apps that appear here are automatically granted these permissions. So I disable it for most of them, until I find something broken, in which case I enable these permissions for that particular app.

I found Solid Explorer show up in both places. I don't know why this file manager needs to change my system settings (in fact, I don't know which system settings this permission refers to). I have disabled the permission in both places and the app works fine, atleast for what I use it. This is the only file manager among the 10 or more file manager apps that I have installed which asks for 'Change System Settings' permission. So you could check it out.

As with name suggestion, how about Permissions Overview OR Privacy Overview OR Permissions Boss (since you have a maid :))

@d4rken
Copy link
Member

d4rken commented Jul 13, 2022

I'm not sure what you mean by app manifest.

Every app/APK has an AndroidManifest.xml which should declare all requested permissions. I'm unsure if it's technically possible to get a permission that wasn't declared, e.g. this is SD Maid:

    <uses-permission android:name="android.permission.READ_MEDIA_STORAGE"/>
    <uses-permission
        android:name="android.permission.WRITE_MEDIA_STORAGE"
        tools:ignore="ProtectedPermissions"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
    <uses-permission android:name="android.permission.ACCESS_SUPERUSER"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-permission android:name="android.permission.GET_PACKAGE_SIZE"/>
    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
    <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission
        android:name="android.permission.CLEAR_APP_CACHE"
        tools:ignore="ProtectedPermissions" />
    <uses-permission
        android:name="android.permission.PACKAGE_USAGE_STATS"
        tools:ignore="ProtectedPermissions" />

    <!--    Android 11-->
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />

@TheRealMystic
Copy link
Author

Until Android KitKat or so, Google Play Store would show all the permissions that an app needs during installation itself. In newer Android versions, they stopped doing that, and permissions prompt would show up when we use the app for the first time. Unfortunately, this doesn't include all those permissions that we see under 'Special Access'. So after installing the app, user has to go through each of those permissions under Special Access, and disable the ones that the user thinks the app should not have. Why does Android automatically grant some of those permissions? I see that most apps work just fine when those permissions are denied.

Somewhere the app must be requesting these permissions from the system, isn't it? Now whether these are part of the app manifest or not, you would know better. Did you check Solid Explorer manifest?

@d4rken
Copy link
Member

d4rken commented Jul 13, 2022

Unfortunately, this doesn't include all those permissions that we see under 'Special Access'. So after installing the app, user has to go through each of those permissions under Special Access, and disable the ones that the user thinks the app should not have.

Got any examples? Off the top of my hand I don't know any that granted implicitly / without prompt.

@dragonGod97677
Copy link
Collaborator

Oh a new app that will complete management app permission, i like this, and this is useful, with this app, a user dont need to navigate the settings for an app's permission like modify system settings, this app can open a shortcut

@d4rken
Copy link
Member

d4rken commented Jul 13, 2022

Did you check Solid Explorer manifest?

I didn't, but it's fairly easy to get the AndroidManifest out of an APK, here is the one from SolidExplorer, feel free to take a look yourself:
AndroidManifest.txt

Let's move this here 😉
https://github.com/d4rken/mystic-permissions

@d4rken d4rken closed this as completed Jul 13, 2022
@d4rken d4rken pinned this issue Jul 13, 2022
@d4rken d4rken changed the title #Off-Topic: ALL App Permissions in one place New app idea: Permission Overview Jul 13, 2022
@TheRealMystic
Copy link
Author

Unfortunately, this doesn't include all those permissions that we see under 'Special Access'. So after installing the app, user has to go through each of those permissions under Special Access, and disable the ones that the user thinks the app should not have.

Got any examples? Off the top of my hand I don't know any that granted implicitly / without prompt.

Yes, Solid Explorer.

Like I said, none of the apps that get 'Change System Settings' and 'WiFi Control' show any prompt. These 2 permissions are automatically granted for those apps. It is not clear which system settings are being allowed to be modified.

I use an App Lock (3rd party app) on my device which was automatically granted 'WiFi Control'. I don't know why an App Lock should control my WiFi.

Most users won't dig into these settings. And this permission doesn't show up in the App Info page in System Settings. So it can be quite misleading when permissions are being granted without user consent.

@dragonGod97677
Copy link
Collaborator

Oh nice, it was named after you @TheMysticS

@TheRealMystic TheRealMystic changed the title New app idea: Permission Overview New app idea: Permissions Overview Jul 14, 2022
@Manu99it
Copy link

App Opps from Rikka (dev of Shizuku) doesn't already list all app permissions? And it can also change them with shizuku (non root)

@nyabinary
Copy link

Yea it can plus design is better in my eyes at least

@12Lu-uchiha

This comment was marked as spam.

@12Lu-uchiha

This comment was marked as spam.

@dragonGod97677
Copy link
Collaborator

@12Lu-uchiha hi there, please delete those newly comments you made, as they are not related to the issue and the issue is closed and done too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants