diff options
3 files changed, 36 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/EventLogTags.logtags b/services/core/java/com/android/server/EventLogTags.logtags index 68f8c1bb182f..b516a91715d5 100644 --- a/services/core/java/com/android/server/EventLogTags.logtags +++ b/services/core/java/com/android/server/EventLogTags.logtags @@ -268,3 +268,16 @@ option java_package com.android.server # GestureLauncherService.java # --------------------------- 40100 camera_gesture_triggered (gesture_on_time|2|3), (sensor1_on_time|2|3), (sensor2_on_time|2|3), (event_extra|1|1) + +# --------------------------- +# timezone/RulesManagerService.java +# --------------------------- +51600 timezone_trigger_check (token|3) +51610 timezone_request_install (token|3) +51611 timezone_install_started (token|3) +51612 timezone_install_complete (token|3), (result|1) +51620 timezone_request_uninstall (token|3) +51621 timezone_uninstall_started (token|3) +51622 timezone_uninstall_complete (token|3), (result|1) +51630 timezone_request_nothing (token|3) +51631 timezone_nothing_complete (token|3) diff --git a/services/core/java/com/android/server/timezone/IntentHelperImpl.java b/services/core/java/com/android/server/timezone/IntentHelperImpl.java index 3ffbb2d61fd5..11928b964ec5 100644 --- a/services/core/java/com/android/server/timezone/IntentHelperImpl.java +++ b/services/core/java/com/android/server/timezone/IntentHelperImpl.java @@ -16,6 +16,8 @@ package com.android.server.timezone; +import com.android.server.EventLogTags; + import android.app.timezone.RulesUpdaterContract; import android.content.BroadcastReceiver; import android.content.Context; @@ -24,8 +26,6 @@ import android.content.IntentFilter; import android.os.PatternMatcher; import android.util.Slog; -import java.util.regex.Pattern; - /** * The bona fide implementation of {@link IntentHelper}. */ @@ -75,6 +75,7 @@ final class IntentHelperImpl implements IntentHelper { public void sendTriggerUpdateCheck(CheckToken checkToken) { RulesUpdaterContract.sendBroadcast( mContext, mUpdaterAppPackageName, checkToken.toByteArray()); + EventLogTags.writeTimezoneTriggerCheck(checkToken.toString()); } @Override diff --git a/services/core/java/com/android/server/timezone/RulesManagerService.java b/services/core/java/com/android/server/timezone/RulesManagerService.java index d97ba2d0d78b..1c5aa600580a 100644 --- a/services/core/java/com/android/server/timezone/RulesManagerService.java +++ b/services/core/java/com/android/server/timezone/RulesManagerService.java @@ -17,6 +17,7 @@ package com.android.server.timezone; import com.android.internal.annotations.VisibleForTesting; +import com.android.server.EventLogTags; import com.android.server.SystemService; import com.android.timezone.distro.DistroException; import com.android.timezone.distro.DistroVersion; @@ -56,8 +57,6 @@ import static android.app.timezone.RulesState.STAGED_OPERATION_NONE; import static android.app.timezone.RulesState.STAGED_OPERATION_UNINSTALL; import static android.app.timezone.RulesState.STAGED_OPERATION_UNKNOWN; -// TODO(nfuller) Add EventLog calls where useful in the system server. -// TODO(nfuller) Check logging best practices in the system server. // TODO(nfuller) Check error handling best practices in the system server. public final class RulesManagerService extends IRulesManager.Stub { @@ -203,6 +202,7 @@ public final class RulesManagerService extends IRulesManager.Stub { if (checkTokenBytes != null) { checkToken = createCheckTokenOrThrow(checkTokenBytes); } + EventLogTags.writeTimezoneRequestInstall(toStringOrNull(checkToken)); synchronized (this) { if (distroParcelFileDescriptor == null) { @@ -254,6 +254,8 @@ public final class RulesManagerService extends IRulesManager.Stub { @Override public void run() { + EventLogTags.writeTimezoneInstallStarted(toStringOrNull(mCheckToken)); + boolean success = false; // Adopt the ParcelFileDescriptor into this try-with-resources so it is closed // when we are done. @@ -266,6 +268,7 @@ public final class RulesManagerService extends IRulesManager.Stub { TimeZoneDistro distro = new TimeZoneDistro(is); int installerResult = mInstaller.stageInstallWithErrorCode(distro); int resultCode = mapInstallerResultToApiCode(installerResult); + EventLogTags.writeTimezoneInstallComplete(toStringOrNull(mCheckToken), resultCode); sendFinishedStatus(mCallback, resultCode); // All the installer failure modes are currently non-recoverable and won't be @@ -273,6 +276,8 @@ public final class RulesManagerService extends IRulesManager.Stub { success = true; } catch (Exception e) { Slog.w(TAG, "Failed to install distro.", e); + EventLogTags.writeTimezoneInstallComplete( + toStringOrNull(mCheckToken), Callback.ERROR_UNKNOWN_FAILURE); sendFinishedStatus(mCallback, Callback.ERROR_UNKNOWN_FAILURE); } finally { // Notify the package tracker that the operation is now complete. @@ -308,6 +313,7 @@ public final class RulesManagerService extends IRulesManager.Stub { if (checkTokenBytes != null) { checkToken = createCheckTokenOrThrow(checkTokenBytes); } + EventLogTags.writeTimezoneRequestUninstall(toStringOrNull(checkToken)); synchronized(this) { if (callback == null) { throw new NullPointerException("callback == null"); @@ -337,6 +343,7 @@ public final class RulesManagerService extends IRulesManager.Stub { @Override public void run() { + EventLogTags.writeTimezoneUninstallStarted(toStringOrNull(mCheckToken)); boolean success = false; try { success = mInstaller.stageUninstall(); @@ -344,8 +351,12 @@ public final class RulesManagerService extends IRulesManager.Stub { // against SUCCESS. More granular failures may be added in future. int resultCode = success ? Callback.SUCCESS : Callback.ERROR_UNKNOWN_FAILURE; + EventLogTags.writeTimezoneUninstallComplete( + toStringOrNull(mCheckToken), resultCode); sendFinishedStatus(mCallback, resultCode); } catch (Exception e) { + EventLogTags.writeTimezoneUninstallComplete( + toStringOrNull(mCheckToken), Callback.ERROR_UNKNOWN_FAILURE); Slog.w(TAG, "Failed to uninstall distro.", e); sendFinishedStatus(mCallback, Callback.ERROR_UNKNOWN_FAILURE); } finally { @@ -372,7 +383,9 @@ public final class RulesManagerService extends IRulesManager.Stub { if (checkTokenBytes != null) { checkToken = createCheckTokenOrThrow(checkTokenBytes); } + EventLogTags.writeTimezoneRequestNothing(toStringOrNull(checkToken)); mPackageTracker.recordCheckResult(checkToken, success); + EventLogTags.writeTimezoneNothingComplete(toStringOrNull(checkToken)); } @Override @@ -445,6 +458,7 @@ public final class RulesManagerService extends IRulesManager.Stub { pw.println("RulesManagerService state: " + toString()); pw.println("Active rules version (ICU, libcore): " + ICU.getTZDataVersion() + "," + ZoneInfoDB.getInstance().getVersion()); + pw.println("Distro state: " + rulesState.toString()); mPackageTracker.dump(pw); } @@ -491,4 +505,8 @@ public final class RulesManagerService extends IRulesManager.Stub { return "Unknown"; } } + + private static String toStringOrNull(Object obj) { + return obj == null ? null : obj.toString(); + } } |