Loading cmds/statsd/src/StatsService.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -1394,7 +1394,10 @@ Status StatsService::sendBinaryPushStateChangedAtom(const android::String16& tra Status StatsService::sendWatchdogRollbackOccurredAtom(const int32_t rollbackTypeIn, const android::String16& packageNameIn, const int64_t packageVersionCodeIn) { const int64_t packageVersionCodeIn, const int32_t rollbackReasonIn, const android::String16& failingPackageNameIn) { // Note: We skip the usage stats op check here since we do not have a package name. // This is ok since we are overloading the usage_stats permission. // This method only sends data, it does not receive it. Loading @@ -1416,7 +1419,8 @@ Status StatsService::sendWatchdogRollbackOccurredAtom(const int32_t rollbackType } android::util::stats_write(android::util::WATCHDOG_ROLLBACK_OCCURRED, rollbackTypeIn, String8(packageNameIn).string(), packageVersionCodeIn); rollbackTypeIn, String8(packageNameIn).string(), packageVersionCodeIn, rollbackReasonIn, String8(failingPackageNameIn).string()); // Fast return to save disk read. if (rollbackTypeIn != android::util::WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_SUCCESS Loading cmds/statsd/src/StatsService.h +3 −1 Original line number Diff line number Diff line Loading @@ -200,7 +200,9 @@ public: virtual Status sendWatchdogRollbackOccurredAtom( const int32_t rollbackTypeIn, const android::String16& packageNameIn, const int64_t packageVersionCodeIn) override; const int64_t packageVersionCodeIn, const int32_t rollbackReasonIn, const android::String16& failingPackageNameIn) override; /** * Binder call to get registered experiment IDs. Loading cmds/statsd/src/atoms.proto +13 −0 Original line number Diff line number Diff line Loading @@ -1692,6 +1692,19 @@ message WatchdogRollbackOccurred { optional string package_name = 2; optional int32 package_version_code = 3; enum RollbackReasonType { REASON_UNKNOWN = 0; REASON_NATIVE_CRASH = 1; REASON_EXPLICIT_HEALTH_CHECK = 2; REASON_APP_CRASH = 3; REASON_APP_NOT_RESPONDING = 4; } optional RollbackReasonType rollback_reason = 4; // Set by RollbackPackageHealthObserver to be the package that is failing when a rollback // is initiated. Empty if the package is unknown. optional string failing_package_name = 5; } /** Loading core/java/android/os/IStatsManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -224,7 +224,7 @@ interface IStatsManager { * Logs an event for watchdog rollbacks. */ oneway void sendWatchdogRollbackOccurredAtom(in int rollbackType, in String packageName, in long packageVersionCode); in long packageVersionCode, in int rollbackReason, in String failingPackageName); /** * Returns the most recently registered experiment IDs. Loading core/java/android/util/StatsLog.java +4 −2 Original line number Diff line number Diff line Loading @@ -179,6 +179,8 @@ public final class StatsLog extends StatsLogInternal { * @param rollbackType state of the rollback. * @param packageName package name being rolled back. * @param packageVersionCode version of the package being rolled back. * @param rollbackReason reason the package is being rolled back. * @param failingPackageName the package name causing the failure. * * @return True if the log request was sent to statsd. * Loading @@ -186,7 +188,7 @@ public final class StatsLog extends StatsLogInternal { */ @RequiresPermission(allOf = {DUMP, PACKAGE_USAGE_STATS}) public static boolean logWatchdogRollbackOccurred(int rollbackType, String packageName, long packageVersionCode) { long packageVersionCode, int rollbackReason, String failingPackageName) { synchronized (sLogLock) { try { IStatsManager service = getIStatsManagerLocked(); Loading @@ -198,7 +200,7 @@ public final class StatsLog extends StatsLogInternal { } service.sendWatchdogRollbackOccurredAtom(rollbackType, packageName, packageVersionCode); packageVersionCode, rollbackReason, failingPackageName); return true; } catch (RemoteException e) { sService = null; Loading Loading
cmds/statsd/src/StatsService.cpp +6 −2 Original line number Diff line number Diff line Loading @@ -1394,7 +1394,10 @@ Status StatsService::sendBinaryPushStateChangedAtom(const android::String16& tra Status StatsService::sendWatchdogRollbackOccurredAtom(const int32_t rollbackTypeIn, const android::String16& packageNameIn, const int64_t packageVersionCodeIn) { const int64_t packageVersionCodeIn, const int32_t rollbackReasonIn, const android::String16& failingPackageNameIn) { // Note: We skip the usage stats op check here since we do not have a package name. // This is ok since we are overloading the usage_stats permission. // This method only sends data, it does not receive it. Loading @@ -1416,7 +1419,8 @@ Status StatsService::sendWatchdogRollbackOccurredAtom(const int32_t rollbackType } android::util::stats_write(android::util::WATCHDOG_ROLLBACK_OCCURRED, rollbackTypeIn, String8(packageNameIn).string(), packageVersionCodeIn); rollbackTypeIn, String8(packageNameIn).string(), packageVersionCodeIn, rollbackReasonIn, String8(failingPackageNameIn).string()); // Fast return to save disk read. if (rollbackTypeIn != android::util::WATCHDOG_ROLLBACK_OCCURRED__ROLLBACK_TYPE__ROLLBACK_SUCCESS Loading
cmds/statsd/src/StatsService.h +3 −1 Original line number Diff line number Diff line Loading @@ -200,7 +200,9 @@ public: virtual Status sendWatchdogRollbackOccurredAtom( const int32_t rollbackTypeIn, const android::String16& packageNameIn, const int64_t packageVersionCodeIn) override; const int64_t packageVersionCodeIn, const int32_t rollbackReasonIn, const android::String16& failingPackageNameIn) override; /** * Binder call to get registered experiment IDs. Loading
cmds/statsd/src/atoms.proto +13 −0 Original line number Diff line number Diff line Loading @@ -1692,6 +1692,19 @@ message WatchdogRollbackOccurred { optional string package_name = 2; optional int32 package_version_code = 3; enum RollbackReasonType { REASON_UNKNOWN = 0; REASON_NATIVE_CRASH = 1; REASON_EXPLICIT_HEALTH_CHECK = 2; REASON_APP_CRASH = 3; REASON_APP_NOT_RESPONDING = 4; } optional RollbackReasonType rollback_reason = 4; // Set by RollbackPackageHealthObserver to be the package that is failing when a rollback // is initiated. Empty if the package is unknown. optional string failing_package_name = 5; } /** Loading
core/java/android/os/IStatsManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -224,7 +224,7 @@ interface IStatsManager { * Logs an event for watchdog rollbacks. */ oneway void sendWatchdogRollbackOccurredAtom(in int rollbackType, in String packageName, in long packageVersionCode); in long packageVersionCode, in int rollbackReason, in String failingPackageName); /** * Returns the most recently registered experiment IDs. Loading
core/java/android/util/StatsLog.java +4 −2 Original line number Diff line number Diff line Loading @@ -179,6 +179,8 @@ public final class StatsLog extends StatsLogInternal { * @param rollbackType state of the rollback. * @param packageName package name being rolled back. * @param packageVersionCode version of the package being rolled back. * @param rollbackReason reason the package is being rolled back. * @param failingPackageName the package name causing the failure. * * @return True if the log request was sent to statsd. * Loading @@ -186,7 +188,7 @@ public final class StatsLog extends StatsLogInternal { */ @RequiresPermission(allOf = {DUMP, PACKAGE_USAGE_STATS}) public static boolean logWatchdogRollbackOccurred(int rollbackType, String packageName, long packageVersionCode) { long packageVersionCode, int rollbackReason, String failingPackageName) { synchronized (sLogLock) { try { IStatsManager service = getIStatsManagerLocked(); Loading @@ -198,7 +200,7 @@ public final class StatsLog extends StatsLogInternal { } service.sendWatchdogRollbackOccurredAtom(rollbackType, packageName, packageVersionCode); packageVersionCode, rollbackReason, failingPackageName); return true; } catch (RemoteException e) { sService = null; Loading