From a9ec7caaac3b7364f6e5eabf73dabce35e5047db Mon Sep 17 00:00:00 2001
From: Daniel Chapin <chapin@google.com>
Date: Mon, 16 Oct 2023 15:39:23 +0000
Subject: [PATCH] Revert "Update new permission logic to use flagging."

Revert submission 25024821-b296056771-3

Reason for revert: Droidfood blocking bug: b/305648037

Reverted changes: /q/submissionid:25024821-b296056771-3
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:3cee7edf33438b74601e955244dffa3140984e64)
Merged-In: I55f78b2ff3bd7283f59dc2344a4052baf1c0b1dd
Change-Id: I55f78b2ff3bd7283f59dc2344a4052baf1c0b1dd
---
 core/api/system-current.txt                      |  2 +-
 core/java/android/app/usage/flags.aconfig        |  6 ------
 core/res/AndroidManifest.xml                     |  4 +---
 .../android/server/usage/UsageStatsService.java  | 16 ++++++----------
 4 files changed, 8 insertions(+), 20 deletions(-)

diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 1f20cb9c26f9..a1da9e02f23d 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -314,7 +314,7 @@ package android {
     field public static final String REMOVE_DRM_CERTIFICATES = "android.permission.REMOVE_DRM_CERTIFICATES";
     field public static final String REMOVE_TASKS = "android.permission.REMOVE_TASKS";
     field public static final String RENOUNCE_PERMISSIONS = "android.permission.RENOUNCE_PERMISSIONS";
-    field @FlaggedApi("backstage_power.report_usage_stats_permission") public static final String REPORT_USAGE_STATS = "android.permission.REPORT_USAGE_STATS";
+    field public static final String REPORT_USAGE_STATS = "android.permission.REPORT_USAGE_STATS";
     field @Deprecated public static final String REQUEST_NETWORK_SCORES = "android.permission.REQUEST_NETWORK_SCORES";
     field public static final String REQUEST_NOTIFICATION_ASSISTANT_SERVICE = "android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE";
     field public static final String RESET_PASSWORD = "android.permission.RESET_PASSWORD";
diff --git a/core/java/android/app/usage/flags.aconfig b/core/java/android/app/usage/flags.aconfig
index d1f90676a15f..afe87de1dbf5 100644
--- a/core/java/android/app/usage/flags.aconfig
+++ b/core/java/android/app/usage/flags.aconfig
@@ -7,9 +7,3 @@ flag {
     bug: "296061232"
 }
 
-flag {
-    name: "report_usage_stats_permission"
-    namespace: "backstage_power"
-    description: "Feature flag for the new REPORT_USAGE_STATS permission."
-    bug: "296056771"
-}
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 84690a7a617d..a54a563b1804 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -6122,9 +6122,7 @@
         android:protectionLevel="signature|privileged|development|appop|retailDemo" />
     <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
 
-    <!-- @SystemApi @hide
-         @FlaggedApi("backstage_power.report_usage_stats_permission")
-         Allows trusted system components to report events to UsageStatsManager -->
+    <!-- @SystemApi @hide Allows trusted system components to report events to UsageStatsManager -->
     <permission android:name="android.permission.REPORT_USAGE_STATS"
                 android:protectionLevel="signature|module" />
 
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java
index 2e6278d9a75d..1e09fce28740 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsService.java
@@ -53,7 +53,6 @@ import android.app.usage.AppStandbyInfo;
 import android.app.usage.BroadcastResponseStatsList;
 import android.app.usage.ConfigurationStats;
 import android.app.usage.EventStats;
-import android.app.usage.Flags;
 import android.app.usage.IUsageStatsManager;
 import android.app.usage.UsageEvents;
 import android.app.usage.UsageEvents.Event;
@@ -2127,15 +2126,12 @@ public class UsageStatsService extends SystemService implements
         }
 
         private boolean canReportUsageStats() {
-            final boolean isSystem = isCallingUidSystem();
-            if (!Flags.reportUsageStatsPermission()) {
-                // If the flag is disabled, do no check for the new permission and instead return
-                // true only if the calling uid is system since System UID can always report stats.
-                return isSystem;
-            }
-            return isSystem
-                    || getContext().checkCallingPermission(Manifest.permission.REPORT_USAGE_STATS)
-                        == PackageManager.PERMISSION_GRANTED;
+            if (isCallingUidSystem()) {
+                return true; // System UID can always report UsageStats
+            }
+
+            return getContext().checkCallingPermission(Manifest.permission.REPORT_USAGE_STATS)
+                    == PackageManager.PERMISSION_GRANTED;
         }
 
         private boolean hasObserverPermission() {
-- 
GitLab