Merge "Pull Keystore2CrashStats Atom." into sc-dev-plus-aosp am: 1356aad7e7

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15245530

Change-Id: I52687409df224ec97aa3893d4c24bfffbc6156ea
This commit is contained in:
Hasini Gunasinghe
2021-07-09 21:31:23 +00:00
committed by Automerger Merge Worker

View File

@@ -133,6 +133,7 @@ import android.os.storage.StorageManager;
import android.os.storage.VolumeInfo;
import android.provider.DeviceConfig;
import android.provider.Settings;
import android.security.metrics.CrashStats;
import android.security.metrics.IKeystoreMetrics;
import android.security.metrics.KeyCreationWithAuthInfo;
import android.security.metrics.KeyCreationWithGeneralInfo;
@@ -731,6 +732,7 @@ public class StatsPullAtomService extends SystemService {
case FrameworkStatsLog.KEYSTORE2_KEY_OPERATION_WITH_PURPOSE_AND_MODES_INFO:
case FrameworkStatsLog.KEYSTORE2_KEY_OPERATION_WITH_GENERAL_INFO:
case FrameworkStatsLog.RKP_ERROR_STATS:
case FrameworkStatsLog.KEYSTORE2_CRASH_STATS:
return pullKeystoreAtoms(atomTag, data);
default:
throw new UnsupportedOperationException("Unknown tagId=" + atomTag);
@@ -927,6 +929,7 @@ public class StatsPullAtomService extends SystemService {
registerKeystoreKeyOperationWithPurposeAndModesInfo();
registerKeystoreKeyOperationWithGeneralInfo();
registerRkpErrorStats();
registerKeystoreCrashStats();
}
private void initAndRegisterNetworkStatsPullers() {
@@ -4139,6 +4142,14 @@ public class StatsPullAtomService extends SystemService {
mStatsCallbackImpl);
}
private void registerKeystoreCrashStats() {
mStatsManager.setPullAtomCallback(
FrameworkStatsLog.KEYSTORE2_CRASH_STATS,
null, // use default PullAtomMetadata values,
DIRECT_EXECUTOR,
mStatsCallbackImpl);
}
int parseKeystoreStorageStats(KeystoreAtom[] atoms, List<StatsEvent> pulledData) {
for (KeystoreAtom atomWrapper : atoms) {
if (atomWrapper.payload.getTag() != KeystoreAtomPayload.storageStats) {
@@ -4271,6 +4282,19 @@ public class StatsPullAtomService extends SystemService {
return StatsManager.PULL_SUCCESS;
}
int parseKeystoreCrashStats(KeystoreAtom[] atoms,
List<StatsEvent> pulledData) {
for (KeystoreAtom atomWrapper : atoms) {
if (atomWrapper.payload.getTag() != KeystoreAtomPayload.crashStats) {
return StatsManager.PULL_SKIP;
}
CrashStats atom = atomWrapper.payload.getCrashStats();
pulledData.add(FrameworkStatsLog.buildStatsEvent(
FrameworkStatsLog.KEYSTORE2_CRASH_STATS, atom.count_of_crash_events));
}
return StatsManager.PULL_SUCCESS;
}
int pullKeystoreAtoms(int atomTag, List<StatsEvent> pulledData) {
IKeystoreMetrics keystoreMetricsService = getIKeystoreMetricsService();
if (keystoreMetricsService == null) {
@@ -4299,6 +4323,8 @@ public class StatsPullAtomService extends SystemService {
return parseKeystoreKeyOperationWithGeneralInfo(atoms, pulledData);
case FrameworkStatsLog.RKP_ERROR_STATS:
return parseRkpErrorStats(atoms, pulledData);
case FrameworkStatsLog.KEYSTORE2_CRASH_STATS:
return parseKeystoreCrashStats(atoms, pulledData);
default:
Slog.w(TAG, "Unsupported keystore atom: " + atomTag);
return StatsManager.PULL_SKIP;