Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e83464d authored by Michael Sun's avatar Michael Sun
Browse files

btaa: subscribe to bt_snoop to receive HCI data

Subscribe to the btsnoop_mem to receive HCI data when captured.

Tag: #feature
Bug: 170315554
Test: verified BTAA module receives specified HCI packets

Change-Id: Ida69a204f11cb13aca6eda28a5850b8b576e5f17
parent 99172974
Loading
Loading
Loading
Loading

btaa/Android.bp

100755 → 100644
+8 −0
Original line number Diff line number Diff line
@@ -3,12 +3,20 @@
cc_library_static {
    name: "libbtaa",
    defaults: ["fluoride_defaults"],
    include_dirs: [
        "packages/modules/Bluetooth/system",
        "packages/modules/Bluetooth/system/hci/include",
        "packages/modules/Bluetooth/system/stack/include",
    ],
    local_include_dirs: [
        "include",
    ],
    srcs: [
        "src/activity_attribution.cc",
    ],
    static_libs: [
        "libbt-hci",
    ],
    shared_libs: [
        "android.system.suspend.control-ndk",
        "libbinder_ndk",
+11 −0
Original line number Diff line number Diff line
@@ -22,6 +22,8 @@
#include <android/binder_manager.h>
#include <base/logging.h>

#include "btsnoop_mem.h"

using aidl::android::system::suspend::ISuspendCallback;
using aidl::android::system::suspend::ISuspendControlService;
using namespace ndk;
@@ -40,6 +42,8 @@ class ActivityAttributionImpl : public ActivityAttribution {
  ~ActivityAttributionImpl() override = default;
  ActivityAttributionImpl(ActivityAttributionCallbacks* callbacks);

  static void onHciCaptured(const uint16_t type, const uint8_t* data,
                            const size_t length, const uint64_t timestamp_us);
  void onWakelockAcquired(void);
  void onWakelockReleased(void);
  void onWakeup(bool success, const std::vector<std::string>& wakeupReasons);
@@ -52,6 +56,11 @@ ActivityAttributionImpl::ActivityAttributionImpl(
    ActivityAttributionCallbacks* callbacks)
    : mCallbacks(callbacks) {}

void ActivityAttributionImpl::onHciCaptured(const uint16_t type,
                                            const uint8_t* data,
                                            const size_t length,
                                            const uint64_t timestamp_us) {}

void ActivityAttributionImpl::onWakelockAcquired(void) {}

void ActivityAttributionImpl::onWakelockReleased(void) {}
@@ -86,6 +95,8 @@ void ActivityAttribution::Initialize(ActivityAttributionCallbacks* callbacks) {
  }
  instance.reset(new ActivityAttributionImpl(callbacks));

  activity_attribution_set_callback(instance->onHciCaptured);

  controlService = ISuspendControlService::fromBinder(
      SpAIBinder(AServiceManager_getService("suspend_control")));
  if (!controlService) {