diff --git a/gxp/Android.bp b/gxp/Android.bp
new file mode 100644
index 0000000..f3683fc
--- /dev/null
+++ b/gxp/Android.bp
@@ -0,0 +1,19 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+cc_binary {
+    name: "dump_gxp",
+    srcs: ["dump_gxp.cpp"],
+    cflags: [
+        "-Wall",
+        "-Wextra",
+        "-Werror",
+    ],
+    shared_libs: [
+        "libbase",
+	"libdump",
+    ],
+    vendor: true,
+    relative_install_path: "dump",
+}
diff --git a/gxp/dump.mk b/gxp/dump.mk
new file mode 100644
index 0000000..c1f6300
--- /dev/null
+++ b/gxp/dump.mk
@@ -0,0 +1,4 @@
+BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/gxp/sepolicy/
+
+PRODUCT_PACKAGES_DEBUG += dump_gxp
+
diff --git a/gxp/dump_gxp.cpp b/gxp/dump_gxp.cpp
new file mode 100644
index 0000000..80730fa
--- /dev/null
+++ b/gxp/dump_gxp.cpp
@@ -0,0 +1,36 @@
+/*
+ * 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 <dump/pixel_dump.h>
+#include <android-base/properties.h>
+#include <android-base/file.h>
+
+#define maxGxpDebugDumps 8
+
+int main() {
+    if(::android::base::GetBoolProperty("vendor.gxp.attach_to_bugreport", false)) {
+        std::string outputDir = concatenatePath(BUGREPORT_PACKING_DIR, "gxp_ssrdump");
+        printf("Creating %s", outputDir.c_str());
+        if (mkdir(outputDir.c_str(), 0777) == -1) {
+            printf("Unable to create folder: %s\n", outputDir.c_str());
+            return 0;
+        }
+
+        dumpLogs("/data/vendor/ssrdump/coredump", outputDir.c_str(), maxGxpDebugDumps, "coredump_gxp_");
+        dumpLogs("/data/vendor/ssrdump", outputDir.c_str(), maxGxpDebugDumps, "crashinfo_gxp_");
+    }
+    return 0;
+}
+
diff --git a/gxp/sepolicy/dump_gxp.te b/gxp/sepolicy/dump_gxp.te
new file mode 100644
index 0000000..61a0482
--- /dev/null
+++ b/gxp/sepolicy/dump_gxp.te
@@ -0,0 +1,11 @@
+pixel_bugreport(dump_gxp)
+
+userdebug_or_eng(`
+  allow dump_gxp radio_vendor_data_file:dir create_dir_perms;
+  allow dump_gxp radio_vendor_data_file:file create_file_perms;
+  allow dump_gxp sscoredump_vendor_data_coredump_file:dir r_dir_perms;
+  allow dump_gxp sscoredump_vendor_data_coredump_file:file r_file_perms;
+  allow dump_gxp sscoredump_vendor_data_crashinfo_file:dir r_dir_perms;
+  allow dump_gxp sscoredump_vendor_data_crashinfo_file:file r_file_perms;
+')
+
diff --git a/gxp/sepolicy/file_contexts b/gxp/sepolicy/file_contexts
new file mode 100644
index 0000000..80420f4
--- /dev/null
+++ b/gxp/sepolicy/file_contexts
@@ -0,0 +1,2 @@
+/vendor/bin/dump/dump_gxp           u:object_r:dump_gxp_exec:s0
+
