From 8c9a4c7cc1739f9bbaf2b55e9028b5121e0a7ca7 Mon Sep 17 00:00:00 2001 From: jonerlin Date: Tue, 30 May 2023 00:57:49 +0800 Subject: [PATCH] collect bt firmware dump and vendor logging in bugreport Bug: 284692164 Test: make fw dump and vendor snoop log and triger bugreport Change-Id: I3f751e4aa88876a0ebed34e4505db909f550d9ac --- bcmbt/dump/Android.bp | 20 +++++++++++++++++ bcmbt/dump/dump_bcmbt.cpp | 37 +++++++++++++++++++++++++++++++ bcmbt/dump/dumplog.mk | 3 +++ bcmbt/dump/sepolicy/dump_bcmbt.te | 11 +++++++++ bcmbt/dump/sepolicy/file_contexts | 1 + 5 files changed, 72 insertions(+) create mode 100644 bcmbt/dump/Android.bp create mode 100644 bcmbt/dump/dump_bcmbt.cpp create mode 100644 bcmbt/dump/dumplog.mk create mode 100644 bcmbt/dump/sepolicy/dump_bcmbt.te create mode 100644 bcmbt/dump/sepolicy/file_contexts diff --git a/bcmbt/dump/Android.bp b/bcmbt/dump/Android.bp new file mode 100644 index 0000000..c22d559 --- /dev/null +++ b/bcmbt/dump/Android.bp @@ -0,0 +1,20 @@ +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +cc_binary { + name: "dump_bcmbt", + srcs: ["dump_bcmbt.cpp"], + cflags: [ + "-Wall", + "-Wextra", + "-Werror", + ], + shared_libs: [ + "libbase", + "libdump", + "liblog", + ], + vendor: true, + relative_install_path: "dump", +} diff --git a/bcmbt/dump/dump_bcmbt.cpp b/bcmbt/dump/dump_bcmbt.cpp new file mode 100644 index 0000000..91dd7fa --- /dev/null +++ b/bcmbt/dump/dump_bcmbt.cpp @@ -0,0 +1,37 @@ +/* + * Copyright 2023 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 +//#include +#include + +#define BCMBT_SNOOP_LOG_DIRECTORY "/data/vendor/bluetooth" +#define BCMBT_FW_LOG_DIRECTORY "/data/vendor/ssrdump/coredump" +#define BCMBT_SNOOP_LOG_PREFIX "btsnoop_hci_vnd" +#define BCMBT_FW_DUMP_LOG_PREFIX "coredump_bt_socdump_" +#define BCMBT_CHRE_DUMP_LOG_PREFIX "coredump_bt_chredump_" + +int main() { + std::string outputDir = concatenatePath(BUGREPORT_PACKING_DIR, "bcmbt"); + if (mkdir(outputDir.c_str(), 0777) == -1) { + printf("Unable to create folder: %s\n", outputDir.c_str()); + return 0; + } + + dumpLogs(BCMBT_SNOOP_LOG_DIRECTORY, outputDir.c_str(), 2, BCMBT_SNOOP_LOG_PREFIX); + dumpLogs(BCMBT_FW_LOG_DIRECTORY, outputDir.c_str(), 10, BCMBT_FW_DUMP_LOG_PREFIX); + dumpLogs(BCMBT_FW_LOG_DIRECTORY, outputDir.c_str(), 10, BCMBT_CHRE_DUMP_LOG_PREFIX); + return 0; +} diff --git a/bcmbt/dump/dumplog.mk b/bcmbt/dump/dumplog.mk new file mode 100644 index 0000000..8dc1765 --- /dev/null +++ b/bcmbt/dump/dumplog.mk @@ -0,0 +1,3 @@ +BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs-common/bcmbt/dump/sepolicy/ + +PRODUCT_PACKAGES_DEBUG += dump_bcmbt diff --git a/bcmbt/dump/sepolicy/dump_bcmbt.te b/bcmbt/dump/sepolicy/dump_bcmbt.te new file mode 100644 index 0000000..8fa76b8 --- /dev/null +++ b/bcmbt/dump/sepolicy/dump_bcmbt.te @@ -0,0 +1,11 @@ +pixel_bugreport(dump_bcmbt) + +userdebug_or_eng(` + allow dump_bcmbt radio_vendor_data_file:dir create_dir_perms; + allow dump_bcmbt radio_vendor_data_file:file create_file_perms; + allow dump_bcmbt vendor_bt_data_file:dir r_dir_perms; + allow dump_bcmbt vendor_bt_data_file:file r_file_perms; + allow dump_bcmbt sscoredump_vendor_data_coredump_file:dir r_dir_perms; + allow dump_bcmbt sscoredump_vendor_data_coredump_file:file r_file_perms; + allow dump_bcmbt sscoredump_vendor_data_crashinfo_file:dir search; +') diff --git a/bcmbt/dump/sepolicy/file_contexts b/bcmbt/dump/sepolicy/file_contexts new file mode 100644 index 0000000..e3f0df6 --- /dev/null +++ b/bcmbt/dump/sepolicy/file_contexts @@ -0,0 +1 @@ +/vendor/bin/dump/dump_bcmbt u:object_r:dump_bcmbt_exec:s0