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,12 +776,10 @@ class MediaRouter2ServiceImpl {
return; return;
} }
mEventLogger.enqueue( Slog.i(TAG, TextUtils.formatSimple(
EventLogger.StringEvent.from( "unregisterRouter2 | package: %s, router: %d",
"unregisterRouter2", routerRecord.mPackageName,
"package: %s, router id: %d", routerRecord.mRouterId));
routerRecord.mPackageName,
routerRecord.mRouterId));
UserRecord userRecord = routerRecord.mUserRecord; UserRecord userRecord = routerRecord.mUserRecord;
userRecord.mRouterRecords.remove(routerRecord); userRecord.mRouterRecords.remove(routerRecord);
@@ -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,12 +831,11 @@ 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));
routerRecord.mUserRecord.mHandler.sendMessage( routerRecord.mUserRecord.mHandler.sendMessage(
obtainMessage( obtainMessage(
@@ -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,10 +1066,9 @@ 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,
"Must hold MEDIA_CONTENT_CONTROL permission."); "Must hold MEDIA_CONTENT_CONTROL permission.");
@@ -1135,13 +1116,11 @@ 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", managerRecord.mPackageName,
"package: %s, userId: %d, managerId: %d", userRecord.mUserId,
managerRecord.mPackageName, managerRecord.mManagerId));
userRecord.mUserId,
managerRecord.mManagerId));
userRecord.mManagerRecords.remove(managerRecord); userRecord.mManagerRecords.remove(managerRecord);
managerRecord.dispose(); managerRecord.dispose();
@@ -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,10 +1163,9 @@ 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);
managerRecord.mUserRecord.mHandler.sendMessage( managerRecord.mUserRecord.mHandler.sendMessage(
@@ -1206,10 +1182,9 @@ 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,10 +1231,9 @@ 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.
RouterRecord routerRecord = managerRecord.mUserRecord.mHandler RouterRecord routerRecord = managerRecord.mUserRecord.mHandler
@@ -1282,10 +1256,9 @@ 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.
RouterRecord routerRecord = managerRecord.mUserRecord.mHandler RouterRecord routerRecord = managerRecord.mUserRecord.mHandler
@@ -1308,10 +1281,9 @@ 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.
RouterRecord routerRecord = managerRecord.mUserRecord.mHandler RouterRecord routerRecord = managerRecord.mUserRecord.mHandler
@@ -1334,10 +1306,9 @@ 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);
managerRecord.mUserRecord.mHandler.sendMessage( managerRecord.mUserRecord.mHandler.sendMessage(
@@ -1355,10 +1326,9 @@ 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
.findRouterWithSessionLocked(uniqueSessionId); .findRouterWithSessionLocked(uniqueSessionId);
@@ -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,23 +1823,21 @@ 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. Slog.i(TAG,
eventLogger.enqueue( toLoggingMessage(
toLoggingEvent( /* 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. Slog.i(TAG,
eventLogger.enqueue( toLoggingMessage(
toLoggingEvent( /* source= */ "removeProviderRoutes",
/* source= */ "removeProviderRoutes", oldInfo.getUniqueId(),
oldInfo.getUniqueId(), removedRoutes));
removedRoutes));
}
} }
dispatchUpdates( dispatchUpdates(
@@ -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);
} }
/** /**