Revert "Use DeviceConfig in MediaMetricsManagerService"

This reverts commit d21b78c125.

Reason for revert: Broken MediaMetricsAtomTests tests

Bug: 191136205
Change-Id: I8187d7f104115f8935fc0eaa0ee8ffcdca393609
This commit is contained in:
Sorin Basca
2021-06-15 10:58:06 +00:00
parent d21b78c125
commit 50540eaa1c

View File

@@ -17,7 +17,6 @@
package com.android.server.media.metrics;
import android.content.Context;
import android.content.pm.PackageManager;
import android.media.metrics.IMediaMetricsManager;
import android.media.metrics.NetworkEvent;
import android.media.metrics.PlaybackErrorEvent;
@@ -25,29 +24,19 @@ import android.media.metrics.PlaybackMetrics;
import android.media.metrics.PlaybackStateEvent;
import android.media.metrics.TrackChangeEvent;
import android.os.Binder;
import android.provider.DeviceConfig;
import android.util.Base64;
import android.util.Slog;
import android.util.StatsEvent;
import android.util.StatsLog;
import com.android.server.SystemService;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.List;
/**
* System service manages media metrics.
*/
public final class MediaMetricsManagerService extends SystemService {
private static final String TAG = "MediaMetricsManagerService";
// TODO: update these constants when finalized
private static final String MEDIA_METRICS_MODE = "media_metrics_mode";
private static final int MEDIA_METRICS_MODE_OFF = 0;
private static final int MEDIA_METRICS_MODE_ON = 1;
private final SecureRandom mSecureRandom;
private List<String> mBlockList = new ArrayList<>();
/**
* Initializes the playback metrics manager service.
@@ -67,9 +56,6 @@ public final class MediaMetricsManagerService extends SystemService {
private final class BinderService extends IMediaMetricsManager.Stub {
@Override
public void reportPlaybackMetrics(String sessionId, PlaybackMetrics metrics, int userId) {
if (!shouldWriteStats()) {
return;
}
StatsEvent statsEvent = StatsEvent.newBuilder()
.setAtomId(320)
.writeInt(Binder.getCallingUid())
@@ -99,9 +85,6 @@ public final class MediaMetricsManagerService extends SystemService {
@Override
public void reportPlaybackStateEvent(
String sessionId, PlaybackStateEvent event, int userId) {
if (!shouldWriteStats()) {
return;
}
StatsEvent statsEvent = StatsEvent.newBuilder()
.setAtomId(322)
.writeString(sessionId)
@@ -132,9 +115,6 @@ public final class MediaMetricsManagerService extends SystemService {
@Override
public void reportPlaybackErrorEvent(
String sessionId, PlaybackErrorEvent event, int userId) {
if (!shouldWriteStats()) {
return;
}
StatsEvent statsEvent = StatsEvent.newBuilder()
.setAtomId(323)
.writeString(sessionId)
@@ -149,9 +129,6 @@ public final class MediaMetricsManagerService extends SystemService {
public void reportNetworkEvent(
String sessionId, NetworkEvent event, int userId) {
if (!shouldWriteStats()) {
return;
}
StatsEvent statsEvent = StatsEvent.newBuilder()
.setAtomId(321)
.writeString(sessionId)
@@ -165,9 +142,6 @@ public final class MediaMetricsManagerService extends SystemService {
@Override
public void reportTrackChangeEvent(
String sessionId, TrackChangeEvent event, int userId) {
if (!shouldWriteStats()) {
return;
}
StatsEvent statsEvent = StatsEvent.newBuilder()
.setAtomId(324)
.writeString(sessionId)
@@ -190,33 +164,5 @@ public final class MediaMetricsManagerService extends SystemService {
.build();
StatsLog.write(statsEvent);
}
private boolean shouldWriteStats() {
int uid = Binder.getCallingUid();
final long identity = Binder.clearCallingIdentity();
int mode = DeviceConfig.getInt(
DeviceConfig.NAMESPACE_MEDIA, MEDIA_METRICS_MODE, MEDIA_METRICS_MODE_OFF);
Binder.restoreCallingIdentity(identity);
if (mode != MEDIA_METRICS_MODE_ON) {
return false;
}
if (mBlockList.isEmpty()) {
return true;
}
PackageManager pm = getContext().getPackageManager();
String[] packages = pm.getPackagesForUid(uid);
if (packages == null) {
// The valid application UID range is from android.os.Process.FIRST_APPLICATION_UID
// to android.os.Process.LAST_APPLICATION_UID.
// UIDs outside this range will not have a package and will therefore be false.
Slog.d(TAG, "null package from uid " + uid);
return false;
}
// TODO: check calling package with allowlist/blocklist.
return true;
}
}
}