From 95c4dc01cd11fb0598922c365e376cf067e0b88a Mon Sep 17 00:00:00 2001 From: mattgilbride Date: Mon, 18 Jul 2022 15:07:07 +0000 Subject: [PATCH] @EnforcePermission migrations - services.core Immediate calls to Context.enforceCallingOrSelfPermission. Fixes applied by Android Lint (cl/18432857). Bug: 232058525 Test: Existing tests still pass Change-Id: I4c3c70241ac18d1435af4b13c1b7da90f0b8bb70 --- core/java/android/os/INetworkManagementService.aidl | 3 +++ .../android/internal/app/procstats/IProcessStats.aidl | 3 +++ .../com/android/server/NetworkManagementService.java | 6 +++--- .../java/com/android/server/am/ProcessStatsService.java | 9 +++------ 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/core/java/android/os/INetworkManagementService.aidl b/core/java/android/os/INetworkManagementService.aidl index 91d6a9bf69cb6..40f7533a2800a 100644 --- a/core/java/android/os/INetworkManagementService.aidl +++ b/core/java/android/os/INetworkManagementService.aidl @@ -117,6 +117,7 @@ interface INetworkManagementService /** * Shuts down the service */ + @EnforcePermission("SHUTDOWN") void shutdown(); /** @@ -277,6 +278,7 @@ interface INetworkManagementService */ void setUidOnMeteredNetworkDenylist(int uid, boolean enable); void setUidOnMeteredNetworkAllowlist(int uid, boolean enable); + @EnforcePermission("NETWORK_SETTINGS") boolean setDataSaverModeEnabled(boolean enable); void setUidCleartextNetworkPolicy(int uid, int policy); @@ -308,5 +310,6 @@ interface INetworkManagementService void removeInterfaceFromLocalNetwork(String iface); int removeRoutesFromLocalNetwork(in List routes); + @EnforcePermission("OBSERVE_NETWORK_POLICY") boolean isNetworkRestricted(int uid); } diff --git a/core/java/com/android/internal/app/procstats/IProcessStats.aidl b/core/java/com/android/internal/app/procstats/IProcessStats.aidl index a2eca3aee13dc..84b2a354020f5 100644 --- a/core/java/com/android/internal/app/procstats/IProcessStats.aidl +++ b/core/java/com/android/internal/app/procstats/IProcessStats.aidl @@ -21,7 +21,9 @@ import android.os.ParcelFileDescriptor; import com.android.internal.app.procstats.ProcessStats; interface IProcessStats { + @EnforcePermission("PACKAGE_USAGE_STATS") byte[] getCurrentStats(out List historic); + @EnforcePermission("PACKAGE_USAGE_STATS") ParcelFileDescriptor getStatsOverTime(long minTime); int getCurrentMemoryState(); @@ -43,6 +45,7 @@ interface IProcessStats { * @param List of Files of individual commits in protobuf binary or one that is merged from them. * @param ProcessStats object that will be used to return the full set of merged stats. */ + @EnforcePermission("PACKAGE_USAGE_STATS") long getCommittedStatsMerged(long highWaterMarkMs, int section, boolean doAggregate, out List committedStats, out ProcessStats mergedStats); diff --git a/services/core/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java index 73d9cc759b109..d29e25c3faffc 100644 --- a/services/core/java/com/android/server/NetworkManagementService.java +++ b/services/core/java/com/android/server/NetworkManagementService.java @@ -862,10 +862,10 @@ public class NetworkManagementService extends INetworkManagementService.Stub { return list; } + @android.annotation.EnforcePermission(android.Manifest.permission.SHUTDOWN) @Override public void shutdown() { // TODO: remove from aidl if nobody calls externally - mContext.enforceCallingOrSelfPermission(SHUTDOWN, TAG); Slog.i(TAG, "Shutting down"); } @@ -1203,9 +1203,9 @@ public class NetworkManagementService extends INetworkManagementService.Stub { setUidOnMeteredNetworkList(uid, true, enable); } + @android.annotation.EnforcePermission(android.Manifest.permission.NETWORK_SETTINGS) @Override public boolean setDataSaverModeEnabled(boolean enable) { - mContext.enforceCallingOrSelfPermission(NETWORK_SETTINGS, TAG); if (DBG) Log.d(TAG, "setDataSaverMode: " + enable); synchronized (mQuotaLock) { @@ -1741,9 +1741,9 @@ public class NetworkManagementService extends INetworkManagementService.Stub { return NetdUtils.removeRoutesFromLocalNetwork(mNetdService, routes); } + @android.annotation.EnforcePermission(android.Manifest.permission.OBSERVE_NETWORK_POLICY) @Override public boolean isNetworkRestricted(int uid) { - mContext.enforceCallingOrSelfPermission(OBSERVE_NETWORK_POLICY, TAG); return isNetworkRestrictedInternal(uid); } diff --git a/services/core/java/com/android/server/am/ProcessStatsService.java b/services/core/java/com/android/server/am/ProcessStatsService.java index 7371d07183a92..33e407025ae60 100644 --- a/services/core/java/com/android/server/am/ProcessStatsService.java +++ b/services/core/java/com/android/server/am/ProcessStatsService.java @@ -564,10 +564,9 @@ public final class ProcessStatsService extends IProcessStats.Stub { return res; } + @android.annotation.EnforcePermission(android.Manifest.permission.PACKAGE_USAGE_STATS) @Override public byte[] getCurrentStats(List historic) { - mAm.mContext.enforceCallingOrSelfPermission( - android.Manifest.permission.PACKAGE_USAGE_STATS, null); Parcel current = Parcel.obtain(); synchronized (mLock) { long now = SystemClock.uptimeMillis(); @@ -619,11 +618,10 @@ public final class ProcessStatsService extends IProcessStats.Stub { * @return List of proto binary of individual commit files or one that is merged from them; * the merged, final ProcessStats object. */ + @android.annotation.EnforcePermission(android.Manifest.permission.PACKAGE_USAGE_STATS) @Override public long getCommittedStatsMerged(long highWaterMarkMs, int section, boolean doAggregate, List committedStats, ProcessStats mergedStats) { - mAm.mContext.enforceCallingOrSelfPermission( - android.Manifest.permission.PACKAGE_USAGE_STATS, null); long newHighWaterMark = highWaterMarkMs; mFileLock.lock(); @@ -708,10 +706,9 @@ public final class ProcessStatsService extends IProcessStats.Stub { return fds[0]; } + @android.annotation.EnforcePermission(android.Manifest.permission.PACKAGE_USAGE_STATS) @Override public ParcelFileDescriptor getStatsOverTime(long minTime) { - mAm.mContext.enforceCallingOrSelfPermission( - android.Manifest.permission.PACKAGE_USAGE_STATS, null); Parcel current = Parcel.obtain(); long curTime; synchronized (mLock) {