diff options
author | 2024-06-17 08:59:36 +0000 | |
---|---|---|
committer | 2024-07-24 23:41:24 +0000 | |
commit | a3606b32ed62598e2fe8759429fb703cebfd0598 (patch) | |
tree | e956bd6a18a761345bdfa158dcf772102c605c3f | |
parent | 2d4a0ddce887d8e7b3feb0c90811f0b7118a8f48 (diff) |
floss: Add kBtSnoopLogModeKernel for btsnoop mode in kernel
Floss currently generates btsnoop logs in kernel space,
so Capture and DumpSnoozLogToFile are not required.
If we switch Floss to user space btsnoop logs,
we may need to update umask and output file path to
avoid permission errors.
Bug: 327542410
Tag: #floss
Test: btclient -c dumpsys
Test: m com.android.btservices
Flag: EXEMPT, floss only change
Change-Id: I887c033d20b31b15d93362be25e5c35e79c43eb1
-rw-r--r-- | system/gd/hal/snoop_logger.cc | 6 | ||||
-rw-r--r-- | system/gd/hal/snoop_logger.h | 1 | ||||
-rw-r--r-- | system/gd/sysprops/sysprops_module.cc | 2 | ||||
-rw-r--r-- | system/main/shim/stack.cc | 6 |
4 files changed, 11 insertions, 4 deletions
diff --git a/system/gd/hal/snoop_logger.cc b/system/gd/hal/snoop_logger.cc index ee19c2c4ce..44cd8baaa4 100644 --- a/system/gd/hal/snoop_logger.cc +++ b/system/gd/hal/snoop_logger.cc @@ -446,6 +446,7 @@ const std::string SnoopLogger::kBtSnoopLogFilterProfileRfcommProperty = const std::string SnoopLogger::kSoCManufacturerProperty = "ro.soc.manufacturer"; // persist.bluetooth.btsnooplogmode +const std::string SnoopLogger::kBtSnoopLogModeKernel = "kernel"; const std::string SnoopLogger::kBtSnoopLogModeDisabled = "disabled"; const std::string SnoopLogger::kBtSnoopLogModeFiltered = "filtered"; const std::string SnoopLogger::kBtSnoopLogModeFull = "full"; @@ -1165,6 +1166,9 @@ void SnoopLogger::Capture(const HciPacket& immutable_packet, Direction direction } btsnooz_buffer_.Push(ss.str()); return; + } else if (btsnoop_mode_ == kBtSnoopLogModeKernel) { + // Skip logging as btsnoop is done in kernel space + return; } FilterCapturedPacket(packet, direction, type, length, header); @@ -1250,7 +1254,7 @@ void SnoopLogger::ListDependencies(ModuleList* /* list */) const { void SnoopLogger::Start() { std::lock_guard<std::recursive_mutex> lock(file_mutex_); - if (btsnoop_mode_ != kBtSnoopLogModeDisabled) { + if (btsnoop_mode_ != kBtSnoopLogModeDisabled && btsnoop_mode_ != kBtSnoopLogModeKernel) { OpenNextSnoopLogFile(); if (btsnoop_mode_ == kBtSnoopLogModeFiltered) { diff --git a/system/gd/hal/snoop_logger.h b/system/gd/hal/snoop_logger.h index 1b03d1ab6a..656b3b1b36 100644 --- a/system/gd/hal/snoop_logger.h +++ b/system/gd/hal/snoop_logger.h @@ -155,6 +155,7 @@ public: static const std::string kBtSnoopLogFilterProfileRfcommProperty; static const std::string kSoCManufacturerProperty; + static const std::string kBtSnoopLogModeKernel; static const std::string kBtSnoopLogModeDisabled; static const std::string kBtSnoopLogModeFiltered; static const std::string kBtSnoopLogModeFull; diff --git a/system/gd/sysprops/sysprops_module.cc b/system/gd/sysprops/sysprops_module.cc index 769843765a..7a69da6906 100644 --- a/system/gd/sysprops/sysprops_module.cc +++ b/system/gd/sysprops/sysprops_module.cc @@ -122,6 +122,8 @@ void SyspropsModule::parse_config(std::string file_path) { // Profile "bluetooth.hid.wait_ms_after_uhid_open", "persist.bluetooth.avrcpcontrolversion", + // btsnoop logger + "persist.bluetooth.btsnooplogmode", }; auto config = storage::LegacyConfigFile::FromPath(file_path).Read(kDefaultCapacity); diff --git a/system/main/shim/stack.cc b/system/main/shim/stack.cc index 344cc1aab4..77c04d97d2 100644 --- a/system/main/shim/stack.cc +++ b/system/main/shim/stack.cc @@ -74,14 +74,14 @@ void Stack::StartEverything() { log::info("Starting Gd stack"); ModuleList modules; +#if TARGET_FLOSS + modules.add<sysprops::SyspropsModule>(); +#endif modules.add<metrics::CounterMetrics>(); modules.add<hal::HciHal>(); modules.add<hci::HciLayer>(); modules.add<storage::StorageModule>(); modules.add<shim::Dumpsys>(); -#if TARGET_FLOSS - modules.add<sysprops::SyspropsModule>(); -#endif modules.add<hci::Controller>(); modules.add<hci::acl_manager::AclScheduler>(); |