Loading apex/statsd/service/java/com/android/server/stats/StatsCompanion.java +9 −5 Original line number Diff line number Diff line Loading @@ -38,11 +38,15 @@ public class StatsCompanion { private static final String TAG = "StatsCompanion"; private static final boolean DEBUG = false; static void enforceStatsCompanionPermission(Context context) { private static final int AID_STATSD = 1066; static void enforceStatsdCallingUid() { if (Binder.getCallingPid() == Process.myPid()) { return; } context.enforceCallingPermission(android.Manifest.permission.STATSCOMPANION, null); if (Binder.getCallingUid() != AID_STATSD) { throw new SecurityException("Not allowed to access StatsCompanion"); } } /** Loading Loading @@ -114,7 +118,7 @@ public class StatsCompanion { @Override public void sendDataBroadcast(long lastReportTimeNs) { enforceStatsCompanionPermission(mContext); enforceStatsdCallingUid(); Intent intent = new Intent(); intent.putExtra(EXTRA_LAST_REPORT_TIME, lastReportTimeNs); try { Loading @@ -126,7 +130,7 @@ public class StatsCompanion { @Override public void sendActiveConfigsChangedBroadcast(long[] configIds) { enforceStatsCompanionPermission(mContext); enforceStatsdCallingUid(); Intent intent = new Intent(); intent.putExtra(StatsManager.EXTRA_STATS_ACTIVE_CONFIG_KEYS, configIds); try { Loading @@ -142,7 +146,7 @@ public class StatsCompanion { @Override public void sendSubscriberBroadcast(long configUid, long configId, long subscriptionId, long subscriptionRuleId, String[] cookies, StatsDimensionsValue dimensionsValue) { enforceStatsCompanionPermission(mContext); enforceStatsdCallingUid(); Intent intent = new Intent() .putExtra(StatsManager.EXTRA_STATS_CONFIG_UID, configUid) Loading apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java +9 −9 Original line number Diff line number Diff line Loading @@ -398,7 +398,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void setAnomalyAlarm(long timestampMs) { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) Slog.d(TAG, "Setting anomaly alarm for " + timestampMs); final long callingToken = Binder.clearCallingIdentity(); try { Loading @@ -414,7 +414,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void cancelAnomalyAlarm() { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) Slog.d(TAG, "Cancelling anomaly alarm"); final long callingToken = Binder.clearCallingIdentity(); try { Loading @@ -426,7 +426,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void setAlarmForSubscriberTriggering(long timestampMs) { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) { Slog.d(TAG, "Setting periodic alarm in about " + (timestampMs Loading @@ -445,7 +445,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void cancelAlarmForSubscriberTriggering() { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) { Slog.d(TAG, "Cancelling periodic alarm"); } Loading @@ -459,7 +459,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void setPullingAlarm(long nextPullTimeMs) { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) { Slog.d(TAG, "Setting pulling alarm in about " + (nextPullTimeMs - SystemClock.elapsedRealtime())); Loading @@ -477,7 +477,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void cancelPullingAlarm() { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) { Slog.d(TAG, "Cancelling pulling alarm"); } Loading @@ -491,7 +491,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void statsdReady() { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) { Slog.d(TAG, "learned that statsdReady"); } Loading @@ -503,7 +503,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override public void triggerUidSnapshot() { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); synchronized (sStatsdLock) { final long token = Binder.clearCallingIdentity(); try { Loading @@ -518,7 +518,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public boolean checkPermission(String permission, int pid, int uid) { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); return mContext.checkPermission(permission, pid, uid) == PackageManager.PERMISSION_GRANTED; } Loading Loading
apex/statsd/service/java/com/android/server/stats/StatsCompanion.java +9 −5 Original line number Diff line number Diff line Loading @@ -38,11 +38,15 @@ public class StatsCompanion { private static final String TAG = "StatsCompanion"; private static final boolean DEBUG = false; static void enforceStatsCompanionPermission(Context context) { private static final int AID_STATSD = 1066; static void enforceStatsdCallingUid() { if (Binder.getCallingPid() == Process.myPid()) { return; } context.enforceCallingPermission(android.Manifest.permission.STATSCOMPANION, null); if (Binder.getCallingUid() != AID_STATSD) { throw new SecurityException("Not allowed to access StatsCompanion"); } } /** Loading Loading @@ -114,7 +118,7 @@ public class StatsCompanion { @Override public void sendDataBroadcast(long lastReportTimeNs) { enforceStatsCompanionPermission(mContext); enforceStatsdCallingUid(); Intent intent = new Intent(); intent.putExtra(EXTRA_LAST_REPORT_TIME, lastReportTimeNs); try { Loading @@ -126,7 +130,7 @@ public class StatsCompanion { @Override public void sendActiveConfigsChangedBroadcast(long[] configIds) { enforceStatsCompanionPermission(mContext); enforceStatsdCallingUid(); Intent intent = new Intent(); intent.putExtra(StatsManager.EXTRA_STATS_ACTIVE_CONFIG_KEYS, configIds); try { Loading @@ -142,7 +146,7 @@ public class StatsCompanion { @Override public void sendSubscriberBroadcast(long configUid, long configId, long subscriptionId, long subscriptionRuleId, String[] cookies, StatsDimensionsValue dimensionsValue) { enforceStatsCompanionPermission(mContext); enforceStatsdCallingUid(); Intent intent = new Intent() .putExtra(StatsManager.EXTRA_STATS_CONFIG_UID, configUid) Loading
apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java +9 −9 Original line number Diff line number Diff line Loading @@ -398,7 +398,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void setAnomalyAlarm(long timestampMs) { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) Slog.d(TAG, "Setting anomaly alarm for " + timestampMs); final long callingToken = Binder.clearCallingIdentity(); try { Loading @@ -414,7 +414,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void cancelAnomalyAlarm() { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) Slog.d(TAG, "Cancelling anomaly alarm"); final long callingToken = Binder.clearCallingIdentity(); try { Loading @@ -426,7 +426,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void setAlarmForSubscriberTriggering(long timestampMs) { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) { Slog.d(TAG, "Setting periodic alarm in about " + (timestampMs Loading @@ -445,7 +445,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void cancelAlarmForSubscriberTriggering() { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) { Slog.d(TAG, "Cancelling periodic alarm"); } Loading @@ -459,7 +459,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void setPullingAlarm(long nextPullTimeMs) { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) { Slog.d(TAG, "Setting pulling alarm in about " + (nextPullTimeMs - SystemClock.elapsedRealtime())); Loading @@ -477,7 +477,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void cancelPullingAlarm() { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) { Slog.d(TAG, "Cancelling pulling alarm"); } Loading @@ -491,7 +491,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public void statsdReady() { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); if (DEBUG) { Slog.d(TAG, "learned that statsdReady"); } Loading @@ -503,7 +503,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override public void triggerUidSnapshot() { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); synchronized (sStatsdLock) { final long token = Binder.clearCallingIdentity(); try { Loading @@ -518,7 +518,7 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { @Override // Binder call public boolean checkPermission(String permission, int pid, int uid) { StatsCompanion.enforceStatsCompanionPermission(mContext); StatsCompanion.enforceStatsdCallingUid(); return mContext.checkPermission(permission, pid, uid) == PackageManager.PERMISSION_GRANTED; } Loading