mirfatif / PermissionManagerX

eXtended Permission Manager for Android - view, set, watch Manifest Permissions and AppOps
https://mirfatif.github.io/PermissionManagerX/help
GNU Affero General Public License v3.0
387 stars 34 forks source link

[Feature Request] Permission removal without root like Bouncer #8

Closed Thewisem closed 3 years ago

Thewisem commented 3 years ago

I would like to remove permission without root like Bouncer which makes it easier for me to remove permissions without root. :)

mirfatif commented 3 years ago

Thanks for the suggestion. If I understand it correctly what you are asking for is very limited as compared to what PMX can do. Let me try to explain.

What I understand is that the app you mentioned uses Accessibility to perform taps/clicks on user's behalf. In general context I'd call it AccessibilityApp in following lines. AccessibilityApp registers itself to get notified of the event when an app requests the user to grant a permission. If user grants the permission, AccessibilityApp asks the user if they want to revoke it automatically after the app goes to background. If the user agrees, AccessibilityApp waits for the next event when the user taps Home/Back button. AccessibilityApp then opens the app's info screen and revokes the permission previously granted by making taps on user's behalf.

This means that AccessibilityApp can automatically revoke only those permissions which can also be revoked by the user manually by opening the app's info screen. That's a really good feature, which spares the user of the hassle of manually revoking permissions after using the app, but PMX is not targeted to do that exactly. Using PMX you can view/grant/revoke all of the manifest permissions and AppOp permissions which can or cannot be granted using app's info screen. And the list of permissions which cannot be granted from GUI is very long.

For instance in stock Android there is no GUI setting to set or fine-tune these permissions:

and many other manifest and AppOp permissions.

There are also other permissions like

which are available through different GUI settings (listed under Advanced or in Special app access) and AccessibilityApp might not be offering to auto-revoke them.

In addition to these changeable permissions, PMX shows each and every permission which an app has requested but cannot be changed (because either it has Normal or Signature protection level or the permission provider is not installed):

and many others.

Also:

So the FIRST POINT is that what we can achieve using Accessibility features of Android is a very small subset of what PMX offers. There's no comparison. PMX provides all of the scattered (or otherwise unavailable) permission-related information and controls on a single screen so that you can watch and control them in a comprehensive and convenient way.

And the SECOND POINT is that, from a developer's perspective, the underlying details how PMX works are entirely different from how Accessibility works. So even if we consider using Accessibility to create a non-root and non-ADB version (as already requested in https://github.com/mirfatif/PermissionManagerX/issues/5), it'd be more feasible and logical to go for developing an entirely new app rather than injecting that functionality in PMX.

PMX works with ADB which is already a non-root option available on all devices (though there's a hassle involved to turn on the Wireless ADB after every reboot, at least up to Q). As mentioned in https://github.com/mirfatif/PermissionManagerX/issues/7#issuecomment-778622834 Scheduled Checks feature lets you get notified of any permissions which aren't according to your taste and you may take the desired action to revoke the permission.

Thewisem commented 3 years ago

Well I see this was asked before. Must be hard. Sorry for that. Just one more question. Why don't scheduled check option not be there in fdroid version

mirfatif commented 3 years ago

You don't need to be sorry. It's my pleasure to have explained. Some features are paid-only including Scheduled Checks. Developers are poor souls. They have families to feed, kids to educate :)

mirfatif commented 3 years ago

https://mirfatif.github.io/PermissionManagerX/help/help.html#faq32

Thewisem commented 3 years ago

Thanks for the help but my device is a special case where ADB of your app won't work. Also it seems this needs root which I did say in the query that I didn't want to do