From 2a520ebbae0ee855c3620ab5d097ab9dd14d06d8 Mon Sep 17 00:00:00 2001 From: Adam Shih Date: Thu, 2 Mar 2023 14:15:57 +0800 Subject: [PATCH] Move modem dump log to gs-common Bug: 240530709 Test: adb bugreport and the following file got to dumpstate_board.bin: extended_log_uim.txt extended_log_os.txt nv_normal.bin nv_protected.bin Change-Id: Ie6439c7487b11c564cd6c0d1266928e6b9b384ee --- modem/Android.bp | 16 ++++++++++++++++ modem/dump_modemlog.cpp | 23 +++++++++++++++++++++++ modem/modem.mk | 2 ++ modem/sepolicy/dump_modemlog.te | 9 +++++++++ modem/sepolicy/file_contexts | 2 ++ 5 files changed, 52 insertions(+) create mode 100644 modem/dump_modemlog.cpp create mode 100644 modem/sepolicy/dump_modemlog.te 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 @@ sh_binary { 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 + +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 +