diff --git a/aoc/Android.bp b/aoc/Android.bp
new file mode 100644
index 0000000..736f968
--- /dev/null
+++ b/aoc/Android.bp
@@ -0,0 +1,16 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+cc_binary {
+    name: "dump_aoc",
+    srcs: ["dump_aoc.cpp"],
+    cflags: [
+        "-Wall",
+        "-Wextra",
+        "-Werror",
+    ],
+    shared_libs: ["libbase"],
+    vendor: true,
+    relative_install_path: "dump",
+}
diff --git a/aoc/aoc.mk b/aoc/aoc.mk
new file mode 100644
index 0000000..2bbc8d3
--- /dev/null
+++ b/aoc/aoc.mk
@@ -0,0 +1,3 @@
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/aoc/sepolicy
+
+PRODUCT_PACKAGES += dump_aoc
diff --git a/aoc/dump_aoc.cpp b/aoc/dump_aoc.cpp
new file mode 100644
index 0000000..a3e0088
--- /dev/null
+++ b/aoc/dump_aoc.cpp
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2022 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.
+ */
+#include <stdio.h>
+#include <string>
+#include <android-base/file.h>
+#include <fstream>
+#include <iostream>
+
+// Format title and content output.
+void dumpFileContent(const char* title, const char* file_path) {
+    std::string content;
+    printf("------ %s (%s) ------\n", title, file_path);
+    if (android::base::ReadFileToString(file_path, &content)) {
+        printf("%s\n", content.c_str());
+    } else {
+        printf("Unable to read %s\n", file_path);
+    }
+    return;
+}
+
+void command(const char* title, const char* cmd){
+    printf("------ %s (%s) ------\n", title, cmd);
+    system(cmd);
+    return;
+}
+
+// Dump Aoc.
+int main() {
+    setbuf(stdout, NULL);
+    dumpFileContent("AoC Service Status", "/sys/devices/platform/19000000.aoc/services");
+    dumpFileContent("AoC Restarts", "/sys/devices/platform/19000000.aoc/restart_count");
+    dumpFileContent("AoC Coredumps", "/sys/devices/platform/19000000.aoc/coredump_count");
+    dumpFileContent("AoC ring buf wake", "/sys/devices/platform/19000000.aoc/control/ring_buffer_wakeup");
+    dumpFileContent("AoC host ipc wake", "/sys/devices/platform/19000000.aoc/control/host_ipc_wakeup");
+    dumpFileContent("AoC usf wake", "/sys/devices/platform/19000000.aoc/control/usf_wakeup");
+    dumpFileContent("AoC audio wake", "/sys/devices/platform/19000000.aoc/control/audio_wakeup");
+    dumpFileContent("AoC logging wake", "/sys/devices/platform/19000000.aoc/control/logging_wakeup");
+    dumpFileContent("AoC hotword wake", "/sys/devices/platform/19000000.aoc/control/hotword_wakeup");
+    dumpFileContent("AoC memory exception wake", "/sys/devices/platform/19000000.aoc/control/memory_exception");
+    dumpFileContent("AoC memory votes", "/sys/devices/platform/19000000.aoc/control/memory_votes_a32");
+    dumpFileContent("AoC memory votes", "/sys/devices/platform/19000000.aoc/control/memory_votes_ff1");
+    command("clean AoC buffer","echo ' ' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
+    command("AoC Heap Stats (A32)", "echo 'dbg heap -c 1' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
+    command("AoC Heap Stats (F1)", "echo 'dbg heap -c 2' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
+    command("AoC Heap Stats (HF0)", "echo 'dbg heap -c 3' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
+    command("AoC Heap Stats (HF1)", "echo 'dbg heap -c 4' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
+    return 0;
+}
diff --git a/aoc/sepolicy/dump_aoc.te b/aoc/sepolicy/dump_aoc.te
new file mode 100644
index 0000000..f5f085c
--- /dev/null
+++ b/aoc/sepolicy/dump_aoc.te
@@ -0,0 +1,7 @@
+pixel_bugreport(dump_aoc)
+allow dump_aoc sysfs_aoc:dir search;
+allow dump_aoc sysfs_aoc_dumpstate:file r_file_perms;
+allow dump_aoc aoc_device:chr_file rw_file_perms;
+allow dump_aoc vendor_shell_exec:file execute_no_trans;
+allow dump_aoc vendor_toolbox_exec:file execute_no_trans;
+
diff --git a/aoc/sepolicy/file_contexts b/aoc/sepolicy/file_contexts
new file mode 100644
index 0000000..bfeb604
--- /dev/null
+++ b/aoc/sepolicy/file_contexts
@@ -0,0 +1 @@
+/vendor/bin/dump/dump_aoc      u:object_r:dump_aoc_exec:s0
