Loading packages/SystemUI/src/com/android/systemui/privacy/AppOpsPrivacyItemMonitor.kt +23 −16 Original line number Diff line number Diff line Loading @@ -138,17 +138,21 @@ constructor( ) { logger.logUpdatedItemFromAppOps(code, uid, packageName, active) if (code in OPS_LOCATION) { val procInfo = (activityManager.runningAppProcesses ?: emptyList()).find { it.uid == uid } val importance = procInfo?.importance ?: -1 // Use -1 if process not found val importance = procInfo?.importance ?: -1 // Use -1 if process not found logger.logLocationAppOps( uid, packageName, importance, !isBackgroundApp(uid), isSystemApp(code, uid, packageName), ) } dispatchOnPrivacyItemsChanged() } Loading Loading @@ -441,7 +445,10 @@ constructor( * make sure to update PermissionUsageHelper when changing this method. */ private fun isSystemApp(item: AppOpItem): Boolean { val user = UserHandle.getUserHandleForUid(item.uid) return isSystemApp(item.code, item.uid, item.packageName) } private fun isSystemApp(code: Int, uid: Int, packageName: String): Boolean { val user = UserHandle.getUserHandleForUid(uid) // Don't show apps belonging to background users except managed users. var foundUser = false Loading @@ -454,17 +461,17 @@ constructor( return true } val permission = AppOpsManager.opToPermission(item.code) val permission = AppOpsManager.opToPermission(code) val permissionFlags: Int = packageManager.getPermissionFlags(permission, item.packageName, user) packageManager.getPermissionFlags(permission, packageName, user) val isSystem = if ( PermissionChecker.checkPermissionForPreflight( context, permission, PermissionChecker.PID_UNKNOWN, item.uid, item.packageName, uid, packageName, ) == PermissionChecker.PERMISSION_GRANTED ) { ((permissionFlags and PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED) == Loading packages/SystemUI/src/com/android/systemui/privacy/logging/PrivacyLogger.kt +9 −2 Original line number Diff line number Diff line Loading @@ -47,16 +47,23 @@ class PrivacyLogger @Inject constructor( }) } fun logLocationAppOps(uid: Int, packageName: String, importance: Int, isForeground: Boolean) { fun logLocationAppOps( uid: Int, packageName: String, importance: Int, isForeground: Boolean, isSystemApp: Boolean ) { log( LogLevel.INFO, { int1 = uid int2 = importance str1 = packageName bool1 = isForeground bool2 = isSystemApp }, { "Location Op: $str1($int1) importance=$int2 isFg=$bool1" "Location Op: $str1($int1) importance=$int2 isFg=$bool1 isSystem=$bool2" }) } Loading Loading
packages/SystemUI/src/com/android/systemui/privacy/AppOpsPrivacyItemMonitor.kt +23 −16 Original line number Diff line number Diff line Loading @@ -138,17 +138,21 @@ constructor( ) { logger.logUpdatedItemFromAppOps(code, uid, packageName, active) if (code in OPS_LOCATION) { val procInfo = (activityManager.runningAppProcesses ?: emptyList()).find { it.uid == uid } val importance = procInfo?.importance ?: -1 // Use -1 if process not found val importance = procInfo?.importance ?: -1 // Use -1 if process not found logger.logLocationAppOps( uid, packageName, importance, !isBackgroundApp(uid), isSystemApp(code, uid, packageName), ) } dispatchOnPrivacyItemsChanged() } Loading Loading @@ -441,7 +445,10 @@ constructor( * make sure to update PermissionUsageHelper when changing this method. */ private fun isSystemApp(item: AppOpItem): Boolean { val user = UserHandle.getUserHandleForUid(item.uid) return isSystemApp(item.code, item.uid, item.packageName) } private fun isSystemApp(code: Int, uid: Int, packageName: String): Boolean { val user = UserHandle.getUserHandleForUid(uid) // Don't show apps belonging to background users except managed users. var foundUser = false Loading @@ -454,17 +461,17 @@ constructor( return true } val permission = AppOpsManager.opToPermission(item.code) val permission = AppOpsManager.opToPermission(code) val permissionFlags: Int = packageManager.getPermissionFlags(permission, item.packageName, user) packageManager.getPermissionFlags(permission, packageName, user) val isSystem = if ( PermissionChecker.checkPermissionForPreflight( context, permission, PermissionChecker.PID_UNKNOWN, item.uid, item.packageName, uid, packageName, ) == PermissionChecker.PERMISSION_GRANTED ) { ((permissionFlags and PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED) == Loading
packages/SystemUI/src/com/android/systemui/privacy/logging/PrivacyLogger.kt +9 −2 Original line number Diff line number Diff line Loading @@ -47,16 +47,23 @@ class PrivacyLogger @Inject constructor( }) } fun logLocationAppOps(uid: Int, packageName: String, importance: Int, isForeground: Boolean) { fun logLocationAppOps( uid: Int, packageName: String, importance: Int, isForeground: Boolean, isSystemApp: Boolean ) { log( LogLevel.INFO, { int1 = uid int2 = importance str1 = packageName bool1 = isForeground bool2 = isSystemApp }, { "Location Op: $str1($int1) importance=$int2 isFg=$bool1" "Location Op: $str1($int1) importance=$int2 isFg=$bool1 isSystem=$bool2" }) } Loading