Merge "Move common display dump to gs-common" into udc-dev
diff --git a/modem/Android.bp b/modem/Android.bp
index 0376ca6..2bf023c 100644
--- a/modem/Android.bp
+++ b/modem/Android.bp
@@ -8,3 +8,19 @@
     vendor: true,
     sub_dir: "dump",
 }
+
+cc_binary {
+    name: "dump_modemlog",
+    srcs: ["dump_modemlog.cpp"],
+    cflags: [
+        "-Wall",
+        "-Wextra",
+        "-Werror",
+    ],
+    shared_libs: [
+        "libdump",
+    ],
+    vendor: true,
+    relative_install_path: "dump",
+}
+
diff --git a/modem/dump_modemlog.cpp b/modem/dump_modemlog.cpp
new file mode 100644
index 0000000..216cffe
--- /dev/null
+++ b/modem/dump_modemlog.cpp
@@ -0,0 +1,23 @@
+/*
+ * 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>
+
+int main() {
+    dumpLogs("/data/vendor/radio/extended_logs", "/data/vendor/radio/logs/always-on/all_logs", 20, "extended_log_");
+    copyFile("/mnt/vendor/efs/nv_normal.bin", "/data/vendor/radio/logs/always-on/all_logs/nv_normal.bin");
+    copyFile("/mnt/vendor/efs/nv_protected.bin", "/data/vendor/radio/logs/always-on/all_logs/nv_protected.bin");
+    return 0;
+}
diff --git a/modem/modem.mk b/modem/modem.mk
index fe4633d..9cde048 100644
--- a/modem/modem.mk
+++ b/modem/modem.mk
@@ -1,3 +1,5 @@
 BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/modem/sepolicy
 
 PRODUCT_PACKAGES += dump_modem.sh
+PRODUCT_PACKAGES_DEBUG += dump_modemlog
+
diff --git a/modem/sepolicy/dump_modemlog.te b/modem/sepolicy/dump_modemlog.te
new file mode 100644
index 0000000..c49bd5e
--- /dev/null
+++ b/modem/sepolicy/dump_modemlog.te
@@ -0,0 +1,9 @@
+pixel_bugreport(dump_modemlog)
+
+userdebug_or_eng(`
+  allow dump_modemlog mnt_vendor_file:dir search;
+  allow dump_modemlog modem_efs_file:dir search;
+  allow dump_modemlog modem_efs_file:file r_file_perms;
+  allow dump_modemlog radio_vendor_data_file:dir create_dir_perms;
+  allow dump_modemlog radio_vendor_data_file:file create_file_perms;
+')
diff --git a/modem/sepolicy/file_contexts b/modem/sepolicy/file_contexts
index d7f6be5..29315e9 100644
--- a/modem/sepolicy/file_contexts
+++ b/modem/sepolicy/file_contexts
@@ -1 +1,3 @@
 /vendor/bin/dump/dump_modem\.sh      u:object_r:dump_modem_exec:s0
+/vendor/bin/dump/dump_modemlog       u:object_r:dump_modemlog_exec:s0
+