Android permission explorer 🧑‍✈️

Overview

Permission Pilot

GitHub release (latest SemVer including pre-releases) Github All Releases Code tests & eval API

A new kind of app to help the user view apps and which permissions they use.

Born out of a feature discussion for SD Maid. Origin Story

Introduction

THE PROBLEM

This app was created to fill in a void that currently exists in the Android App Market. Android has app permissions scattered in multiple places, requiring the user to navigate through multiple pages within System Settings to properly configure permissions for installed apps. Moreover, there is no way to view the status of all permissions for any app from one place.

THE SOLUTION

Permission Pilot gives the user a bird's eye view of all permissions for installed apps from one place. Here's what you get:

  1. View snapshot of ALL permissions that every app has requested, their allowed/ denied status, battery management status, internet access, SharedUserID status, etc. You can see EVERYTHING about each installed app on your device from one place. This includes all hidden permissions too which are not visible under System Settings.

  2. Each icon you see is a 'clickable' shortcut that can quickly launch a configurable permission within System Settings, take you directly to the App Info page within System Settings, or take you to the App page on the Store where the app was downloaded/ updated from. This allows the user to quickly view and configure all permissions for each app, without the need to navigate through multiple pages within System Settings.

  3. The Permissions Bar shows the most important permissions at a glance, and clicking any of the icons on it will display a short description of the permission at the bottom of your screen, with a link to view the list of all apps that have requested that permission.

  4. Several Sort and Filter options have been provided that can be used to quickly view list of apps that satisfy your chosen criteria.

  5. Permission Pilot has support for apps installed in Work Profile and Multi-Users, though some of that is still Work-in-Progress (WIP).

LIMITATIONS

Android does NOT allow for configuring System Settings or App Permissions using a 3rd party app (on non-rooted devices). Permission Pilot, as such, can only show you all the information in one place, and also quickly launch the appropriate page within System Settings for any changes you may want to make to app permissions.

Downloads

Source Status
Google Play
Google Play Beta ?
Github Releases GitHub release (latest SemVer including pre-releases)
F-Droid (IzzyOnDroid)

Community

Want to chat? Join our discord server here.

Support the project

If you like the app, consider:

Screenshots

License

Permission Pilot's code is available under a GPL v3 license, this excludes:

  • Icons, logos, mascots and marketing materials/assets.
Comments
  • Origin Story

    Origin Story

    By @TheMysticS from d4rken/sdmaid-public#5609

    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:

    App Info page Special Access 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):

    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.)

    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.

    help/discussion wanted 
    opened by d4rken 71
  • Google Play Release

    Google Play Release

    Do we? Do I? want this?

    • [x] Graphic Assets
    • [x] Screenshots
    • [x] Description texts (could use the ones provided by @IzzySoft)
    • [x] Can we automate releases via fastlane
    enhancement help/discussion wanted 
    opened by d4rken 22
  • java.lang.NoSuchMethodError: No virtual method getProtection()I in class Landroid/content/pm/PermissionInfo

    java.lang.NoSuchMethodError: No virtual method getProtection()I in class Landroid/content/pm/PermissionInfo

    It works now, it doesn't crash at start (Issue #8).

    But when i do this: Wait for apps to load>tap any app>tap a permission, it crashes, it supposed to open the app's permission settings page

    On Permissions tab, when i tap a permission on Permissions tab, it supposed to list apps that uses that perm, but it just crashes

    (I'll upload a log tomorrow or the day after)

    bug 
    opened by dragonGod97677 18
  • Multi user (work-profile) support

    Multi user (work-profile) support

    If an app is installed in both the Main Profile and the Work Profile, only one of them is shown in the Apps tab.

    In the attached screenshot, you'll see that the File Manager is showing up only once, as being installed by Shelter app. So this app is from the Work Profile.

    I have the same app installed in the main profile too using SAI. It is not showing up.

    Screenshot_2022-07-17-20-15-12-95_ce34de6323cfaeb7a2880d42987990b1

    enhancement OutOfScope 
    opened by TheMysticS 18
  • Battery Optimisation Status

    Battery Optimisation Status

    This is an extension of the suggestion made here:

    https://github.com/d4rken-org/mystic-permissions/issues/71

    Can we add battery optimisation status and move internet access status to a new place:

    iMarkup_20220721_015915

    OR

    iMarkup_20220721_015958

    This section is usually empty and unused. It can be utilised to show more information. It will also help with the UI suggestion referenced above.

    enhancement 
    opened by TheMysticS 15
  • App Store Link

    App Store Link

    In the Apps tab, the install source icon is shown for each app on the right.

    Where the install source is Google Play Store or an OEM Store, please make that icon clickable to launch the app page in the respective store.

    enhancement 
    opened by TheMysticS 11
  • Siblings are not showing up

    Siblings are not showing up

    This refers to the following ticket:

    https://github.com/d4rken-org/mystic-permissions/issues/34

    The Siblings are not showing up under SharedUserID.

    App version v.0.2.4 I'm using Android 12 (Oxygen OS).

    bug Needs Info/Repro 
    opened by TheMysticS 11
  • Detection & filter for side-loaded apps

    Detection & filter for side-loaded apps

    From https://github.com/d4rken/mystic-permissions/issues/1#issuecomment-1186192801

    See for installer packagenames: https://github.com/d4rken/sdmaid-public/issues/5618

    /cc @TheMysticS

    enhancement help/discussion wanted 
    opened by d4rken 11
  • Permission

    Permission "how interesting is this" sort order

    Permissions in app details are not well sorted, we should sort them.

    Suggestion:

    • Primary sort order: GRANTED/DENIED/UNKNOWN
    • Secondary sort order: Interest level

    The second sort will be based on a number that we manually give each of the known permissions. We create a sort order similar to how the system shows the permissions to create a familiar experience for the user.

    enhancement 
    opened by d4rken 10
  • Extended Permissions Bar

    Extended Permissions Bar

    This idea is an alternative to the one suggested in #37 .

    How about adding a 'More' (can be replaced with an icon) button on the existing Permissions Bar (at the rightmost end) that will open a pop-up window which will list all the permissions (from those 30 or so permissions that users can configure) requested by each app in a vertical list?

    The implementation will be similar to the horizontal bar in terms of the following:

    1. All permissions requested AND granted will have the coloured icon.

    2. All permissions requested BUT denied will be greyed out.

    3. Permissions not requested won't be shown.

    These will be the features:

    1. The pop-up window will be scrollable.
    2. Icons will also have the name of the permission next to them.
    3. The buttons (icons) will be clickable and will launch the corresponding System Settings page for the app.
    4. Permissions will be sorted alphabetically in two sections: Enabled permissions on top, followed by disabled permissions..

    At some point in future, these buttons can also act as actual toggles that the user can use to toggle permissions.

    enhancement 
    opened by TheMysticS 9
  • Android 5 to 9 Links to system settings

    Android 5 to 9 Links to system settings

    I've introduced the abstraction PermissionAction which we can now use to give each permission a custom action, e.g. open their respective system screen if that is possible:

    https://github.com/d4rken-org/mystic-permissions/blob/ff577d72e866004f1db57175a70ddcf1e76a6a81/app/src/main/java/eu/darken/myperm/permissions/core/PermissionAction.kt

    So we have to add each permission and it's action here: https://github.com/d4rken-org/mystic-permissions/blob/ff577d72e866004f1db57175a70ddcf1e76a6a81/app/src/main/java/eu/darken/myperm/permissions/core/known/AKnownPermissions.kt

    Currently it all defaults to None

    hey @d4rken can you use this activity com.android.packageinstaller.permission.ui.ManagePermissionsActivity to open this Window when tapping on a app's permission. You can found that activity on com.android.packageinstaller and com.google.android.packageinstaller

    opened by dragonGod97677 9
  • View apps with permissions for entire category

    View apps with permissions for entire category

    In the Permissions tab, you can expand a category and tap a permission to view apps that have that permission, but you can't view apps that have any of the permissions in that category. For example, in the Calls category, I have 18/32, 15/24, 3/9, 4/11, 48/103, 6/10, 5/6, and 0/0. There's obviously going to be some overlap, and there's obviously apps that have some of these permissions but not others, so choosing any one permission will not show me all apps that have a phone permission. It would be useful to be able to long-press the category (Calls in this case) or have a button on it that can be tapped to show a list of all apps with any of the permissions within that category, which could then be sorted and filtered, e.g. from most permissions within the category to least.

    opened by vertigo220 0
  • Missing icons on

    Missing icons on "Calls" permissions

    Aside from the "Other" category, where it can be tricky coming up with icons for some of the permissions, all other categories have an icon next to each permission when expanded, except the "Calls" category, which has a phone icon next to the first five then a blank space next to the last three (PROCESS_OUTGOING_CALLS, ADD_VOICEMAIL, and MANAGE_ONGOING_CALLS). This makes it look like either they didn't render or there's something special about these, but it seems to me it's just a case of them being missed when assigning icons.

    opened by vertigo220 0
  • Add method to separate user vs system apps when viewing permission details

    Add method to separate user vs system apps when viewing permission details

    On the Permissions details pages, it says how many user and system apps are granted the permission, but there isn't a way to filter or sort them. For example, fo rthe WRITE_SETTINGS (modify system settings) permissions, I have 80/80 system apps with the permission granted and 1/35. The system ones are of no concern, but it would be nice to know what user app requests this potentially dangerous permission, especially considering it's the only one and therefore makes me wonder if it really needs it. The only way to do this is to scroll through all 80 apps and try to find the one user app in them, which I've done a few times and haven't found any that stand out as such.

    opened by vertigo220 0
  • Declared permissions

    Declared permissions

    Many of the apps say "Declares # permissions" but it's not really clear what this means. I assume it means how many are declared in the app manifest, but it doesn't make any sense, since there's always a discrepancy between declared vs requested/granted. Some are minor, such as 1 declared and 4-5 granted/requested, but some are extreme, e.g. 119 of 163 granted with 2 declared. This doesn't make any sense, and having some context would help, as well as being able to see what permissions are declared.

    opened by vertigo220 0
  • Possible incorrect information

    Possible incorrect information

    MiXplorer shows three icons in the Apps tab, one for storage, which is grey, and one for Bluetooth and another for network access, both of which are blue. When I open its details, it shows no permissions granted for storage, whereas all the various storage permissions (ACCESS_ALL_DOWNLOADS, MANAGE_DOCUMENTS, WRITE_MEDIA_STORAGE, MANAGE_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE, etc) all show as not granted. However, the app, a file manager, works, and if I go to the system permissions page for it, it shows "Files and media > All Files" which indicates that PP is not correctly seeing its permissions, and makes me wonder how many others are inaccurate. This is on a Samsung A71 running Android 12 an One UI 4.1 and the latest version of PP (1.1.2-rc0 ~ 3e5469f).

    opened by vertigo220 0
Releases(v1.1.2-rc0)
Owner
darken development
Community projects by @d4rken
darken development
mpv-android is a video player for Android based on libmpv.

mpv-android is a video player for Android based on libmpv.

null 1.1k Jan 6, 2023
FFmpeg compiled for Android. Execute FFmpeg commands with ease in your Android app.

FFMPEG video operations FFmpeg compiled for Android. Execute FFmpeg commands with ease in your Android app. Getting Started This project is provide in

Simform Solutions 277 Jan 2, 2023
Echo is a lightweight and minimal music player for Android, built with Android Studio and written in Kotlin

Echo - Echo, A light-weight, minimal music player for Android, with shuffle, favorites and audio visualization

Divins Mathew 0 Feb 7, 2022
Youtube Android Clone 🚀an Android Youtube Clone made out of XML and Kotlin

Youtube Android Clone ?? This app consumes The Youtube Api to fetch and display a list of popular videos, The app uses MVVM design pattern to allow se

Breens Robert 38 Dec 13, 2022
An extensible media player for Android

ExoPlayer ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and vi

Google 20.2k Jan 1, 2023
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

bilibili 31k Jan 3, 2023
Custom Android view with video player, loader and placeholder image

VideoPlayerView Custom Android view with video player, loader and placeholder image. To stay up-to-date with news about the library Usage Here is an e

Marcin Moskała 89 Nov 18, 2022
[] FFmpeg build for android random architectures with example jni

AndroidFFmpegLibrary This project aims to create working library providing playing video files in android via ffmpeg libraries. With some effort and N

AppUnite Sp. z o.o. Spk. 1.1k Dec 27, 2022
Emotion recognition by speech in android.

Vokaturi - Android Library Android port of the Vokaturi emotion recognition API. Overview Vokaturi is an emotion recognition software, that can unders

Owais 82 Nov 11, 2022
Free p2p cdn android github sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - 🚀 Vadootv 🚀

Android p2p cdn sdk to distribute load and reduce costs(https://peervadoo.com) Vadootv is a p2p sdk integration to reduce your video streaming costs b

Vadootv 40 Oct 5, 2022
A better Android VideoView with more Media Controller customization. 一个更好用的Android VideoView

Android UniversalVideoView 中文版说明请点击这里 UniversalVideoView is a Android widget helps playing video easier, which is similar with the Android system nati

Linsea 978 Nov 30, 2022
Android Texture VideoView having a variety of scale types like the scale types of ImageView such as fitCenter, centerCrop, centerTopCrop and more

Android-ScalableVideoView Looking for the extra scale types of ImageView? Check out ScalableImageView. Android Texture VideoView having a variety of s

Yoshihito Ikeda 1.1k Jan 7, 2023
Android Video Crop

?? Before using this library, read information below ?? This library is not more supported. If you want to add new feature or fix a bug, grab source

Dmytro Danylyk 390 Jan 2, 2023
Android music player example.

Android music player example.

Chien 21 Jul 29, 2022
A elegant and light weight music player for android

A elegant and light weight music player for android

Atul Patare 45 Dec 21, 2022
NOVA is an open source video player for Android

NOVA: opeN sOurce Video plAyer Overview NOVA is an open source video player for Android. It consists in a fork of the original Archos Video Player Com

NOVA 876 Jan 2, 2023
Simple and lightweight, yet polished and powerful Android video player based on ExoPlayer

Just (Video) Player Android video player based on ExoPlayer It uses ExoPlayer's extension-ffmpeg with all its audio formats enabled (it can handle eve

Marcel Dopita 677 Dec 28, 2022
Best material design music player for Android

Metro Material Design music player for Android music lovers Table of contents Downloads Differences between Metro and RetroMusicPlayer Screenshots App

Muntashir Al-Islam 684 Jan 1, 2023