permissions-dispatcher / PermissionsDispatcher

A declarative API to handle Android runtime permissions.
https://github.com/permissions-dispatcher/PermissionsDispatcher
Apache License 2.0
11.21k stars 1.44k forks source link

Doesn’t support Android 12 data access auditing #763

Open AlJu90 opened 2 years ago

AlJu90 commented 2 years ago

Overview

Android 12 data access auditing is not supported by this Library.

Expected

According to the documentation system creates null tags if no tags are declared in the manifest file, but everything is setup properly, so the right Attribution Tag should be used in every log-message:

2022-02-04 10:30:38.994 5773-5773/de.alex.example I/ExampleApplication$1[logPrivateDataAccess] - 103: Private data accessed. Operation: android:coarse_location Attribution Tag:locationAccessExample Stack Trace: android.app.AppOpsManager.noteProxyOpNoThrow(AppOpsManager.java:8389) androidx.core.app.AppOpsManagerCompat.noteProxyOpNoThrow(AppOpsManagerCompat.java:177) androidx.core.content.PermissionChecker.checkPermission(PermissionChecker.java:114) androidx.core.content.PermissionChecker.checkSelfPermission(PermissionChecker.java:134) permissions.dispatcher.PermissionUtils.hasSelfPermission(PermissionUtils.java:99) permissions.dispatcher.PermissionUtils.hasSelfPermissions(PermissionUtils.java:79) 2022-02-04 10:30:38.996 5773-5773/de.alex.example I/ExampleApplication$1[logPrivateDataAccess] - 103: Private data accessed. Operation: android:fine_location Attribution Tag:locationAccessExample Stack Trace: android.app.AppOpsManager.noteProxyOpNoThrow(AppOpsManager.java:8389) androidx.core.app.AppOpsManagerCompat.noteProxyOpNoThrow(AppOpsManagerCompat.java:177) androidx.core.content.PermissionChecker.checkPermission(PermissionChecker.java:114) androidx.core.content.PermissionChecker.checkSelfPermission(PermissionChecker.java:134) permissions.dispatcher.PermissionUtils.hasSelfPermission(PermissionUtils.java:99) permissions.dispatcher.PermissionUtils.hasSelfPermissions(PermissionUtils.java:79) 2022-02-04 10:30:40.674 5773-5773/de.alex.example I/ExampleApplication$1[logPrivateDataAccess] - 103: Private data accessed. Operation: android:fine_location Attribution Tag:locationAccessExample Stack Trace: android.app.AppOpsManager.noteOpNoThrow(AppOpsManager.java:8256) vqe.j(:com.google.android.gms@214815044@21.48.15 (190400-414534850):0) akkc.j(:com.google.android.gms@214815044@21.48.15 (190400-414534850):24) akjm.apply(:com.google.android.gms@214815044@21.48.15 (190400-414534850):0) akkf.j(:com.google.android.gms@214815044@21.48.15 (190400-414534850):24) akil.j(:com.google.android.gms@214815044@21.48.15 (190400-414534850):0) akiz.j(:com.google.android.gms@214815044@21.48.15 (190400-414534850):1) akil.j(:com.google.android.gms@214815044@21.48.15 (190400-414534850):0)

Actual

Instead the Attribution Tag is null when using this library:

2022-02-04 10:30:38.994 5773-5773/de.alex.example I/ExampleApplication$1[logPrivateDataAccess] - 103: Private data accessed. Operation: android:coarse_location Attribution Tag:null Stack Trace: android.app.AppOpsManager.noteProxyOpNoThrow(AppOpsManager.java:8389) androidx.core.app.AppOpsManagerCompat.noteProxyOpNoThrow(AppOpsManagerCompat.java:177) androidx.core.content.PermissionChecker.checkPermission(PermissionChecker.java:114) androidx.core.content.PermissionChecker.checkSelfPermission(PermissionChecker.java:134) permissions.dispatcher.PermissionUtils.hasSelfPermission(PermissionUtils.java:99) permissions.dispatcher.PermissionUtils.hasSelfPermissions(PermissionUtils.java:79) 2022-02-04 10:30:38.996 5773-5773/de.alex.example I/ExampleApplication$1[logPrivateDataAccess] - 103: Private data accessed. Operation: android:fine_location Attribution Tag:null Stack Trace: android.app.AppOpsManager.noteProxyOpNoThrow(AppOpsManager.java:8389) androidx.core.app.AppOpsManagerCompat.noteProxyOpNoThrow(AppOpsManagerCompat.java:177) androidx.core.content.PermissionChecker.checkPermission(PermissionChecker.java:114) androidx.core.content.PermissionChecker.checkSelfPermission(PermissionChecker.java:134) permissions.dispatcher.PermissionUtils.hasSelfPermission(PermissionUtils.java:99) permissions.dispatcher.PermissionUtils.hasSelfPermissions(PermissionUtils.java:79) 2022-02-04 10:30:40.674 5773-5773/de.alex.example I/ExampleApplication$1[logPrivateDataAccess] - 103: Private data accessed. Operation: android:fine_location Attribution Tag:locationAccessExample Stack Trace: android.app.AppOpsManager.noteOpNoThrow(AppOpsManager.java:8256) vqe.j(:com.google.android.gms@214815044@21.48.15 (190400-414534850):0) akkc.j(:com.google.android.gms@214815044@21.48.15 (190400-414534850):24) akjm.apply(:com.google.android.gms@214815044@21.48.15 (190400-414534850):0) akkf.j(:com.google.android.gms@214815044@21.48.15 (190400-414534850):24) akil.j(:com.google.android.gms@214815044@21.48.15 (190400-414534850):0) akiz.j(:com.google.android.gms@214815044@21.48.15 (190400-414534850):1) akil.j(:com.google.android.gms@214815044@21.48.15 (190400-414534850):0)

Environment

Reproducible steps

Issue can be reproduced on any small example app following the short documentation and the usage guide of this library.

DoozyDoz commented 1 year ago

@AlJu90 any luck on this?

AlJu90 commented 1 year ago

@DoozyDoz Nope, it is still broken