Skip to content

Doesn’t support Android 12 data access auditing #763

@AlJu90

Description

@AlJu90

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

  • Version 4.9.1 is used
  • Issue was observed on a Google Pixel 4 (Android 12) but should be reproducible on any device running Android 11 or 12

Reproducible steps

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions