Replace use of EventLogger in MR2ServiceImpl with Slog

Logs that previously appeared in dumpsys now appear in
system logs.

For testing, get system logs live with logcat, for example:
adb logcat MR2ServiceImpl:I *:S
or generate a bug report, for example:
adb bugreport
then browse the file with the Android Bug Tool UI at
go/abt-web

Bug: 259705163
Test: manually
Change-Id: If0c8bdef7afcb445f6c9b5ced60ec97d0c5bb0d7
This commit is contained in:
Alexandre Francois
2023-01-04 10:34:25 +00:00
committed by Alex Francois
parent 8d22a5fa95
commit 6dcefe6906

View File

@@ -64,7 +64,6 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.function.pooled.PooledLambda; import com.android.internal.util.function.pooled.PooledLambda;
import com.android.server.LocalServices; import com.android.server.LocalServices;
import com.android.server.pm.UserManagerInternal; import com.android.server.pm.UserManagerInternal;
import com.android.server.utils.EventLogger;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
@@ -93,8 +92,6 @@ class MediaRouter2ServiceImpl {
// in MediaRouter2, remove this constant and replace the usages with the real request IDs. // in MediaRouter2, remove this constant and replace the usages with the real request IDs.
private static final long DUMMY_REQUEST_ID = -1; private static final long DUMMY_REQUEST_ID = -1;
private static final int DUMP_EVENTS_MAX_COUNT = 70;
private static final String MEDIA_BETTER_TOGETHER_NAMESPACE = "media_better_together"; private static final String MEDIA_BETTER_TOGETHER_NAMESPACE = "media_better_together";
private static final String KEY_SCANNING_PACKAGE_MINIMUM_IMPORTANCE = private static final String KEY_SCANNING_PACKAGE_MINIMUM_IMPORTANCE =
@@ -121,9 +118,6 @@ class MediaRouter2ServiceImpl {
@GuardedBy("mLock") @GuardedBy("mLock")
private int mCurrentActiveUserId = -1; private int mCurrentActiveUserId = -1;
private final EventLogger mEventLogger =
new EventLogger(DUMP_EVENTS_MAX_COUNT, "MediaRouter2ServiceImpl");
private final ActivityManager.OnUidImportanceListener mOnUidImportanceListener = private final ActivityManager.OnUidImportanceListener mOnUidImportanceListener =
(uid, importance) -> { (uid, importance) -> {
synchronized (mLock) { synchronized (mLock) {
@@ -689,16 +683,14 @@ class MediaRouter2ServiceImpl {
} else { } else {
pw.println(indent + " <no user records>"); pw.println(indent + " <no user records>");
} }
mEventLogger.dump(pw, indent);
} }
} }
/* package */ void updateRunningUserAndProfiles(int newActiveUserId) { /* package */ void updateRunningUserAndProfiles(int newActiveUserId) {
synchronized (mLock) { synchronized (mLock) {
if (mCurrentActiveUserId != newActiveUserId) { if (mCurrentActiveUserId != newActiveUserId) {
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from("switchUser", "switchUser | user: %d", newActiveUserId));
"userId: %d", newActiveUserId));
mCurrentActiveUserId = newActiveUserId; mCurrentActiveUserId = newActiveUserId;
// disposeUserIfNeededLocked might modify the collection, hence clone // disposeUserIfNeededLocked might modify the collection, hence clone
@@ -771,8 +763,8 @@ class MediaRouter2ServiceImpl {
obtainMessage(UserHandler::notifyRouterRegistered, obtainMessage(UserHandler::notifyRouterRegistered,
userRecord.mHandler, routerRecord)); userRecord.mHandler, routerRecord));
mEventLogger.enqueue(EventLogger.StringEvent.from("registerRouter2", Slog.i(TAG, TextUtils.formatSimple(
"package: %s, uid: %d, pid: %d, router id: %d", "registerRouter2 | package: %s, uid: %d, pid: %d, router: %d",
packageName, uid, pid, routerRecord.mRouterId)); packageName, uid, pid, routerRecord.mRouterId));
} }
@@ -784,10 +776,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from( "unregisterRouter2 | package: %s, router: %d",
"unregisterRouter2",
"package: %s, router id: %d",
routerRecord.mPackageName, routerRecord.mPackageName,
routerRecord.mRouterId)); routerRecord.mRouterId));
@@ -816,9 +806,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue(EventLogger.StringEvent.from( Slog.i(TAG, TextUtils.formatSimple(
"setDiscoveryRequestWithRouter2", "setDiscoveryRequestWithRouter2 | router: %d, discovery request: %s",
"router id: %d, discovery request: %s",
routerRecord.mRouterId, discoveryRequest.toString())); routerRecord.mRouterId, discoveryRequest.toString()));
routerRecord.mDiscoveryPreference = discoveryRequest; routerRecord.mDiscoveryPreference = discoveryRequest;
@@ -842,10 +831,9 @@ class MediaRouter2ServiceImpl {
.map(RouteListingPreference.Item::getRouteId) .map(RouteListingPreference.Item::getRouteId)
.collect(Collectors.joining(",")) .collect(Collectors.joining(","))
: null; : null;
mEventLogger.enqueue(
EventLogger.StringEvent.from( Slog.i(TAG, TextUtils.formatSimple(
"setRouteListingPreference", "setRouteListingPreference | router: %d, route listing preference: [%s]",
"router id: %d, route listing preference: [%s]",
routerRecord.mRouterId, routerRecord.mRouterId,
routeListingAsString)); routeListingAsString));
@@ -863,9 +851,8 @@ class MediaRouter2ServiceImpl {
RouterRecord routerRecord = mAllRouterRecords.get(binder); RouterRecord routerRecord = mAllRouterRecords.get(binder);
if (routerRecord != null) { if (routerRecord != null) {
mEventLogger.enqueue(EventLogger.StringEvent.from( Slog.i(TAG, TextUtils.formatSimple(
"setRouteVolumeWithRouter2", "setRouteVolumeWithRouter2 | router: %d, volume: %d",
"router id: %d, volume: %d",
routerRecord.mRouterId, volume)); routerRecord.mRouterId, volume));
routerRecord.mUserRecord.mHandler.sendMessage( routerRecord.mUserRecord.mHandler.sendMessage(
@@ -948,9 +935,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue(EventLogger.StringEvent.from( Slog.i(TAG, TextUtils.formatSimple(
"selectRouteWithRouter2", "selectRouteWithRouter2 | router: %d, route: %s",
"router id: %d, route: %s",
routerRecord.mRouterId, route.getId())); routerRecord.mRouterId, route.getId()));
routerRecord.mUserRecord.mHandler.sendMessage( routerRecord.mUserRecord.mHandler.sendMessage(
@@ -968,9 +954,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue(EventLogger.StringEvent.from( Slog.i(TAG, TextUtils.formatSimple(
"deselectRouteWithRouter2", "deselectRouteWithRouter2 | router: %d, route: %s",
"router id: %d, route: %s",
routerRecord.mRouterId, route.getId())); routerRecord.mRouterId, route.getId()));
routerRecord.mUserRecord.mHandler.sendMessage( routerRecord.mUserRecord.mHandler.sendMessage(
@@ -988,9 +973,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue(EventLogger.StringEvent.from( Slog.i(TAG, TextUtils.formatSimple(
"transferToRouteWithRouter2", "transferToRouteWithRouter2 | router: %d, route: %s",
"router id: %d, route: %s",
routerRecord.mRouterId, route.getId())); routerRecord.mRouterId, route.getId()));
String defaultRouteId = String defaultRouteId =
@@ -1018,9 +1002,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue(EventLogger.StringEvent.from( Slog.i(TAG, TextUtils.formatSimple(
"setSessionVolumeWithRouter2", "setSessionVolumeWithRouter2 | router: %d, session: %s, volume: %d",
"router id: %d, session: %s, volume: %d",
routerRecord.mRouterId, uniqueSessionId, volume)); routerRecord.mRouterId, uniqueSessionId, volume));
routerRecord.mUserRecord.mHandler.sendMessage( routerRecord.mUserRecord.mHandler.sendMessage(
@@ -1038,9 +1021,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue(EventLogger.StringEvent.from( Slog.i(TAG, TextUtils.formatSimple(
"releaseSessionWithRouter2", "releaseSessionWithRouter2 | router: %d, session: %s",
"router id: %d, session: %s",
routerRecord.mRouterId, uniqueSessionId)); routerRecord.mRouterId, uniqueSessionId));
routerRecord.mUserRecord.mHandler.sendMessage( routerRecord.mUserRecord.mHandler.sendMessage(
@@ -1084,9 +1066,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from("registerManager", "registerManager | uid: %d, pid: %d, package: %s, user: %d",
"uid: %d, pid: %d, package: %s, userId: %d",
uid, pid, packageName, userId)); uid, pid, packageName, userId));
mContext.enforcePermission(Manifest.permission.MEDIA_CONTENT_CONTROL, pid, uid, mContext.enforcePermission(Manifest.permission.MEDIA_CONTENT_CONTROL, pid, uid,
@@ -1135,10 +1116,8 @@ class MediaRouter2ServiceImpl {
} }
UserRecord userRecord = managerRecord.mUserRecord; UserRecord userRecord = managerRecord.mUserRecord;
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from( "unregisterManager | package: %s, user: %d, manager: %d",
"unregisterManager",
"package: %s, userId: %d, managerId: %d",
managerRecord.mPackageName, managerRecord.mPackageName,
userRecord.mUserId, userRecord.mUserId,
managerRecord.mManagerId)); managerRecord.mManagerId));
@@ -1155,9 +1134,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from("startScan", "startScan | manager: %d", managerRecord.mManagerId));
"manager: %d", managerRecord.mManagerId));
managerRecord.startScan(); managerRecord.startScan();
} }
@@ -1169,9 +1147,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from("stopScan", "stopScan | manager: %d", managerRecord.mManagerId));
"manager: %d", managerRecord.mManagerId));
managerRecord.stopScan(); managerRecord.stopScan();
} }
@@ -1186,9 +1163,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from("setRouteVolumeWithManager", "setRouteVolumeWithManager | manager: %d, route: %s, volume: %d",
"managerId: %d, routeId: %s, volume: %d",
managerRecord.mManagerId, route.getId(), volume)); managerRecord.mManagerId, route.getId(), volume));
long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId); long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
@@ -1206,9 +1182,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from("requestCreateSessionWithManager", "requestCreateSessionWithManager | manager: %d, route: %s",
"managerId: %d, routeId: %s",
managerRecord.mManagerId, route.getId())); managerRecord.mManagerId, route.getId()));
String packageName = oldSession.getClientPackageName(); String packageName = oldSession.getClientPackageName();
@@ -1256,9 +1231,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from("selectRouteWithManager", "selectRouteWithManager | manager: %d, session: %s, route: %s",
"managerId: %d, session: %s, routeId: %s",
managerRecord.mManagerId, uniqueSessionId, route.getId())); managerRecord.mManagerId, uniqueSessionId, route.getId()));
// Can be null if the session is system's or RCN. // Can be null if the session is system's or RCN.
@@ -1282,9 +1256,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from("deselectRouteWithManager", "deselectRouteWithManager | manager: %d, session: %s, route: %s",
"managerId: %d, session: %s, routeId: %s",
managerRecord.mManagerId, uniqueSessionId, route.getId())); managerRecord.mManagerId, uniqueSessionId, route.getId()));
// Can be null if the session is system's or RCN. // Can be null if the session is system's or RCN.
@@ -1308,9 +1281,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from("transferToRouteWithManager", "transferToRouteWithManager | manager: %d, session: %s, route: %s",
"managerId: %d, session: %s, routeId: %s",
managerRecord.mManagerId, uniqueSessionId, route.getId())); managerRecord.mManagerId, uniqueSessionId, route.getId()));
// Can be null if the session is system's or RCN. // Can be null if the session is system's or RCN.
@@ -1334,9 +1306,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from("setSessionVolumeWithManager", "setSessionVolumeWithManager | manager: %d, session: %s, volume: %d",
"managerId: %d, session: %s, volume: %d",
managerRecord.mManagerId, uniqueSessionId, volume)); managerRecord.mManagerId, uniqueSessionId, volume));
long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId); long uniqueRequestId = toUniqueRequestId(managerRecord.mManagerId, requestId);
@@ -1355,9 +1326,8 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from("releaseSessionWithManager", "releaseSessionWithManager | manager: %d, session: %s",
"managerId: %d, session: %s",
managerRecord.mManagerId, uniqueSessionId)); managerRecord.mManagerId, uniqueSessionId));
RouterRecord routerRecord = managerRecord.mUserRecord.mHandler RouterRecord routerRecord = managerRecord.mUserRecord.mHandler
@@ -1791,8 +1761,7 @@ class MediaRouter2ServiceImpl {
MediaRoute2ProviderInfo oldInfo = MediaRoute2ProviderInfo oldInfo =
providerInfoIndex == -1 ? null : mLastProviderInfos.get(providerInfoIndex); providerInfoIndex == -1 ? null : mLastProviderInfos.get(providerInfoIndex);
MediaRouter2ServiceImpl mediaRouter2Service = mServiceRef.get(); MediaRouter2ServiceImpl mediaRouter2Service = mServiceRef.get();
EventLogger eventLogger =
mediaRouter2Service != null ? mediaRouter2Service.mEventLogger : null;
if (oldInfo == newInfo) { if (oldInfo == newInfo) {
// Nothing to do. // Nothing to do.
return; return;
@@ -1854,24 +1823,22 @@ class MediaRouter2ServiceImpl {
} }
} }
if (eventLogger != null) {
if (!addedRoutes.isEmpty()) { if (!addedRoutes.isEmpty()) {
// If routes were added, newInfo cannot be null. // If routes were added, newInfo cannot be null.
eventLogger.enqueue( Slog.i(TAG,
toLoggingEvent( toLoggingMessage(
/* source= */ "addProviderRoutes", /* source= */ "addProviderRoutes",
newInfo.getUniqueId(), newInfo.getUniqueId(),
addedRoutes)); addedRoutes));
} }
if (!removedRoutes.isEmpty()) { if (!removedRoutes.isEmpty()) {
// If routes were removed, oldInfo cannot be null. // If routes were removed, oldInfo cannot be null.
eventLogger.enqueue( Slog.i(TAG,
toLoggingEvent( toLoggingMessage(
/* source= */ "removeProviderRoutes", /* source= */ "removeProviderRoutes",
oldInfo.getUniqueId(), oldInfo.getUniqueId(),
removedRoutes)); removedRoutes));
} }
}
dispatchUpdates( dispatchUpdates(
hasAddedOrModifiedRoutes, hasAddedOrModifiedRoutes,
@@ -1880,14 +1847,14 @@ class MediaRouter2ServiceImpl {
mSystemProvider.getDefaultRoute()); mSystemProvider.getDefaultRoute());
} }
private static EventLogger.Event toLoggingEvent( private static String toLoggingMessage(
String source, String providerId, ArrayList<MediaRoute2Info> routes) { String source, String providerId, ArrayList<MediaRoute2Info> routes) {
String routesString = String routesString =
routes.stream() routes.stream()
.map(it -> String.format("%s | %s", it.getOriginalId(), it.getName())) .map(it -> String.format("%s | %s", it.getOriginalId(), it.getName()))
.collect(Collectors.joining(/* delimiter= */ ", ")); .collect(Collectors.joining(/* delimiter= */ ", "));
return EventLogger.StringEvent.from( return TextUtils.formatSimple("%s | provider: %s, routes: [%s]",
source, "provider: %s, routes: [%s]", providerId, routesString); source, providerId, routesString);
} }
/** /**