Loading system/gd/hal/snoop_logger.cc +17 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,7 @@ size_t get_btsnooz_packet_length_to_write( } // namespace const std::string SnoopLogger::kBtSnoopLogModeDisabled = "disabled"; const std::string SnoopLogger::kBtSnoopLogModeTruncated = "truncated"; const std::string SnoopLogger::kBtSnoopLogModeFiltered = "filtered"; const std::string SnoopLogger::kBtSnoopLogModeFull = "full"; const std::string SnoopLogger::kSoCManufacturerQualcomm = "Qualcomm"; Loading @@ -203,6 +204,10 @@ const std::string SnoopLogger::kBtSnoopLogModeProperty = "persist.bluetooth.btsn const std::string SnoopLogger::kBtSnoopDefaultLogModeProperty = "persist.bluetooth.btsnoopdefaultmode"; const std::string SnoopLogger::kSoCManufacturerProperty = "ro.soc.manufacturer"; // The max ACL packet size (in bytes) in truncated logging mode. All information // past this point is truncated from a packet. static constexpr uint32_t kMaxTruncatedAclPacketSize = 100; SnoopLogger::SnoopLogger( std::string snoop_log_path, std::string snooz_log_path, Loading Loading @@ -236,6 +241,15 @@ SnoopLogger::SnoopLogger( delete_btsnoop_files(get_btsnoop_log_path(snoop_log_path_, true)); // delete snooz logs delete_btsnoop_files(snooz_log_path_); } else if (btsnoop_mode == kBtSnoopLogModeTruncated) { LOG_INFO("Snoop Logs truncated. Limiting to %u", kMaxTruncatedAclPacketSize); is_enabled_ = true; is_truncated_ = true; is_filtered_ = false; // delete filtered logs delete_btsnoop_files(get_btsnoop_log_path(snoop_log_path_, true)); // delete snooz logs delete_btsnoop_files(snooz_log_path_); } else { LOG_INFO("Snoop Logs disabled"); is_enabled_ = false; Loading Loading @@ -320,6 +334,9 @@ void SnoopLogger::Capture(const HciPacket& packet, Direction direction, PacketTy .dropped_packets = 0, .timestamp = htonll(timestamp_us + kBtSnoopEpochDelta), .type = static_cast<uint8_t>(type)}; if (is_truncated_ && type == PacketType::ACL) { header.length_captured = htonl(std::min(length, kMaxTruncatedAclPacketSize)); } { std::lock_guard<std::recursive_mutex> lock(file_mutex_); if (!is_enabled_) { Loading system/gd/hal/snoop_logger.h +2 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ class SnoopLogger : public ::bluetooth::Module { static const ModuleFactory Factory; static const std::string kBtSnoopLogModeDisabled; static const std::string kBtSnoopLogModeTruncated; static const std::string kBtSnoopLogModeFiltered; static const std::string kBtSnoopLogModeFull; static const std::string kSoCManufacturerQualcomm; Loading Loading @@ -124,6 +125,7 @@ class SnoopLogger : public ::bluetooth::Module { std::ofstream btsnoop_ostream_; bool is_enabled_ = false; bool is_filtered_ = false; bool is_truncated_ = false; size_t max_packets_per_file_; common::CircularBuffer<std::string> btsnooz_buffer_; bool qualcomm_debug_log_enabled_ = false; Loading Loading
system/gd/hal/snoop_logger.cc +17 −0 Original line number Diff line number Diff line Loading @@ -193,6 +193,7 @@ size_t get_btsnooz_packet_length_to_write( } // namespace const std::string SnoopLogger::kBtSnoopLogModeDisabled = "disabled"; const std::string SnoopLogger::kBtSnoopLogModeTruncated = "truncated"; const std::string SnoopLogger::kBtSnoopLogModeFiltered = "filtered"; const std::string SnoopLogger::kBtSnoopLogModeFull = "full"; const std::string SnoopLogger::kSoCManufacturerQualcomm = "Qualcomm"; Loading @@ -203,6 +204,10 @@ const std::string SnoopLogger::kBtSnoopLogModeProperty = "persist.bluetooth.btsn const std::string SnoopLogger::kBtSnoopDefaultLogModeProperty = "persist.bluetooth.btsnoopdefaultmode"; const std::string SnoopLogger::kSoCManufacturerProperty = "ro.soc.manufacturer"; // The max ACL packet size (in bytes) in truncated logging mode. All information // past this point is truncated from a packet. static constexpr uint32_t kMaxTruncatedAclPacketSize = 100; SnoopLogger::SnoopLogger( std::string snoop_log_path, std::string snooz_log_path, Loading Loading @@ -236,6 +241,15 @@ SnoopLogger::SnoopLogger( delete_btsnoop_files(get_btsnoop_log_path(snoop_log_path_, true)); // delete snooz logs delete_btsnoop_files(snooz_log_path_); } else if (btsnoop_mode == kBtSnoopLogModeTruncated) { LOG_INFO("Snoop Logs truncated. Limiting to %u", kMaxTruncatedAclPacketSize); is_enabled_ = true; is_truncated_ = true; is_filtered_ = false; // delete filtered logs delete_btsnoop_files(get_btsnoop_log_path(snoop_log_path_, true)); // delete snooz logs delete_btsnoop_files(snooz_log_path_); } else { LOG_INFO("Snoop Logs disabled"); is_enabled_ = false; Loading Loading @@ -320,6 +334,9 @@ void SnoopLogger::Capture(const HciPacket& packet, Direction direction, PacketTy .dropped_packets = 0, .timestamp = htonll(timestamp_us + kBtSnoopEpochDelta), .type = static_cast<uint8_t>(type)}; if (is_truncated_ && type == PacketType::ACL) { header.length_captured = htonl(std::min(length, kMaxTruncatedAclPacketSize)); } { std::lock_guard<std::recursive_mutex> lock(file_mutex_); if (!is_enabled_) { Loading
system/gd/hal/snoop_logger.h +2 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ class SnoopLogger : public ::bluetooth::Module { static const ModuleFactory Factory; static const std::string kBtSnoopLogModeDisabled; static const std::string kBtSnoopLogModeTruncated; static const std::string kBtSnoopLogModeFiltered; static const std::string kBtSnoopLogModeFull; static const std::string kSoCManufacturerQualcomm; Loading Loading @@ -124,6 +125,7 @@ class SnoopLogger : public ::bluetooth::Module { std::ofstream btsnoop_ostream_; bool is_enabled_ = false; bool is_filtered_ = false; bool is_truncated_ = false; size_t max_packets_per_file_; common::CircularBuffer<std::string> btsnooz_buffer_; bool qualcomm_debug_log_enabled_ = false; Loading