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

Commit 4b3dea3b authored by Rahul Arya's avatar Rahul Arya
Browse files

[Private GATT] Add to libbluetooth

Links private GATT with the libbluetooth_jni.so, and sets up a basic
module system + FFI.

Bug: 255880936
Test: pts-bot
Change-Id: Ibc470d3fd13c20e97b23f16fc41330fcb9765c70
parent 3aab56f4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ cc_library_shared {
        "libbluetooth-types",
        "libbluetooth",
        "libc++fs",
        "libbluetooth_core_rs_bridge",
    ],
    sanitize: {
        scs: true,
+5 −0
Original line number Diff line number Diff line
@@ -28,6 +28,9 @@
#include "com_android_bluetooth.h"
#include "gd/common/init_flags.h"
#include "hardware/bt_gatt.h"
#include "rust/cxx.h"
#include "src/core/ffi.rs.h"
#include "src/gatt/ffi.rs.h"
#include "utils/Log.h"
#define info(fmt, ...) ALOGI("%s(L%d): " fmt, __func__, __LINE__, ##__VA_ARGS__)
#define debug(fmt, ...) \
@@ -1290,6 +1293,8 @@ static void initializeNative(JNIEnv* env, jobject object) {
  sGattIf->scanner->RegisterCallbacks(JniScanningCallbacks::GetInstance());

  mCallbacksObj = env->NewGlobalRef(object);

  bluetooth::rust_shim::init();
}

static void cleanupNative(JNIEnv* env, jobject object) {
+1 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ table InitFlagsData {
    periodic_advertising_adi_is_enabled:bool (privacy:"Any");
    queue_l2cap_coc_while_encrypting_is_enabled:bool (privacy:"Any");
    redact_log_is_enabled:bool (privacy:"Any");
    rust_event_loop_is_enabled:bool (privacy:"Any");
    sdp_serialization_is_enabled:bool (privacy:"Any");
    sdp_skip_rnr_if_known_is_enabled:bool (privacy:"Any");
    set_min_encryption_is_enabled:bool (privacy:"Any");
+3 −1
Original line number Diff line number Diff line
@@ -65,8 +65,10 @@ flatbuffers::Offset<bluetooth::common::InitFlagsData> bluetooth::dumpsys::InitFl
  builder.add_logging_debug_enabled_for_all_is_enabled(initFlags::logging_debug_enabled_for_all_is_enabled());
  builder.add_pass_phy_update_callback_is_enabled(initFlags::pass_phy_update_callback_is_enabled());
  builder.add_periodic_advertising_adi_is_enabled(bluetooth::common::init_flags::periodic_advertising_adi_is_enabled());
  builder.add_queue_l2cap_coc_while_encrypting_is_enabled(initFlags::queue_l2cap_coc_while_encrypting_is_enabled());
  builder.add_queue_l2cap_coc_while_encrypting_is_enabled(
      initFlags::queue_l2cap_coc_while_encrypting_is_enabled());
  builder.add_redact_log_is_enabled(initFlags::redact_log_is_enabled());
  builder.add_rust_event_loop_is_enabled(initFlags::rust_event_loop_is_enabled());
  builder.add_sdp_serialization_is_enabled(initFlags::sdp_serialization_is_enabled());
  builder.add_sdp_skip_rnr_if_known_is_enabled(initFlags::sdp_skip_rnr_if_known_is_enabled());
  builder.add_set_min_encryption_is_enabled(bluetooth::common::init_flags::set_min_encryption_is_enabled());
+1 −0
Original line number Diff line number Diff line
@@ -276,6 +276,7 @@ init_flags!(
        periodic_advertising_adi = true,
        queue_l2cap_coc_while_encrypting = true,
        redact_log = true,
        rust_event_loop,
        sdp_serialization = true,
        sdp_skip_rnr_if_known = true,
        set_min_encryption = true,
Loading