Annotate trace packets with a trusted producer uid
This patch adds a trusted uid field to the trace packet message, which
identifies the POSIX user account which submitted the associated trace
data to the tracing service. The field is created by the service in a
way that makes it unspoofable. Later we will also include a mapping
from package names to uids in the trace.
Bug: 69964495,73283884
Change-Id: I8fdacdd00ab8efd5d5bca7d4b164dd3c4c7f0741
diff --git a/Android.bp b/Android.bp
index e4e538a..71abf8e 100644
--- a/Android.bp
+++ b/Android.bp
@@ -54,6 +54,7 @@
"src/tracing/core/data_source_config.cc",
"src/tracing/core/data_source_descriptor.cc",
"src/tracing/core/id_allocator.cc",
+ "src/tracing/core/packet_stream_validator.cc",
"src/tracing/core/service_impl.cc",
"src/tracing/core/shared_memory_abi.cc",
"src/tracing/core/shared_memory_arbiter_impl.cc",
@@ -119,6 +120,7 @@
"src/tracing/core/data_source_config.cc",
"src/tracing/core/data_source_descriptor.cc",
"src/tracing/core/id_allocator.cc",
+ "src/tracing/core/packet_stream_validator.cc",
"src/tracing/core/service_impl.cc",
"src/tracing/core/shared_memory_abi.cc",
"src/tracing/core/shared_memory_arbiter_impl.cc",
@@ -224,6 +226,7 @@
"src/tracing/core/data_source_config.cc",
"src/tracing/core/data_source_descriptor.cc",
"src/tracing/core/id_allocator.cc",
+ "src/tracing/core/packet_stream_validator.cc",
"src/tracing/core/service_impl.cc",
"src/tracing/core/shared_memory_abi.cc",
"src/tracing/core/shared_memory_arbiter_impl.cc",
@@ -1339,6 +1342,7 @@
"protos/perfetto/trace/test_event.proto",
"protos/perfetto/trace/trace.proto",
"protos/perfetto/trace/trace_packet.proto",
+ "protos/perfetto/trace/trusted_packet.proto",
],
tools: [
"aprotoc",
@@ -1348,6 +1352,7 @@
"external/perfetto/protos/perfetto/trace/test_event.pb.cc",
"external/perfetto/protos/perfetto/trace/trace.pb.cc",
"external/perfetto/protos/perfetto/trace/trace_packet.pb.cc",
+ "external/perfetto/protos/perfetto/trace/trusted_packet.pb.cc",
],
}
@@ -1358,6 +1363,7 @@
"protos/perfetto/trace/test_event.proto",
"protos/perfetto/trace/trace.proto",
"protos/perfetto/trace/trace_packet.proto",
+ "protos/perfetto/trace/trusted_packet.proto",
],
tools: [
"aprotoc",
@@ -1367,6 +1373,7 @@
"external/perfetto/protos/perfetto/trace/test_event.pb.h",
"external/perfetto/protos/perfetto/trace/trace.pb.h",
"external/perfetto/protos/perfetto/trace/trace_packet.pb.h",
+ "external/perfetto/protos/perfetto/trace/trusted_packet.pb.h",
],
export_include_dirs: [
"protos",
@@ -1380,6 +1387,7 @@
"protos/perfetto/trace/test_event.proto",
"protos/perfetto/trace/trace.proto",
"protos/perfetto/trace/trace_packet.proto",
+ "protos/perfetto/trace/trusted_packet.proto",
],
tools: [
"aprotoc",
@@ -1390,6 +1398,7 @@
"external/perfetto/protos/perfetto/trace/test_event.pbzero.cc",
"external/perfetto/protos/perfetto/trace/trace.pbzero.cc",
"external/perfetto/protos/perfetto/trace/trace_packet.pbzero.cc",
+ "external/perfetto/protos/perfetto/trace/trusted_packet.pbzero.cc",
],
}
@@ -1400,6 +1409,7 @@
"protos/perfetto/trace/test_event.proto",
"protos/perfetto/trace/trace.proto",
"protos/perfetto/trace/trace_packet.proto",
+ "protos/perfetto/trace/trusted_packet.proto",
],
tools: [
"aprotoc",
@@ -1410,6 +1420,7 @@
"external/perfetto/protos/perfetto/trace/test_event.pbzero.h",
"external/perfetto/protos/perfetto/trace/trace.pbzero.h",
"external/perfetto/protos/perfetto/trace/trace_packet.pbzero.h",
+ "external/perfetto/protos/perfetto/trace/trusted_packet.pbzero.h",
],
export_include_dirs: [
"protos",
@@ -1725,6 +1736,7 @@
"src/tracing/core/data_source_config.cc",
"src/tracing/core/data_source_descriptor.cc",
"src/tracing/core/id_allocator.cc",
+ "src/tracing/core/packet_stream_validator.cc",
"src/tracing/core/service_impl.cc",
"src/tracing/core/shared_memory_abi.cc",
"src/tracing/core/shared_memory_arbiter_impl.cc",
@@ -1850,6 +1862,8 @@
"src/tracing/core/data_source_descriptor.cc",
"src/tracing/core/id_allocator.cc",
"src/tracing/core/id_allocator_unittest.cc",
+ "src/tracing/core/packet_stream_validator.cc",
+ "src/tracing/core/packet_stream_validator_unittest.cc",
"src/tracing/core/service_impl.cc",
"src/tracing/core/service_impl_unittest.cc",
"src/tracing/core/shared_memory_abi.cc",