diff options
| author | 2024-10-18 14:21:53 +0000 | |
|---|---|---|
| committer | 2024-10-18 14:22:01 +0000 | |
| commit | 02546f73ffd959a6a64af4674bcbdf97ceefa3b5 (patch) | |
| tree | 691261985f51a3f1ad4e68827852f84d82dc51ce | |
| parent | 7d94ac3940553bc0c1f45ea1842146266f97d90e (diff) | |
Revert^2 "Add support for UIDs in bootstrap atoms"
7d94ac3940553bc0c1f45ea1842146266f97d90e
Change-Id: I08167e42980d21109b1803cdd26300e245ecb02a
| -rw-r--r-- | core/java/android/os/StatsBootstrapAtomValue.aidl | 42 | ||||
| -rw-r--r-- | services/core/java/com/android/server/stats/bootstrap/StatsBootstrapAtomService.java | 36 |
2 files changed, 61 insertions, 17 deletions
diff --git a/core/java/android/os/StatsBootstrapAtomValue.aidl b/core/java/android/os/StatsBootstrapAtomValue.aidl index b59bc062648f..b31eb6f78355 100644 --- a/core/java/android/os/StatsBootstrapAtomValue.aidl +++ b/core/java/android/os/StatsBootstrapAtomValue.aidl @@ -19,12 +19,36 @@ package android.os; * * @hide */ -union StatsBootstrapAtomValue { - boolean boolValue; - int intValue; - long longValue; - float floatValue; - String stringValue; - byte[] bytesValue; - String[] stringArrayValue; -}
\ No newline at end of file +parcelable StatsBootstrapAtomValue { + union Primitive { + boolean boolValue; + int intValue; + long longValue; + float floatValue; + String stringValue; + byte[] bytesValue; + String[] stringArrayValue; + } + + Primitive value; + + parcelable Annotation { + // Match the definitions in + // packages/modules/StatsD/framework/java/android/util/StatsLog.java + // Only supports UIDs for now. + @Backing(type="byte") + enum Id { + NONE, + IS_UID, + } + Id id; + + union Primitive { + boolean boolValue; + int intValue; + } + Primitive value; + } + + Annotation[] annotations; +} diff --git a/services/core/java/com/android/server/stats/bootstrap/StatsBootstrapAtomService.java b/services/core/java/com/android/server/stats/bootstrap/StatsBootstrapAtomService.java index dcb47a7b60b6..4c9cbc449656 100644 --- a/services/core/java/com/android/server/stats/bootstrap/StatsBootstrapAtomService.java +++ b/services/core/java/com/android/server/stats/bootstrap/StatsBootstrapAtomService.java @@ -42,27 +42,28 @@ public class StatsBootstrapAtomService extends IStatsBootstrapAtomService.Stub { return; } StatsEvent.Builder builder = StatsEvent.newBuilder().setAtomId(atom.atomId); - for (StatsBootstrapAtomValue value : atom.values) { + for (StatsBootstrapAtomValue atomValue : atom.values) { + StatsBootstrapAtomValue.Primitive value = atomValue.value; switch (value.getTag()) { - case StatsBootstrapAtomValue.boolValue: + case StatsBootstrapAtomValue.Primitive.boolValue: builder.writeBoolean(value.getBoolValue()); break; - case StatsBootstrapAtomValue.intValue: + case StatsBootstrapAtomValue.Primitive.intValue: builder.writeInt(value.getIntValue()); break; - case StatsBootstrapAtomValue.longValue: + case StatsBootstrapAtomValue.Primitive.longValue: builder.writeLong(value.getLongValue()); break; - case StatsBootstrapAtomValue.floatValue: + case StatsBootstrapAtomValue.Primitive.floatValue: builder.writeFloat(value.getFloatValue()); break; - case StatsBootstrapAtomValue.stringValue: + case StatsBootstrapAtomValue.Primitive.stringValue: builder.writeString(value.getStringValue()); break; - case StatsBootstrapAtomValue.bytesValue: + case StatsBootstrapAtomValue.Primitive.bytesValue: builder.writeByteArray(value.getBytesValue()); break; - case StatsBootstrapAtomValue.stringArrayValue: + case StatsBootstrapAtomValue.Primitive.stringArrayValue: builder.writeStringArray(value.getStringArrayValue()); break; default: @@ -71,6 +72,25 @@ public class StatsBootstrapAtomService extends IStatsBootstrapAtomService.Stub { return; } + StatsBootstrapAtomValue.Annotation[] annotations = atomValue.annotations; + for (StatsBootstrapAtomValue.Annotation annotation : atomValue.annotations) { + if (annotation.id != StatsBootstrapAtomValue.Annotation.Id.IS_UID) { + Slog.e(TAG, "Unexpected annotation ID: " + annotation.id + + ", for atom " + atom.atomId + ": only UIDs are supported!"); + return; + } + + switch (annotation.value.getTag()) { + case StatsBootstrapAtomValue.Annotation.Primitive.boolValue: + builder.addBooleanAnnotation( + annotation.id, annotation.value.getBoolValue()); + break; + default: + Slog.e(TAG, "Unexpected value type " + annotation.value.getTag() + + " when logging UID for atom " + atom.atomId); + return; + } + } } StatsLog.write(builder.usePooledBuffer().build()); } |