summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Maennich <maennich@google.com>2021-11-18 16:10:08 +0000
committerMatthias Maennich <maennich@google.com>2021-11-20 14:31:53 +0000
commit40563db38b39bc09c40eed8f833f06d1e14b35bc (patch)
tree8ae0cca1c61f80250053cb3500ba04c1b9f0510e
parent7c19921a0f0a125a53d31632d60fab96f8b1007a (diff)
downloadbuild-tools-40563db38b39bc09c40eed8f833f06d1e14b35bc.tar.gz
interceptor: add initial proto log format
This serves as a stable binary format for communication of state. Bug: 205577427 Signed-off-by: Matthias Maennich <maennich@google.com> Change-Id: I383723e5665a47769d7fbfc4187b7864476b59a1
-rw-r--r--interceptor/Android.bp11
-rw-r--r--interceptor/log.proto39
2 files changed, 50 insertions, 0 deletions
diff --git a/interceptor/Android.bp b/interceptor/Android.bp
index ae4fd6d..85081c5 100644
--- a/interceptor/Android.bp
+++ b/interceptor/Android.bp
@@ -14,6 +14,17 @@ cc_library_host_shared {
],
}
+cc_library_host_static {
+ name: "libinterceptor_log",
+ srcs: ["log.proto"],
+ proto: {
+ type: "full",
+ static: true,
+ export_proto_headers: true,
+ canonical_path_from_root: false,
+ },
+}
+
cc_binary_host {
name: "interceptor",
srcs: ["main.cc"],
diff --git a/interceptor/log.proto b/interceptor/log.proto
new file mode 100644
index 0000000..fc9e31d
--- /dev/null
+++ b/interceptor/log.proto
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto3";
+
+package interceptor.log;
+
+// A Command as traced by intercepting an execve() invocation.
+message Command {
+ string program = 1;
+ repeated string args = 2;
+ string current_dir = 3;
+ repeated string inputs = 4;
+ repeated string outputs = 5;
+};
+
+// A single message as emitted by an intercepted process. It can contain any of
+// the above messages.
+message Message {
+ oneof message { Command command = 1; }
+}
+
+// The entirety of a the final log should be stored as just this Log.
+message Log {
+ repeated Command commands = 1;
+}