Add proto constants for hidden API logging.
These will be used by code in ART to log an event when a hidden API is
accessed.
Test: m
Bug: 77517571
Change-Id: I6ee0204a3c9e96e39982530b693a1cc33915f6a1
diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto
index 1f1ed59..cd2e2a4 100644
--- a/proto/src/metrics_constants.proto
+++ b/proto/src/metrics_constants.proto
@@ -178,6 +178,16 @@
TEXT_SELECTION_INVOCATION_LINK = 2;
}
+ // Access method for hidden API events. Type of data tagged with
+ // FIELD_HIDDEN_API_ACCESS_METHOD.
+ // This must be kept in sync with enum AccessMethod in art/runtime/hidden_api.h
+ enum HiddenApiAccessMethod {
+ ACCESS_METHOD_NONE = 0; // never logged, included for completeness
+ ACCESS_METHOD_REFLECTION = 1;
+ ACCESS_METHOD_JNI = 2;
+ ACCESS_METHOD_LINKING = 3; // never logged, included for completeness
+ }
+
// Known visual elements: views or controls.
enum View {
// Unknown view
@@ -5664,6 +5674,25 @@
// OS: P
BLUETOOTH_FRAGMENT = 1390;
+ // Enclosing category for group of FIELD_HIDDEN_API_FOO events, logged when
+ // an app uses a hidden API.
+ ACTION_HIDDEN_API_ACCESSED = 1391;
+
+ // Tagged data for ACTION_HIDDEN_API_ACCESSED. The metod of the hidden API
+ // access; see enum HiddenApiAccessMethod
+ // OS: P
+ FIELD_HIDDEN_API_ACCESS_METHOD = 1392;
+
+ // Tagged data for ACTION_HIDDEN_API_ACCESSED. Indicates that access was
+ // denied to the API.
+ // OS: P
+ FIELD_HIDDEN_API_ACCESS_DENIED = 1393;
+
+ // Tagged data for ACTION_HIDDEN_API_ACCESSED. The signature of the hidden
+ // API that was accessed.
+ // OS: P
+ FIELD_HIDDEN_API_SIGNATURE = 1394;
+
// This value should never appear in log outputs - it is reserved for
// internal platform metrics use.
NOTIFICATION_SHADE_COUNT = 1395;