From e634b3db677ea457101ede133d7fc8a31450a900 Mon Sep 17 00:00:00 2001
From: Richard Gaywood <richardgaywood@google.com>
Date: Thu, 10 Mar 2022 10:55:06 +0000
Subject: [PATCH] Revert "check check, is anyone there? *static*"

Revert submission 17016040-change-17016040

Reason for revert: DroidMonitor-triggered revert due to breakage , bug b/223737148
BUG: 223737148
Reverted Changes:
I6cdcee15a:Fix bluetooth and aac dependency
I0d232c8bc:check check, is anyone there? *static*

Change-Id: I76a03e2b2d54e27e590a97001e9ef0ef6c98a374
Test: N/A, this is a rollback
---
 android/app/Android.bp                        |  11 +-
 .../app/jni/com_android_bluetooth_a2dp.cpp    |   2 +
 .../jni/com_android_bluetooth_a2dp_sink.cpp   |   2 +
 ...com_android_bluetooth_avrcp_controller.cpp |   2 +
 ...oid_bluetooth_btservice_AdapterService.cpp |   8 -
 ...android_bluetooth_csip_set_coordinator.cpp |   1 +
 .../app/jni/com_android_bluetooth_gatt.cpp    |   2 +
 .../jni/com_android_bluetooth_hap_client.cpp  |   2 +
 .../jni/com_android_bluetooth_hearing_aid.cpp |   2 +
 android/app/jni/com_android_bluetooth_hfp.cpp |   2 +
 .../jni/com_android_bluetooth_hfpclient.cpp   |   1 +
 .../jni/com_android_bluetooth_hid_device.cpp  |   2 +
 .../jni/com_android_bluetooth_hid_host.cpp    |   2 +
 .../jni/com_android_bluetooth_le_audio.cpp    |   2 +
 android/app/jni/com_android_bluetooth_pan.cpp |   2 +
 android/app/jni/com_android_bluetooth_sdp.cpp |   2 +
 android/app/jni/com_android_bluetooth_vc.cpp  |   2 +
 apex/Android.bp                               |   3 +
 system/audio_hal_interface/fuzzer/Android.bp  |   3 -
 system/bta/Android.bp                         |  22 ++-
 system/btcore/Android.bp                      |  14 +-
 system/btcore/fuzzer/Android.bp               |   3 -
 system/btif/Android.bp                        |  41 ++--
 system/build/Android.bp                       | 176 +-----------------
 system/common/Android.bp                      |   9 +-
 system/device/Android.bp                      |   5 +-
 system/gd/Android.bp                          |  41 +---
 system/gd/common/byte_array_test.cc           |   4 +-
 system/gd/common/circular_buffer_test.cc      |   2 +-
 system/gd/common/list_map_test.cc             |   6 +-
 system/gd/common/lru_cache_test.cc            |  20 +-
 system/gd/common/multi_priority_queue_test.cc |   2 +-
 system/gd/common/sync_map_count_test.cc       |  40 ++--
 system/gd/hal/hci_hal_host_test.cc            |   2 +-
 system/gd/hci/class_of_device_unittest.cc     |   4 +-
 system/gd/hci/hci_packets_test.cc             |  34 ++--
 system/gd/l2cap/l2cap_packet_test.cc          |  10 +-
 system/gd/os/linux_generic/queue_unittest.cc  |   6 +-
 .../wakelock_manager_unittest.cc              |  10 +-
 .../packet/fragmenting_inserter_unittest.cc   |  14 +-
 system/gd/packet/packet_view_unittest.cc      |  12 +-
 .../parser/test/generated_packet_test.cc      |   6 +-
 system/gd/rust/shim/Android.bp                |  25 ++-
 system/gd/rust/topshim/Android.bp             |   8 +-
 system/gd/rust/topshim/btav/btav_shim.cc      |   2 +-
 system/gd/rust/topshim/btif/btif_shim.cc      |   2 +-
 system/gd/rust/topshim/facade/Android.bp      |  19 +-
 system/gd/storage/config_cache_helper_test.cc |   4 +-
 system/hci/Android.bp                         |  66 ++++++-
 system/include/Android.bp                     |   2 +-
 system/main/Android.bp                        |  72 ++++++-
 system/osi/Android.bp                         |  10 +-
 system/packet/Android.bp                      |   4 +-
 system/packet/tests/fuzzers/Android.bp        |  50 -----
 system/profile/avrcp/Android.bp               |  12 +-
 system/profile/sdp/Android.bp                 |   2 -
 system/service/Android.bp                     |  89 +--------
 system/service/hal/bluetooth_interface.cc     |  11 --
 system/stack/Android.bp                       |  21 ++-
 system/test/headless/Android.bp               |  21 +--
 system/test/rootcanal/Android.bp              |  12 +-
 system/test/suite/Android.bp                  | 142 ++++----------
 system/test/suite/adapter/bluetooth_test.cc   |  10 +-
 63 files changed, 449 insertions(+), 671 deletions(-)

diff --git a/android/app/Android.bp b/android/app/Android.bp
index 48cd34ff796..2d986ae2e4e 100644
--- a/android/app/Android.bp
+++ b/android/app/Android.bp
@@ -52,7 +52,6 @@ java_library {
 
 cc_library_shared {
     name: "libbluetooth_jni",
-    defaults: ["fluoride_full_defaults"],
     srcs: ["jni/**/*.cpp"],
     header_libs: [
         "jni_headers",
@@ -61,9 +60,14 @@ cc_library_shared {
     include_dirs: [
         "packages/modules/Bluetooth/system/types",
     ],
+    shared_libs: [
+        "libbase",
+        "libchrome",
+        "liblog",
+        "libnativehelper",
+    ],
     static_libs: [
         "libbluetooth-types",
-        "libbluetooth",
     ],
     cflags: [
         "-Wall",
@@ -74,6 +78,9 @@ cc_library_shared {
     sanitize: {
         scs: true,
     },
+    apex_available: [
+        "com.android.bluetooth",
+    ],
     min_sdk_version: "current",
 }
 
diff --git a/android/app/jni/com_android_bluetooth_a2dp.cpp b/android/app/jni/com_android_bluetooth_a2dp.cpp
index 3f7b1634798..abc8830b518 100644
--- a/android/app/jni/com_android_bluetooth_a2dp.cpp
+++ b/android/app/jni/com_android_bluetooth_a2dp.cpp
@@ -16,6 +16,8 @@
 
 #define LOG_TAG "BluetoothA2dpServiceJni"
 
+#define LOG_NDEBUG 0
+
 #include "com_android_bluetooth.h"
 #include "hardware/bt_av.h"
 #include "utils/Log.h"
diff --git a/android/app/jni/com_android_bluetooth_a2dp_sink.cpp b/android/app/jni/com_android_bluetooth_a2dp_sink.cpp
index 6b2cbbfbe06..a74b18d6fba 100644
--- a/android/app/jni/com_android_bluetooth_a2dp_sink.cpp
+++ b/android/app/jni/com_android_bluetooth_a2dp_sink.cpp
@@ -16,6 +16,8 @@
 
 #define LOG_TAG "BluetoothA2dpSinkServiceJni"
 
+#define LOG_NDEBUG 0
+
 #include "com_android_bluetooth.h"
 #include "hardware/bt_av.h"
 #include "utils/Log.h"
diff --git a/android/app/jni/com_android_bluetooth_avrcp_controller.cpp b/android/app/jni/com_android_bluetooth_avrcp_controller.cpp
index 316e1d0ac17..86bf0687913 100755
--- a/android/app/jni/com_android_bluetooth_avrcp_controller.cpp
+++ b/android/app/jni/com_android_bluetooth_avrcp_controller.cpp
@@ -16,6 +16,8 @@
 
 #define LOG_TAG "BluetoothAvrcpControllerJni"
 
+#define LOG_NDEBUG 0
+
 #include "com_android_bluetooth.h"
 #include "hardware/bt_rc.h"
 #include "utils/Log.h"
diff --git a/android/app/jni/com_android_bluetooth_btservice_AdapterService.cpp b/android/app/jni/com_android_bluetooth_btservice_AdapterService.cpp
index e761eb638d2..3c5bcdb276a 100644
--- a/android/app/jni/com_android_bluetooth_btservice_AdapterService.cpp
+++ b/android/app/jni/com_android_bluetooth_btservice_AdapterService.cpp
@@ -36,9 +36,6 @@
 #include <pthread.h>
 
 using bluetooth::Uuid;
-#ifndef DYNAMIC_LOAD_BLUETOOTH
-extern bt_interface_t bluetoothInterface;
-#endif
 
 namespace android {
 // Both
@@ -849,10 +846,6 @@ static bt_os_callouts_t sBluetoothOsCallouts = {
 };
 
 int hal_util_load_bt_library(const bt_interface_t** interface) {
-#ifndef DYNAMIC_LOAD_BLUETOOTH
-  *interface = &bluetoothInterface;
-  return 0;
-#else
   const char* sym = BLUETOOTH_INTERFACE_STRING;
   bt_interface_t* itf = nullptr;
 
@@ -882,7 +875,6 @@ error:
   if (handle) dlclose(handle);
 
   return -EINVAL;
-#endif
 }
 
 static void classInitNative(JNIEnv* env, jclass clazz) {
diff --git a/android/app/jni/com_android_bluetooth_csip_set_coordinator.cpp b/android/app/jni/com_android_bluetooth_csip_set_coordinator.cpp
index 431247a9443..45ebe6e807e 100644
--- a/android/app/jni/com_android_bluetooth_csip_set_coordinator.cpp
+++ b/android/app/jni/com_android_bluetooth_csip_set_coordinator.cpp
@@ -16,6 +16,7 @@
  * limitations under the License.
  */
 #define LOG_TAG "BluetoothCsipSetCoordinatorJni"
+#define LOG_NDEBUG 0
 #include <string.h>
 
 #include <shared_mutex>
diff --git a/android/app/jni/com_android_bluetooth_gatt.cpp b/android/app/jni/com_android_bluetooth_gatt.cpp
index cb360a80bb6..a9802acdb95 100644
--- a/android/app/jni/com_android_bluetooth_gatt.cpp
+++ b/android/app/jni/com_android_bluetooth_gatt.cpp
@@ -16,6 +16,8 @@
 
 #define LOG_TAG "BtGatt.JNI"
 
+#define LOG_NDEBUG 0
+
 #include "com_android_bluetooth.h"
 #include "hardware/bt_gatt.h"
 #include "utils/Log.h"
diff --git a/android/app/jni/com_android_bluetooth_hap_client.cpp b/android/app/jni/com_android_bluetooth_hap_client.cpp
index 1d77a27eb33..e94cb59f768 100644
--- a/android/app/jni/com_android_bluetooth_hap_client.cpp
+++ b/android/app/jni/com_android_bluetooth_hap_client.cpp
@@ -17,6 +17,8 @@
 
 #define LOG_TAG "BluetoothHapClientJni"
 
+#define LOG_NDEBUG 0
+
 #include <string.h>
 
 #include <shared_mutex>
diff --git a/android/app/jni/com_android_bluetooth_hearing_aid.cpp b/android/app/jni/com_android_bluetooth_hearing_aid.cpp
index 5e2f88e680a..e359faf8a4b 100644
--- a/android/app/jni/com_android_bluetooth_hearing_aid.cpp
+++ b/android/app/jni/com_android_bluetooth_hearing_aid.cpp
@@ -16,6 +16,8 @@
 
 #define LOG_TAG "BluetoothHearingAidServiceJni"
 
+#define LOG_NDEBUG 0
+
 #include "base/logging.h"
 #include "com_android_bluetooth.h"
 #include "hardware/bt_hearing_aid.h"
diff --git a/android/app/jni/com_android_bluetooth_hfp.cpp b/android/app/jni/com_android_bluetooth_hfp.cpp
index fffaf8ccb48..813bdd0818b 100644
--- a/android/app/jni/com_android_bluetooth_hfp.cpp
+++ b/android/app/jni/com_android_bluetooth_hfp.cpp
@@ -16,6 +16,8 @@
 
 #define LOG_TAG "BluetoothHeadsetServiceJni"
 
+#define LOG_NDEBUG 0
+
 #include "com_android_bluetooth.h"
 #include "hardware/bluetooth_headset_callbacks.h"
 #include "hardware/bluetooth_headset_interface.h"
diff --git a/android/app/jni/com_android_bluetooth_hfpclient.cpp b/android/app/jni/com_android_bluetooth_hfpclient.cpp
index c3e0c9842b5..763885e3d3e 100644
--- a/android/app/jni/com_android_bluetooth_hfpclient.cpp
+++ b/android/app/jni/com_android_bluetooth_hfpclient.cpp
@@ -16,6 +16,7 @@
  */
 
 #define LOG_TAG "BluetoothHeadsetClientServiceJni"
+#define LOG_NDEBUG 0
 
 #include "com_android_bluetooth.h"
 #include "hardware/bt_hf_client.h"
diff --git a/android/app/jni/com_android_bluetooth_hid_device.cpp b/android/app/jni/com_android_bluetooth_hid_device.cpp
index 2146222acdb..17b6e97c015 100644
--- a/android/app/jni/com_android_bluetooth_hid_device.cpp
+++ b/android/app/jni/com_android_bluetooth_hid_device.cpp
@@ -16,6 +16,8 @@
 
 #define LOG_TAG "BluetoothHidDeviceServiceJni"
 
+#define LOG_NDEBUG 0
+
 #include "com_android_bluetooth.h"
 #include "hardware/bt_hd.h"
 #include "utils/Log.h"
diff --git a/android/app/jni/com_android_bluetooth_hid_host.cpp b/android/app/jni/com_android_bluetooth_hid_host.cpp
index 7a164233bc1..074e39d5b02 100644
--- a/android/app/jni/com_android_bluetooth_hid_host.cpp
+++ b/android/app/jni/com_android_bluetooth_hid_host.cpp
@@ -16,6 +16,8 @@
 
 #define LOG_TAG "BluetoothHidHostServiceJni"
 
+#define LOG_NDEBUG 1
+
 #include "com_android_bluetooth.h"
 #include "hardware/bt_hh.h"
 #include "utils/Log.h"
diff --git a/android/app/jni/com_android_bluetooth_le_audio.cpp b/android/app/jni/com_android_bluetooth_le_audio.cpp
index ae0b2c4bbd6..de215273324 100644
--- a/android/app/jni/com_android_bluetooth_le_audio.cpp
+++ b/android/app/jni/com_android_bluetooth_le_audio.cpp
@@ -16,6 +16,8 @@
 
 #define LOG_TAG "BluetoothLeAudioServiceJni"
 
+#define LOG_NDEBUG 0
+
 #include <hardware/bluetooth.h>
 
 #include <array>
diff --git a/android/app/jni/com_android_bluetooth_pan.cpp b/android/app/jni/com_android_bluetooth_pan.cpp
index 84d7b1c78b0..b02ae9f9b15 100644
--- a/android/app/jni/com_android_bluetooth_pan.cpp
+++ b/android/app/jni/com_android_bluetooth_pan.cpp
@@ -16,6 +16,8 @@
 
 #define LOG_TAG "BluetoothPanServiceJni"
 
+#define LOG_NDEBUG 0
+
 #include "com_android_bluetooth.h"
 #include "hardware/bt_pan.h"
 #include "utils/Log.h"
diff --git a/android/app/jni/com_android_bluetooth_sdp.cpp b/android/app/jni/com_android_bluetooth_sdp.cpp
index ded546a05d8..bba109ac456 100755
--- a/android/app/jni/com_android_bluetooth_sdp.cpp
+++ b/android/app/jni/com_android_bluetooth_sdp.cpp
@@ -16,6 +16,8 @@
 
 #define LOG_TAG "BluetoothSdpJni"
 
+#define LOG_NDEBUG 0
+
 #include "com_android_bluetooth.h"
 #include "hardware/bt_sdp.h"
 #include "utils/Log.h"
diff --git a/android/app/jni/com_android_bluetooth_vc.cpp b/android/app/jni/com_android_bluetooth_vc.cpp
index cc1e296e55a..22baaeaa7fb 100644
--- a/android/app/jni/com_android_bluetooth_vc.cpp
+++ b/android/app/jni/com_android_bluetooth_vc.cpp
@@ -17,6 +17,8 @@
 
 #define LOG_TAG "BluetoothVolumeControlServiceJni"
 
+#define LOG_NDEBUG 0
+
 #include <string.h>
 #include <shared_mutex>
 
diff --git a/apex/Android.bp b/apex/Android.bp
index 6c12f1d52db..1050e9f9552 100644
--- a/apex/Android.bp
+++ b/apex/Android.bp
@@ -16,6 +16,9 @@ apex_defaults {
     multilib: {
         first: {
             // Extractor process runs only with the primary ABI.
+            native_shared_libs: [
+                "libbluetooth",
+            ],
             jni_libs: [
                 "libbluetooth_jni",
             ],
diff --git a/system/audio_hal_interface/fuzzer/Android.bp b/system/audio_hal_interface/fuzzer/Android.bp
index 704624f32e5..f1724af3d49 100644
--- a/system/audio_hal_interface/fuzzer/Android.bp
+++ b/system/audio_hal_interface/fuzzer/Android.bp
@@ -59,8 +59,6 @@ cc_defaults {
         "libbtcore",
         "libbt-bta",
         "libbt-hci",
-        "libbt_shim_bridge",
-        "libbt_shim_ffi",
         "libjsoncpp",
         "libbt-utils",
         "libbtdevice",
@@ -86,7 +84,6 @@ cc_defaults {
         "libprotobuf-cpp-lite",
         "libbt-audio-hal-interface",
         "libbluetooth_rust_interop",
-        "libaudio-a2dp-hw-utils",
     ],
     include_dirs: [
         "packages/modules/Bluetooth/system",
diff --git a/system/bta/Android.bp b/system/bta/Android.bp
index abacd62f4f8..03a35f94896 100644
--- a/system/bta/Android.bp
+++ b/system/bta/Android.bp
@@ -9,7 +9,7 @@ package {
 
 cc_defaults {
     name: "fluoride_bta_defaults",
-    defaults: ["fluoride_basic_defaults"],
+    defaults: ["fluoride_defaults"],
     local_include_dirs: [
         "include",
         "sys",
@@ -31,6 +31,9 @@ cc_defaults {
         "packages/modules/Bluetooth/system/utils/include",
         "packages/modules/Bluetooth/system/gd/rust/shim",
     ],
+    shared_libs: [
+        "libcutils",
+    ],
     header_libs: ["libbluetooth_headers"],
     cflags: ["-DBUILDCFG"],
 }
@@ -139,8 +142,21 @@ cc_library_static {
     ],
     static_libs: [
         "avrcp-target-service",
+        "libflatbuffers-cpp",
         "lib-bt-packets",
+        "libbt-platform-protos-lite",
     ],
+    shared_libs: [
+        "android.hardware.bluetooth.audio@2.0",
+        "android.hardware.bluetooth.audio@2.1",
+    ],
+    target: {
+        android: {
+            shared_libs: [
+                "android.hardware.bluetooth.audio-V1-ndk",
+            ],
+        },
+    },
     generated_headers: [
         "LeAudioSetConfigSchemas_h",
     ],
@@ -239,6 +255,7 @@ cc_test {
     shared_libs: [
         "libbase",
         "libcrypto",
+        "libflatbuffers-cpp",
         "liblog",
         "libprotobuf-cpp-lite",
     ],
@@ -247,7 +264,6 @@ cc_test {
         "libbt-common",
         "libbt-protos-lite",
         "libbtcore",
-        "libflatbuffers-cpp",
         "libgmock",
     ],
     sanitize: {
@@ -807,4 +823,4 @@ cc_test {
             undefined : true
         },
     },
-}
+}
\ No newline at end of file
diff --git a/system/btcore/Android.bp b/system/btcore/Android.bp
index 1030e5a18b3..f4b20a76ed7 100644
--- a/system/btcore/Android.bp
+++ b/system/btcore/Android.bp
@@ -10,7 +10,7 @@ package {
 
 cc_defaults {
     name: "libbtcore_defaults",
-    defaults: ["fluoride_basic_defaults"],
+    defaults: ["fluoride_defaults"],
     local_include_dirs: ["include"],
     include_dirs: [
         "packages/modules/Bluetooth/system",
@@ -23,8 +23,15 @@ cc_defaults {
         "src/osi_module.cc",
         "src/property.cc",
     ],
+    shared_libs: [
+        "liblog",
+    ],
     header_libs: ["libbluetooth_headers"],
     host_supported: true,
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.bluetooth",
+    ],
     target: {
         linux_glibc: {
             cflags: ["-D_GNU_SOURCE"],
@@ -41,6 +48,11 @@ cc_library_static {
     defaults: ["libbtcore_defaults"],
 }
 
+cc_library_static {
+    name: "libbtcore-static",
+    defaults: ["libbtcore_defaults"],
+}
+
 cc_library_headers {
     name: "libbtcore_headers",
     defaults: ["libchrome_support_defaults"],
diff --git a/system/btcore/fuzzer/Android.bp b/system/btcore/fuzzer/Android.bp
index ce8292cd8dd..7368d715a2e 100644
--- a/system/btcore/fuzzer/Android.bp
+++ b/system/btcore/fuzzer/Android.bp
@@ -48,9 +48,6 @@ cc_defaults {
         "libbluetooth-protos",
         "libprotobuf-cpp-lite",
         "libbluetooth_rust_interop",
-        "libbt_callbacks_cxx",
-        "libbt_shim_bridge",
-        "libbt_shim_ffi",
     ],
     include_dirs: [
         "packages/modules/Bluetooth/system",
diff --git a/system/btif/Android.bp b/system/btif/Android.bp
index 86e8211bd6f..c31250d8006 100644
--- a/system/btif/Android.bp
+++ b/system/btif/Android.bp
@@ -93,7 +93,7 @@ genrule {
 // libbtif static library for target
 cc_defaults {
     name: "libbtif_defaults",
-    defaults: ["fluoride_basic_defaults"],
+    defaults: ["fluoride_defaults"],
     include_dirs: btifCommonIncludes,
     srcs: [
         // AVRCP Target Service
@@ -160,8 +160,25 @@ cc_defaults {
         "BluetoothGeneratedDumpsysDataSchema_h",
         "BluetoothGeneratedPackets_h",
     ],
+    shared_libs: [
+        "android.hardware.bluetooth.a2dp@1.0",
+        "android.hardware.bluetooth.audio@2.0",
+        "android.hardware.bluetooth.audio@2.1",
+        "libcrypto",
+        "libflatbuffers-cpp",
+        "libhidlbase",
+        "libtinyxml2",
+        "libz",
+    ],
     target: {
         android: {
+            shared_libs: [
+                "android.hardware.bluetooth.audio-V1-ndk",
+                "libaaudio",
+                "libbinder_ndk",
+                "libfmq",
+                "libstatslog_bt",
+            ],
             srcs: ["src/btif_avrcp_audio_track.cc"],
         },
         host: {
@@ -171,11 +188,9 @@ cc_defaults {
                   ],
         },
     },
-    static_libs: [
+    whole_static_libs: [
         "avrcp-target-service",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
         "libbt-audio-hal-interface",
         "libaudio-a2dp-hw-utils",
     ],
@@ -190,6 +205,11 @@ cc_library_static {
     defaults: ["libbtif_defaults"],
 }
 
+cc_library_static {
+    name: "libbtif-static",
+    defaults: ["libbtif_defaults"],
+}
+
 // btif unit tests for target
 cc_test {
     name: "net_test_btif",
@@ -232,7 +252,6 @@ cc_test {
         "libbluetooth-types",
         "libosi",
         "libbt-protos-lite",
-        "libbt-audio-hal-interface",
    ],
     whole_static_libs: [
         "libbtif",
@@ -268,9 +287,11 @@ cc_test {
         "BluetoothGeneratedDumpsysDataSchema_h",
         "BluetoothGeneratedPackets_h",
     ],
+    shared_libs: [
+        "libflatbuffers-cpp",
+    ],
     static_libs: [
         "libbluetooth-types",
-        "libflatbuffers-cpp",
         "libosi",
     ],
     cflags: ["-DBUILDCFG"],
@@ -448,6 +469,7 @@ cc_test {
           "android.hardware.bluetooth.audio@2.1",
           "libcrypto",
           "libcutils",
+          "libflatbuffers-cpp",
           "libhidlbase",
           "liblog",
           "libtinyxml2",
@@ -456,15 +478,8 @@ cc_test {
           "libbtif",
       ],
       static_libs: [
-          "avrcp-target-service",
-          "libaudio-a2dp-hw-utils",
           "libbluetooth-types",
-          "libbt-audio-hal-interface",
           "libbtdevice",
-          "lib-bt-packets",
-          "lib-bt-packets-avrcp",
-          "lib-bt-packets-base",
-          "libflatbuffers-cpp",
           "libgmock",
           "libosi",
       ],
diff --git a/system/build/Android.bp b/system/build/Android.bp
index e2ad18377f6..70c509957f0 100644
--- a/system/build/Android.bp
+++ b/system/build/Android.bp
@@ -25,14 +25,7 @@ bootstrap_go_package {
 
 fluoride_defaults {
     name: "libchrome_support_defaults",
-    static_libs: [
-        "libchrome",
-        "libmodpb64",
-        "libevent",
-    ],
-    shared_libs: [
-      "libbase",
-    ],
+    shared_libs: ["libchrome"],
     cflags: [
         "-Wall",
         "-Wextra",
@@ -42,12 +35,6 @@ fluoride_defaults {
         darwin: {
             enabled: false,
         },
-        android: {
-            shared_libs: [
-                "libcutils",
-                "liblog",
-            ],
-        }
     },
 }
 
@@ -106,9 +93,6 @@ fluoride_defaults {
         "libbluetooth-types",
         "libbt-platform-protos-lite",
         "libbluetooth_rust_interop",
-        "libbt_callbacks_cxx",
-        "libbt_shim_bridge",
-        "libbt_shim_ffi",
         "libcutils",
     ],
     shared_libs: [
@@ -118,151 +102,6 @@ fluoride_defaults {
     min_sdk_version: "current",
 }
 
-fluoride_defaults {
-    name: "fluoride_test_prod_shared_defaults",
-    defaults: ["fluoride_defaults"],
-}
-
-fluoride_defaults {
-    name: "fluoride_test_defaults",
-    defaults: ["fluoride_test_prod_shared_defaults"],
-    host_supported: true,
-    shared_libs: [
-        "libcrypto",
-        "liblog",
-        "libprotobuf-cpp-lite",
-    ],
-    static_libs: [
-        "libbt-common",
-        "libbt-protos-lite",
-        "libosi",
-        "libosi-AlarmTestHarness",
-        "libosi-AllocationTestHarness",
-        "libcutils",
-        "libgmock",
-    ],
-    sanitize: {
-        address: true,
-        cfi: true,
-        misc_undefined: ["bounds"],
-    },
-}
-
-fluoride_defaults {
-    name: "fluoride_unit_test_defaults",
-    defaults: ["fluoride_test_defaults"],
-    test_options: {
-        unit_test: true,
-    },
-}
-
-fluoride_defaults {
-    name: "fluoride_basic_defaults",
-    defaults: ["fluoride_test_prod_shared_defaults", "libchrome_support_defaults"],
-    apex_available: [
-        "//apex_available:platform",
-        "com.android.bluetooth",
-    ],
-    shared_libs: [
-        "libcrypto",
-        "libbase",
-        "liblog",
-        "libnativehelper",
-    ],
-    static_libs: [
-        "libflatbuffers-cpp",
-        "libbt-sbc-decoder",
-        "libbt-sbc-encoder",
-        "libFraunhoferAAC",
-        "libg722codec",
-        "liblc3",
-        "libudrv-uipc",
-        "libprotobuf-cpp-lite",
-        "libbluetooth_gd",
-        "libbluetooth-dumpsys",
-        "libbluetooth_rust_interop",
-        "libbluetooth-types",
-        "libbt-platform-protos-lite",
-        "libbt-protos-lite",
-        "libbt_callbacks_cxx",
-        "libbt_shim_bridge",
-        "libbt_shim_ffi",
-    ],
-    target: {
-        android: {
-            shared_libs: [
-                "android.hardware.bluetooth.a2dp@1.0",
-                "android.hardware.bluetooth.audio@2.0",
-                "android.hardware.bluetooth.audio@2.1",
-                "android.hardware.bluetooth.audio-V1-ndk",
-                "android.hardware.bluetooth@1.0",
-                "android.hardware.bluetooth@1.1",
-                "android.system.suspend.control-V1-ndk",
-                "android.system.suspend-V1-ndk",
-                "libaaudio",
-                "libbinder_ndk",
-                "libcutils",
-                "libhidlbase",
-                "libfmq",
-                "libprocessgroup",
-                "libtinyxml2",
-                "libutils",
-                "libz",
-                "libstatslog_bt",
-            ],
-            required: [
-                "libldacBT_enc",
-                "libldacBT_abr",
-            ],
-        },
-        linux_glibc: {
-            shared_libs: [
-                "android.hardware.bluetooth.a2dp@1.0",
-                "android.hardware.bluetooth.audio@2.0",
-                "android.hardware.bluetooth.audio@2.1",
-                "android.hardware.bluetooth@1.0",
-                "android.hardware.bluetooth@1.1",
-                "libbinder_ndk",
-                "libcutils",
-                "libhidlbase",
-                "libfmq",
-                "libprocessgroup",
-                "libtinyxml2",
-                "libutils",
-                "libz",
-                "libstatslog_bt",
-            ],
-            required: [
-                // "libldacBT_enc",
-                // "libldacBT_abr",
-            ],
-        },
-    },
-}
-
-fluoride_defaults {
-    name: "fluoride_full_defaults",
-    defaults: ["fluoride_basic_defaults"],
-    static_libs: [
-        "libbte",
-        "libbt-bta",
-        "libbt-common",
-        "libbtdevice",
-        "libbtif",
-        "libbt-hci",
-        "libbt-stack",
-        "libbt-utils",
-        "libbtcore",
-        "libosi",
-        "avrcp-target-service",
-        "lib-bt-packets",
-        "libbt-audio-hal-interface",
-        "libaudio-a2dp-hw-utils",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
-    ],
-}
-
 fluoride_defaults {
     name: "fluoride_defaults",
     defaults: ["fluoride_defaults_fuzzable", "fluoride_types_defaults"],
@@ -270,25 +109,12 @@ fluoride_defaults {
         "libbluetooth_gd",
         "libbluetooth_rust_interop",
         "libbt_shim_ffi",
-        "libbt_callbacks_cxx",
-        "libbt_shim_bridge",
-        "libbt_shim_ffi",
     ],
     target: {
         darwin: {
             // libstatslog_bt -> libbinder doesn't build on mac
             enabled: false,
         },
-        linux_glibc: {
-            shared_libs: [
-                "android.hardware.bluetooth@1.0",
-                "android.hardware.bluetooth@1.1",
-                "libcutils",
-                "libhidlbase",
-                "libstatslog_bt",
-                "libutils",
-            ],
-        },
         android: {
             shared_libs: [
                 "android.hardware.bluetooth@1.0",
diff --git a/system/common/Android.bp b/system/common/Android.bp
index fa969dacbce..e23b8f17ecd 100644
--- a/system/common/Android.bp
+++ b/system/common/Android.bp
@@ -10,7 +10,7 @@ package {
 cc_library_static {
     name: "libbt-common",
     defaults: [
-        "fluoride_basic_defaults",
+        "fluoride_defaults",
         "clang_file_coverage",
     ],
     host_supported: true,
@@ -33,11 +33,18 @@ cc_library_static {
     target: {
         android: {
             srcs: ["metrics.cc"],
+            shared_libs: ["libstatslog_bt"],
         },
         host: {
             srcs: ["metrics_linux.cc"],
         },
     },
+    shared_libs: [
+        "libcrypto",
+    ],
+    static_libs: [
+        "libbt-protos-lite",
+    ],
 }
 
 cc_test {
diff --git a/system/device/Android.bp b/system/device/Android.bp
index ee9dd4070fe..24c70ac95c0 100644
--- a/system/device/Android.bp
+++ b/system/device/Android.bp
@@ -10,7 +10,7 @@ package {
 
 cc_library_static {
     name: "libbtdevice",
-    defaults: ["fluoride_basic_defaults"],
+    defaults: ["fluoride_defaults"],
     host_supported: true,
     local_include_dirs: [
         "include",
@@ -26,6 +26,9 @@ cc_library_static {
         "src/esco_parameters.cc",
         "src/interop.cc",
     ],
+    shared_libs: [
+        "liblog",
+    ],
 }
 
 // Bluetooth device unit tests for target
diff --git a/system/gd/Android.bp b/system/gd/Android.bp
index 2b11ff861af..449639bb708 100644
--- a/system/gd/Android.bp
+++ b/system/gd/Android.bp
@@ -135,7 +135,6 @@ cc_defaults {
     defaults: [
         "gd_defaults",
         "gd_clang_file_coverage",
-        "libchrome_support_defaults",
     ],
     host_supported: true,
     target: {
@@ -196,6 +195,7 @@ cc_defaults {
         "BluetoothGeneratedPackets_h",
     ],
     shared_libs: [
+        "libchrome",
         "libcrypto",
         "libflatbuffers-cpp",
     ],
@@ -204,9 +204,6 @@ cc_defaults {
         "libbluetooth-protos",
         "libbluetooth_rust_interop",
         "libbt-platform-protos-lite",
-        "libbt_callbacks_cxx",
-        "libbt_shim_bridge",
-        "libbt_shim_ffi",
     ],
     export_static_lib_headers: [ "libbluetooth_rust_interop" ],
 }
@@ -237,7 +234,6 @@ cc_binary {
     defaults: [
         "gd_defaults",
         "gd_clang_coverage_bin",
-        "libchrome_support_defaults",
     ],
     host_supported: true,
     srcs: [
@@ -272,12 +268,10 @@ cc_binary {
         "libbluetooth_gd",
         "libflatbuffers-cpp",
         "libbluetooth_rust_interop",
-        "libbt_callbacks_cxx",
-        "libbt_shim_bridge",
-        "libbt_shim_ffi",
     ],
     shared_libs: [
         "libbacktrace",
+        "libchrome",
         "libcrypto",
         "libgrpc++",
         "libgrpc++_unsecure",
@@ -316,7 +310,6 @@ cc_test {
     defaults: [
         "gd_defaults",
         "gd_clang_coverage_bin",
-        "libchrome_support_defaults",
     ],
     host_supported: true,
     test_options: {
@@ -384,11 +377,9 @@ cc_test {
         "libflatbuffers-cpp",
         "libgmock",
         "libbluetooth_rust_interop",
-        "libbt_callbacks_cxx",
-        "libbt_shim_bridge",
-        "libbt_shim_ffi",
     ],
     shared_libs: [
+        "libchrome",
         "libcrypto",
         "libgrpc++",
         "libgrpc_wrap",
@@ -404,7 +395,6 @@ cc_test {
     defaults: [
         "gd_defaults",
         "gd_clang_coverage_bin",
-        "libchrome_support_defaults",
     ],
     include_dirs: ["packages/modules/Bluetooth/system/gd"],
     host_supported: true,
@@ -424,10 +414,8 @@ cc_test {
         cfi: true,
     },
     static_libs: [
+        "libchrome",
         "libbluetooth_rust_interop",
-        "libbt_callbacks_cxx",
-        "libbt_shim_bridge",
-        "libbt_shim_ffi",
     ],
     shared_libs: [
         "libgrpc++",
@@ -443,15 +431,6 @@ cc_test {
                 "libcutils",
             ],
         },
-        linux_glibc: {
-            shared_libs: [
-                "android.hardware.bluetooth@1.0",
-                "android.hardware.bluetooth@1.1",
-                "libhidlbase",
-                "libutils",
-                "libcutils",
-            ],
-        },
     },
 }
 
@@ -469,9 +448,6 @@ cc_defaults {
         "libgmock",
         "libgtest",
         "libbluetooth_rust_interop",
-        "libbt_callbacks_cxx",
-        "libbt_shim_bridge",
-        "libbt_shim_ffi",
     ],
     host_supported: true,
     generated_headers: [
@@ -532,10 +508,7 @@ cc_fuzz {
 
 cc_benchmark {
     name: "bluetooth_benchmark_gd",
-    defaults: [
-        "gd_defaults",
-        "libchrome_support_defaults"
-    ],
+    defaults: ["gd_defaults"],
     host_supported: true,
     srcs: [
         "benchmark.cc",
@@ -543,7 +516,9 @@ cc_benchmark {
     ],
     static_libs: [
         "libbluetooth_gd",
-        "libbt_shim_bridge",
+    ],
+    shared_libs: [
+        "libchrome",
     ],
 }
 
diff --git a/system/gd/common/byte_array_test.cc b/system/gd/common/byte_array_test.cc
index 114a79c3440..f06b274adb8 100644
--- a/system/gd/common/byte_array_test.cc
+++ b/system/gd/common/byte_array_test.cc
@@ -31,7 +31,7 @@ static uint8_t data[16] = {
 TEST(ByteArrayTest, test_constructor_array) {
   ByteArray<16> byte_array(data);
 
-  for (size_t i = 0; i < ByteArray<16>::kLength; i++) {
+  for (int i = 0; i < ByteArray<16>::kLength; i++) {
     ASSERT_EQ(data[i], byte_array.bytes[i]);
   }
 }
@@ -40,7 +40,7 @@ TEST(ByteArrayTest, test_from_str) {
   auto byte_array = ByteArray<16>::FromString(test_bytes);
   ASSERT_TRUE(byte_array);
 
-  for (size_t i = 0; i < ByteArray<16>::kLength; i++) {
+  for (int i = 0; i < ByteArray<16>::kLength; i++) {
     ASSERT_EQ(test_data[i], byte_array->bytes[i]);
   }
 }
diff --git a/system/gd/common/circular_buffer_test.cc b/system/gd/common/circular_buffer_test.cc
index dc238c2f879..bc67207944e 100644
--- a/system/gd/common/circular_buffer_test.cc
+++ b/system/gd/common/circular_buffer_test.cc
@@ -94,7 +94,7 @@ TEST(CircularBufferTest, max_timestamps) {
   }
 
   auto vec = buffer.Pull();
-  ASSERT_EQ(10ul, vec.size());
+  ASSERT_EQ(10, vec.size());
 
   int i = 0 + 1;
   for (auto v : vec) {
diff --git a/system/gd/common/list_map_test.cc b/system/gd/common/list_map_test.cc
index 580616f1a5a..e682eea5086 100644
--- a/system/gd/common/list_map_test.cc
+++ b/system/gd/common/list_map_test.cc
@@ -28,7 +28,7 @@ using bluetooth::common::ListMap;
 
 TEST(ListMapTest, empty_test) {
   ListMap<int, int> list_map;
-  EXPECT_EQ(list_map.size(), 0ul);
+  EXPECT_EQ(list_map.size(), 0);
   EXPECT_EQ(list_map.find(42), list_map.end());
   list_map.clear();  // should not crash
   EXPECT_EQ(list_map.find(42), list_map.end());
@@ -180,7 +180,7 @@ TEST(ListMapTest, splice_same_list_test) {
 
 TEST(ListMapTest, put_get_and_contains_key_test) {
   ListMap<int, int> list_map;
-  EXPECT_EQ(list_map.size(), 0ul);
+  EXPECT_EQ(list_map.size(), 0);
   EXPECT_EQ(list_map.find(42), list_map.end());
   EXPECT_FALSE(list_map.contains(42));
   list_map.insert_or_assign(56, 200);
@@ -350,7 +350,7 @@ TEST(ListMapTest, pressure_test) {
     EXPECT_EQ(iter->second, key);
     EXPECT_TRUE(list_map.extract(key));
   }
-  EXPECT_EQ(list_map.size(), 0ul);
+  EXPECT_EQ(list_map.size(), 0);
 
   // test execution time
   auto done = std::chrono::high_resolution_clock::now();
diff --git a/system/gd/common/lru_cache_test.cc b/system/gd/common/lru_cache_test.cc
index d4aebf3f6eb..62b03dd2e12 100644
--- a/system/gd/common/lru_cache_test.cc
+++ b/system/gd/common/lru_cache_test.cc
@@ -28,7 +28,7 @@ using bluetooth::common::LruCache;
 
 TEST(LruCacheTest, empty_test) {
   LruCache<int, int> cache(3);  // capacity = 3;
-  EXPECT_EQ(cache.size(), 0ul);
+  EXPECT_EQ(cache.size(), 0);
   EXPECT_EQ(cache.find(42), cache.end());
   cache.clear();  // should not crash
   EXPECT_EQ(cache.find(42), cache.end());
@@ -167,7 +167,7 @@ TEST(LruCacheTest, erase_in_for_loop_test) {
 
 TEST(LruCacheTest, get_and_contains_key_test) {
   LruCache<int, int> cache(3);  // capacity = 3;
-  EXPECT_EQ(cache.size(), 0ul);
+  EXPECT_EQ(cache.size(), 0);
   EXPECT_EQ(cache.find(42), cache.end());
   EXPECT_FALSE(cache.contains(42));
   EXPECT_FALSE(cache.insert_or_assign(56, 200));
@@ -186,11 +186,11 @@ TEST(LruCacheTest, put_and_get_sequence_1) {
   // Section 1: Ordered put and ordered get
   LruCache<int, int> cache(3);  // capacity = 3;
   EXPECT_FALSE(cache.insert_or_assign(1, 10));
-  EXPECT_EQ(cache.size(), 1ul);
+  EXPECT_EQ(cache.size(), 1);
   EXPECT_FALSE(cache.insert_or_assign(2, 20));
-  EXPECT_EQ(cache.size(), 2ul);
+  EXPECT_EQ(cache.size(), 2);
   EXPECT_FALSE(cache.insert_or_assign(3, 30));
-  EXPECT_EQ(cache.size(), 3ul);
+  EXPECT_EQ(cache.size(), 3);
   // 3, 2, 1 after above operations
 
   auto evicted = cache.insert_or_assign(4, 40);
@@ -210,7 +210,7 @@ TEST(LruCacheTest, put_and_get_sequence_1) {
   // Section 2: Over capacity put and ordered get
   evicted = cache.insert_or_assign(5, 50);
   // 5, 3, 2 after above operations, 4 is evicted
-  EXPECT_EQ(cache.size(), 3ul);
+  EXPECT_EQ(cache.size(), 3);
   EXPECT_TRUE(evicted);
   EXPECT_EQ(*evicted, std::make_pair(4, 40));
 
@@ -249,7 +249,7 @@ TEST(LruCacheTest, put_and_get_sequence_2) {
   EXPECT_EQ(*evicted, std::make_pair(1, 10));
   EXPECT_FALSE(cache.insert_or_assign(2, 200));
   // 2, 3 in cache, nothing is evicted
-  EXPECT_EQ(cache.size(), 2ul);
+  EXPECT_EQ(cache.size(), 2);
 
   EXPECT_FALSE(cache.contains(1));
   LruCache<int, int>::const_iterator iter;
@@ -274,7 +274,7 @@ TEST(LruCacheTest, put_and_get_sequence_2) {
   EXPECT_TRUE(cache.extract(4));
   EXPECT_FALSE(cache.contains(4));
   // 3 in cache
-  EXPECT_EQ(cache.size(), 1ul);
+  EXPECT_EQ(cache.size(), 1);
   EXPECT_FALSE(cache.insert_or_assign(2, 2000));
   // 2, 3 in cache
 
@@ -289,7 +289,7 @@ TEST(LruCacheTest, put_and_get_sequence_2) {
   EXPECT_FALSE(cache.insert_or_assign(5, 50));
   EXPECT_FALSE(cache.insert_or_assign(1, 100));
   EXPECT_FALSE(cache.insert_or_assign(5, 1000));
-  EXPECT_EQ(cache.size(), 2ul);
+  EXPECT_EQ(cache.size(), 2);
   // 5, 1 in cache
 
   evicted = cache.insert_or_assign(6, 2000);
@@ -448,7 +448,7 @@ TEST(LruCacheTest, pressure_test) {
     EXPECT_EQ(iter->second, key);
     EXPECT_TRUE(cache.extract(key));
   }
-  EXPECT_EQ(cache.size(), 0ul);
+  EXPECT_EQ(cache.size(), 0);
 
   // test execution time
   auto done = std::chrono::high_resolution_clock::now();
diff --git a/system/gd/common/multi_priority_queue_test.cc b/system/gd/common/multi_priority_queue_test.cc
index b40095205ec..c0918adfee1 100644
--- a/system/gd/common/multi_priority_queue_test.cc
+++ b/system/gd/common/multi_priority_queue_test.cc
@@ -29,7 +29,7 @@ TEST(MultiPriorityQueueTest, without_high_priority_item) {
   q.push(0);
   q.push(1, 0);
   q.push(2);
-  ASSERT_EQ(q.size(), 3ul);
+  ASSERT_EQ(q.size(), 3);
   for (int i = 0; i < 3; i++) {
     ASSERT_EQ(q.front(), i);
     q.pop();
diff --git a/system/gd/common/sync_map_count_test.cc b/system/gd/common/sync_map_count_test.cc
index d8692003894..1ed8d6a69d0 100644
--- a/system/gd/common/sync_map_count_test.cc
+++ b/system/gd/common/sync_map_count_test.cc
@@ -51,19 +51,19 @@ TEST(SyncMapCount, simple) {
   SyncMapCount<std::string> map;
   LoadStringMap(map);
 
-  ASSERT_EQ(5ul, map.Size());
+  ASSERT_EQ(5, map.Size());
 
   auto m = map.Get();
-  ASSERT_EQ(3ul, m["Three"]);
-  ASSERT_EQ(2ul, m["Two"]);
-  ASSERT_EQ(1ul, m["One"]);
+  ASSERT_EQ(3, m["Three"]);
+  ASSERT_EQ(2, m["Two"]);
+  ASSERT_EQ(1, m["One"]);
 }
 
 TEST(SyncMapCount, sized) {
   SyncMapCount<std::string> map(2);
   LoadStringMap(map);
 
-  ASSERT_EQ(2ul, map.Size());
+  ASSERT_EQ(2, map.Size());
 }
 
 TEST(SyncMapCount, sorted_string_value_low_to_high) {
@@ -71,8 +71,8 @@ TEST(SyncMapCount, sorted_string_value_low_to_high) {
   LoadStringMap(map);
 
   auto entries = map.GetSortedLowToHigh();
-  ASSERT_EQ(3ul, entries[entries.size() - 1].count);
-  ASSERT_EQ(2ul, entries[entries.size() - 2].count);
+  ASSERT_EQ(3, entries[entries.size() - 1].count);
+  ASSERT_EQ(2, entries[entries.size() - 2].count);
 }
 
 TEST(SyncMapCount, sorted_string_value_high_to_low) {
@@ -80,8 +80,8 @@ TEST(SyncMapCount, sorted_string_value_high_to_low) {
   LoadStringMap(map);
 
   auto entries = map.GetSortedHighToLow();
-  ASSERT_EQ(3ul, entries[0].count);
-  ASSERT_EQ(2ul, entries[1].count);
+  ASSERT_EQ(3, entries[0].count);
+  ASSERT_EQ(2, entries[1].count);
 }
 
 struct TestString {
@@ -113,12 +113,12 @@ TEST(SyncMapCount, simple_struct) {
   SyncMapCount<TestString> map;
   LoadTestStringMap(map);
 
-  ASSERT_EQ(5ul, map.Size());
+  ASSERT_EQ(5, map.Size());
 
   auto m = map.Get();
-  ASSERT_EQ(3ul, m[TestString("Three")]);
-  ASSERT_EQ(2ul, m[TestString("Two")]);
-  ASSERT_EQ(1ul, m[TestString("One")]);
+  ASSERT_EQ(3, m[TestString("Three")]);
+  ASSERT_EQ(2, m[TestString("Two")]);
+  ASSERT_EQ(1, m[TestString("One")]);
 }
 
 TEST(SyncMapCount, sorted_string_struct_value_low_to_high) {
@@ -126,8 +126,8 @@ TEST(SyncMapCount, sorted_string_struct_value_low_to_high) {
   LoadTestStringMap(map);
 
   auto entries = map.GetSortedLowToHigh();
-  ASSERT_EQ(3ul, entries[entries.size() - 1].count);
-  ASSERT_EQ(2ul, entries[entries.size() - 2].count);
+  ASSERT_EQ(3, entries[entries.size() - 1].count);
+  ASSERT_EQ(2, entries[entries.size() - 2].count);
 }
 
 TEST(SyncMapCount, sorted_string_struct_value_high_to_low) {
@@ -135,22 +135,22 @@ TEST(SyncMapCount, sorted_string_struct_value_high_to_low) {
   LoadTestStringMap(map);
 
   auto entries = map.GetSortedHighToLow();
-  ASSERT_EQ(3ul, entries[0].count);
-  ASSERT_EQ(2ul, entries[1].count);
+  ASSERT_EQ(3, entries[0].count);
+  ASSERT_EQ(2, entries[1].count);
 }
 
 TEST(SyncMapCount, locked_for_map_copy) {
   SyncMapCount<TestString> map;
   LoadTestStringMap(map);
 
-  ASSERT_EQ(5ul, map.Size());
+  ASSERT_EQ(5, map.Size());
   std::vector<SyncMapCount<TestString>::Item> vec;
   for (auto& it : map.Get()) {
     map.Clear();
     vec.push_back(SyncMapCount<TestString>::Item{it.first, it.second});
   }
-  ASSERT_EQ(0ul, map.Size());
-  ASSERT_EQ(5ul, vec.size());
+  ASSERT_EQ(0, map.Size());
+  ASSERT_EQ(5, vec.size());
 }
 
 }  // namespace testing
diff --git a/system/gd/hal/hci_hal_host_test.cc b/system/gd/hal/hci_hal_host_test.cc
index 884e4b9bb16..da2ada6a0cd 100644
--- a/system/gd/hal/hci_hal_host_test.cc
+++ b/system/gd/hal/hci_hal_host_test.cc
@@ -325,7 +325,7 @@ TEST_F(HciHalRootcanalTest, receive_multiple_acl_batch) {
   for (int i = 0; i < num_packets; i++) {
     write(fake_server_socket_, incoming_packet.data(), incoming_packet.size());
   }
-  while (incoming_packets_queue_.size() != (size_t)num_packets) {
+  while (incoming_packets_queue_.size() != num_packets) {
   }
   for (int i = 0; i < num_packets; i++) {
     auto packet = incoming_packets_queue_.front();
diff --git a/system/gd/hci/class_of_device_unittest.cc b/system/gd/hci/class_of_device_unittest.cc
index 62d304c54b1..eb0ced26532 100644
--- a/system/gd/hci/class_of_device_unittest.cc
+++ b/system/gd/hci/class_of_device_unittest.cc
@@ -102,12 +102,12 @@ TEST(ClassOfDeviceTest, classOfDeviceFromUint32Legacy) {
   auto cod = ClassOfDevice::FromUint32Legacy(0);
   ASSERT_TRUE(cod);
   ASSERT_THAT(cod->cod, testing::ElementsAre(0x00, 0x00, 0x00));
-  ASSERT_EQ(cod->ToUint32Legacy(), 0ul);
+  ASSERT_EQ(cod->ToUint32Legacy(), 0);
 
   cod = ClassOfDevice::FromUint32Legacy(0xab214c);
   ASSERT_TRUE(cod);
   ASSERT_THAT(cod->cod, testing::ElementsAre(0xab, 0x21, 0x4c));
-  ASSERT_EQ(cod->ToUint32Legacy(), 0xab214cul);
+  ASSERT_EQ(cod->ToUint32Legacy(), 0xab214c);
 
   ASSERT_FALSE(ClassOfDevice::FromUint32Legacy(0x1ab214c));
 }
diff --git a/system/gd/hci/hci_packets_test.cc b/system/gd/hci/hci_packets_test.cc
index 06148c1ed6e..99963354517 100644
--- a/system/gd/hci/hci_packets_test.cc
+++ b/system/gd/hci/hci_packets_test.cc
@@ -73,15 +73,15 @@ TEST(HciPacketsTest, testWriteExtendedInquiryResponse) {
   auto view = WriteExtendedInquiryResponseView::Create(CommandView::Create(packet_bytes_view));
   ASSERT_TRUE(view.IsValid());
   auto gap_data = view.GetExtendedInquiryResponse();
-  ASSERT_GE(gap_data.size(), 4ul);
+  ASSERT_GE(gap_data.size(), 4);
   ASSERT_EQ(gap_data[0].data_type_, GapDataType::COMPLETE_LOCAL_NAME);
-  ASSERT_EQ(gap_data[0].data_.size(), 10ul);
+  ASSERT_EQ(gap_data[0].data_.size(), 10);
   ASSERT_EQ(gap_data[1].data_type_, GapDataType::COMPLETE_LIST_16_BIT_UUIDS);
-  ASSERT_EQ(gap_data[1].data_.size(), 24ul);
+  ASSERT_EQ(gap_data[1].data_.size(), 24);
   ASSERT_EQ(gap_data[2].data_type_, GapDataType::COMPLETE_LIST_32_BIT_UUIDS);
-  ASSERT_EQ(gap_data[2].data_.size(), 0ul);
+  ASSERT_EQ(gap_data[2].data_.size(), 0);
   ASSERT_EQ(gap_data[3].data_type_, GapDataType::COMPLETE_LIST_128_BIT_UUIDS);
-  ASSERT_EQ(gap_data[3].data_.size(), 128ul);
+  ASSERT_EQ(gap_data[3].data_.size(), 128);
 
   std::vector<GapData> no_padding{gap_data.begin(), gap_data.begin() + 4};
   auto builder = WriteExtendedInquiryResponseBuilder::Create(view.GetFecRequired(), no_padding);
@@ -171,7 +171,7 @@ TEST(HciPacketsTest, testLeSetExtendedScanParameters) {
   ASSERT_TRUE(view.IsValid());
   ASSERT_EQ(1, view.GetScanningPhys());
   auto params = view.GetParameters();
-  ASSERT_EQ(1ul, params.size());
+  ASSERT_EQ(1, params.size());
   ASSERT_EQ(LeScanType::ACTIVE, params[0].le_scan_type_);
   ASSERT_EQ(18, params[0].le_scan_interval_);
   ASSERT_EQ(18, params[0].le_scan_window_);
@@ -190,7 +190,7 @@ TEST(HciPacketsTest, testLeSetExtendedScanParameters_6553) {
   ASSERT_TRUE(view.IsValid());
   ASSERT_EQ(1, view.GetScanningPhys());
   auto params = view.GetParameters();
-  ASSERT_EQ(1ul, params.size());
+  ASSERT_EQ(1, params.size());
   ASSERT_EQ(LeScanType::ACTIVE, params[0].le_scan_type_);
   ASSERT_EQ(6553, params[0].le_scan_interval_);
   ASSERT_EQ(6553, params[0].le_scan_window_);
@@ -291,8 +291,8 @@ TEST(HciPacketsTest, testLeSetExtendedAdvertisingParametersLegacySet0) {
       LeAdvertisingCommandView::Create(CommandView::Create(packet_bytes_view)));
   ASSERT_TRUE(view.IsValid());
   ASSERT_EQ(0, view.GetAdvertisingHandle());
-  ASSERT_EQ(400ul, view.GetPrimaryAdvertisingIntervalMin());
-  ASSERT_EQ(450ul, view.GetPrimaryAdvertisingIntervalMax());
+  ASSERT_EQ(400, view.GetPrimaryAdvertisingIntervalMin());
+  ASSERT_EQ(450, view.GetPrimaryAdvertisingIntervalMax());
   ASSERT_EQ(0x7, view.GetPrimaryAdvertisingChannelMap());
   ASSERT_EQ(OwnAddressType::RANDOM_DEVICE_ADDRESS, view.GetOwnAddressType());
   ASSERT_EQ(PeerAddressType::PUBLIC_DEVICE_OR_IDENTITY_ADDRESS, view.GetPeerAddressType());
@@ -314,8 +314,8 @@ TEST(HciPacketsTest, testLeSetExtendedAdvertisingParametersSet1) {
       LeAdvertisingCommandView::Create(CommandView::Create(packet_bytes_view)));
   ASSERT_TRUE(view.IsValid());
   ASSERT_EQ(1, view.GetAdvertisingHandle());
-  ASSERT_EQ(400ul, view.GetPrimaryAdvertisingIntervalMin());
-  ASSERT_EQ(450ul, view.GetPrimaryAdvertisingIntervalMax());
+  ASSERT_EQ(400, view.GetPrimaryAdvertisingIntervalMin());
+  ASSERT_EQ(450, view.GetPrimaryAdvertisingIntervalMax());
   ASSERT_EQ(0x7, view.GetPrimaryAdvertisingChannelMap());
   ASSERT_EQ(OwnAddressType::RANDOM_DEVICE_ADDRESS, view.GetOwnAddressType());
   ASSERT_EQ(PeerAddressType::PUBLIC_DEVICE_OR_IDENTITY_ADDRESS, view.GetPeerAddressType());
@@ -363,7 +363,7 @@ TEST(HciPacketsTest, testLeSetExtendedAdvertisingDisable1) {
       LeAdvertisingCommandView::Create(CommandView::Create(packet_bytes_view)));
   ASSERT_TRUE(view.IsValid());
   auto disabled_set = view.GetDisabledSets();
-  ASSERT_EQ(1ul, disabled_set.size());
+  ASSERT_EQ(1, disabled_set.size());
   ASSERT_EQ(1, disabled_set[0].advertising_handle_);
 }
 
@@ -372,7 +372,7 @@ TEST(HciPacketsTest, testLeSetAdvertisingDataBuilderLength) {
   gap_data.data_type_ = GapDataType::COMPLETE_LOCAL_NAME;
   gap_data.data_ = std::vector<uint8_t>({'A', ' ', 'g', 'o', 'o', 'd', ' ', 'n', 'a', 'm', 'e'});
   auto builder = LeSetAdvertisingDataBuilder::Create({gap_data});
-  ASSERT_EQ(2ul /*opcode*/ + 1ul /* parameter size */ + 1ul /* data_length */ + 31ul /* data */, builder->size());
+  ASSERT_EQ(2 /*opcode*/ + 1 /* parameter size */ + 1 /* data_length */ + 31 /* data */, builder->size());
 
   auto packet_bytes = std::make_shared<std::vector<uint8_t>>();
   packet_bytes->reserve(builder->size());
@@ -380,7 +380,7 @@ TEST(HciPacketsTest, testLeSetAdvertisingDataBuilderLength) {
   builder->Serialize(bit_inserter);
   auto command_view = LeAdvertisingCommandView::Create(CommandView::Create(PacketView<kLittleEndian>(packet_bytes)));
   ASSERT_TRUE(command_view.IsValid());
-  ASSERT_EQ(1ul /* data_length */ + 31ul /* data */, command_view.GetPayload().size());
+  ASSERT_EQ(1 /* data_length */ + 31 /* data */, command_view.GetPayload().size());
   auto view = LeSetAdvertisingDataView::Create(command_view);
   ASSERT_TRUE(view.IsValid());
 }
@@ -390,7 +390,7 @@ TEST(HciPacketsTest, testLeSetScanResponseDataBuilderLength) {
   gap_data.data_type_ = GapDataType::COMPLETE_LOCAL_NAME;
   gap_data.data_ = std::vector<uint8_t>({'A', ' ', 'g', 'o', 'o', 'd', ' ', 'n', 'a', 'm', 'e'});
   auto builder = LeSetScanResponseDataBuilder::Create({gap_data});
-  ASSERT_EQ(2ul /*opcode*/ + 1ul /* parameter size */ + 1ul /*data_length */ + 31ul /* data */, builder->size());
+  ASSERT_EQ(2 /*opcode*/ + 1 /* parameter size */ + 1 /*data_length */ + 31 /* data */, builder->size());
 
   auto packet_bytes = std::make_shared<std::vector<uint8_t>>();
   packet_bytes->reserve(builder->size());
@@ -398,7 +398,7 @@ TEST(HciPacketsTest, testLeSetScanResponseDataBuilderLength) {
   builder->Serialize(bit_inserter);
   auto command_view = LeAdvertisingCommandView::Create(CommandView::Create(PacketView<kLittleEndian>(packet_bytes)));
   ASSERT_TRUE(command_view.IsValid());
-  ASSERT_EQ(1ul /* data_length */ + 31ul /* data */, command_view.GetPayload().size());
+  ASSERT_EQ(1 /* data_length */ + 31 /* data */, command_view.GetPayload().size());
   auto view = LeSetScanResponseDataView::Create(command_view);
   ASSERT_TRUE(view.IsValid());
 }
@@ -419,7 +419,7 @@ TEST(HciPacketsTest, testLeMultiAdvSetAdvertisingDataBuilderLength) {
   ASSERT_TRUE(command_view.IsValid());
   auto view = LeMultiAdvtSetDataView::Create(command_view);
   ASSERT_TRUE(view.IsValid());
-  ASSERT_TRUE(view.GetAdvertisingData().size() > 0ul);
+  ASSERT_TRUE(view.GetAdvertisingData().size() > 0);
   ASSERT_EQ(view.GetAdvertisingData()[0].data_, gap_data.data_);
   ASSERT_EQ(view.GetAdvertisingInstance(), 3);
 }
diff --git a/system/gd/l2cap/l2cap_packet_test.cc b/system/gd/l2cap/l2cap_packet_test.cc
index 0bf9017c7a0..7a413f41c03 100644
--- a/system/gd/l2cap/l2cap_packet_test.cc
+++ b/system/gd/l2cap/l2cap_packet_test.cc
@@ -80,7 +80,7 @@ TEST(L2capPacketsTest, testConfigRequestOptions) {
     PacketView<kLittleEndian> packet_bytes_view(view_bytes);
     auto view = ConfigurationRequestView::Create(ControlView::Create(packet_bytes_view));
     ASSERT_TRUE(view.IsValid());
-    ASSERT_EQ(1ul, view.GetConfig().size());
+    ASSERT_EQ(1, view.GetConfig().size());
   }
 
   {
@@ -90,7 +90,7 @@ TEST(L2capPacketsTest, testConfigRequestOptions) {
     PacketView<kLittleEndian> packet_bytes_view(view_bytes);
     auto view = ConfigurationRequestView::Create(ControlView::Create(packet_bytes_view));
     ASSERT_TRUE(view.IsValid());
-    ASSERT_EQ(2ul, view.GetConfig().size());
+    ASSERT_EQ(2, view.GetConfig().size());
   }
 
   {
@@ -100,7 +100,7 @@ TEST(L2capPacketsTest, testConfigRequestOptions) {
     PacketView<kLittleEndian> packet_bytes_view(view_bytes);
     auto view = ConfigurationRequestView::Create(ControlView::Create(packet_bytes_view));
     ASSERT_TRUE(view.IsValid());
-    ASSERT_EQ(2ul, view.GetConfig().size());
+    ASSERT_EQ(2, view.GetConfig().size());
   }
 
   {
@@ -110,7 +110,7 @@ TEST(L2capPacketsTest, testConfigRequestOptions) {
     PacketView<kLittleEndian> packet_bytes_view(view_bytes);
     auto view = ConfigurationRequestView::Create(ControlView::Create(packet_bytes_view));
     ASSERT_TRUE(view.IsValid());
-    ASSERT_EQ(1ul, view.GetConfig().size());
+    ASSERT_EQ(1, view.GetConfig().size());
   }
 
   {
@@ -120,7 +120,7 @@ TEST(L2capPacketsTest, testConfigRequestOptions) {
     PacketView<kLittleEndian> packet_bytes_view(view_bytes);
     auto view = ConfigurationRequestView::Create(ControlView::Create(packet_bytes_view));
     ASSERT_TRUE(view.IsValid());
-    ASSERT_EQ(2ul, view.GetConfig().size());
+    ASSERT_EQ(2, view.GetConfig().size());
   }
 }
 
diff --git a/system/gd/os/linux_generic/queue_unittest.cc b/system/gd/os/linux_generic/queue_unittest.cc
index 3739735a0a6..90f061ccdb1 100644
--- a/system/gd/os/linux_generic/queue_unittest.cc
+++ b/system/gd/os/linux_generic/queue_unittest.cc
@@ -157,7 +157,7 @@ class TestDequeueEnd {
     std::unique_ptr<std::string> data = queue_->TryDequeue();
     buffer_.push(std::move(data));
 
-    if (buffer_.size() == (size_t)capacity_) {
+    if (buffer_.size() == capacity_) {
       queue_->UnregisterDequeue();
     }
 
@@ -475,7 +475,7 @@ TEST_F(QueueTest, queue_becomes_full_dequeue_callback_slower) {
   // Wait for enqueue buffer empty and expect queue is full
   enqueue_future.wait();
   EXPECT_EQ(enqueue_future.get(), 0);
-  EXPECT_GE(test_dequeue_end.buffer_.size(), (size_t)(kQueueSize - 1));
+  EXPECT_GE(test_dequeue_end.buffer_.size(), kQueueSize - 1);
 
   test_dequeue_end.UnregisterDequeue();
 }
@@ -535,7 +535,7 @@ TEST_F(QueueTest, queue_becomes_non_full_during_test) {
 
   // Expect kQueueSize data block in enqueue end buffer
   std::this_thread::sleep_for(std::chrono::milliseconds(20));
-  EXPECT_EQ(test_enqueue_end.buffer_.size(), (size_t)kQueueSize);
+  EXPECT_EQ(test_enqueue_end.buffer_.size(), kQueueSize);
 
   // Register dequeue
   std::unordered_map<int, std::promise<int>> dequeue_promise_map;
diff --git a/system/gd/os/linux_generic/wakelock_manager_unittest.cc b/system/gd/os/linux_generic/wakelock_manager_unittest.cc
index 4359371902a..0ae97044841 100644
--- a/system/gd/os/linux_generic/wakelock_manager_unittest.cc
+++ b/system/gd/os/linux_generic/wakelock_manager_unittest.cc
@@ -104,12 +104,12 @@ TEST_F(WakelockManagerTest, test_set_os_callouts_repeated_acquire) {
 
   WakelockManager::Get().Acquire();
   SyncHandler();
-  ASSERT_EQ(os_callouts.acquired_lock_counts.size(), (size_t)1);
+  ASSERT_EQ(os_callouts.acquired_lock_counts.size(), 1);
   ASSERT_THAT(os_callouts.GetNetAcquiredCount(WakelockManager::kBtWakelockId), Optional(Eq(1)));
 
   WakelockManager::Get().Acquire();
   SyncHandler();
-  ASSERT_EQ(os_callouts.acquired_lock_counts.size(), (size_t)1);
+  ASSERT_EQ(os_callouts.acquired_lock_counts.size(), 1);
   ASSERT_THAT(os_callouts.GetNetAcquiredCount(WakelockManager::kBtWakelockId), Optional(Eq(2)));
 
   WakelockManager::Get().Release();
@@ -130,12 +130,12 @@ TEST_F(WakelockManagerTest, test_set_os_callouts_repeated_release) {
 
   WakelockManager::Get().Acquire();
   SyncHandler();
-  ASSERT_EQ(os_callouts.acquired_lock_counts.size(), (size_t)1);
+  ASSERT_EQ(os_callouts.acquired_lock_counts.size(), 1);
   ASSERT_THAT(os_callouts.GetNetAcquiredCount(WakelockManager::kBtWakelockId), Optional(Eq(1)));
 
   WakelockManager::Get().Release();
   SyncHandler();
-  ASSERT_EQ(os_callouts.acquired_lock_counts.size(), (size_t)1);
+  ASSERT_EQ(os_callouts.acquired_lock_counts.size(), 1);
   ASSERT_THAT(os_callouts.GetNetAcquiredCount(WakelockManager::kBtWakelockId), Optional(Eq(0)));
 
   // OS callouts allow pass through for repeated release calls
@@ -158,7 +158,7 @@ TEST_F(WakelockManagerTest, test_with_os_callouts_in_a_loop_and_dump) {
   for (size_t i = 0; i < 1000; i++) {
     WakelockManager::Get().Acquire();
     SyncHandler();
-    ASSERT_EQ(os_callouts.acquired_lock_counts.size(), (size_t)1);
+    ASSERT_EQ(os_callouts.acquired_lock_counts.size(), 1);
     ASSERT_THAT(os_callouts.GetNetAcquiredCount(WakelockManager::kBtWakelockId), Optional(Eq(1)));
     WakelockManager::Get().Release();
     SyncHandler();
diff --git a/system/gd/packet/fragmenting_inserter_unittest.cc b/system/gd/packet/fragmenting_inserter_unittest.cc
index ab833194fdf..c2f1124da5a 100644
--- a/system/gd/packet/fragmenting_inserter_unittest.cc
+++ b/system/gd/packet/fragmenting_inserter_unittest.cc
@@ -41,7 +41,7 @@ TEST(FragmentingInserterTest, addMoreBits) {
 
   it.finalize();
 
-  ASSERT_EQ(1ul, fragments.size());
+  ASSERT_EQ(1, fragments.size());
 
   std::vector<uint8_t> bytes;
   BitInserter bit_inserter(bytes);
@@ -71,7 +71,7 @@ TEST(FragmentingInserterTest, observerTest) {
   it.insert_bits(static_cast<uint8_t>(0b1010), 4);
   it.finalize();
 
-  ASSERT_EQ(1ul, fragments.size());
+  ASSERT_EQ(1, fragments.size());
 
   std::vector<uint8_t> bytes;
   BitInserter bit_inserter(bytes);
@@ -102,22 +102,22 @@ TEST(FragmentingInserterTest, testMtuBoundaries) {
   FragmentingInserter it(kPacketSize, std::back_insert_iterator(fragments_mtu_is_kPacketSize));
   counts.Serialize(it);
   it.finalize();
-  ASSERT_EQ(1ul, fragments_mtu_is_kPacketSize.size());
+  ASSERT_EQ(1, fragments_mtu_is_kPacketSize.size());
   ASSERT_EQ(kPacketSize, fragments_mtu_is_kPacketSize[0]->size());
 
   std::vector<std::unique_ptr<RawBuilder>> fragments_mtu_is_less;
   FragmentingInserter it_less(kPacketSize - 1, std::back_insert_iterator(fragments_mtu_is_less));
   counts.Serialize(it_less);
   it_less.finalize();
-  ASSERT_EQ(2ul, fragments_mtu_is_less.size());
-  ASSERT_EQ(kPacketSize - 1ul, fragments_mtu_is_less[0]->size());
-  ASSERT_EQ(1ul, fragments_mtu_is_less[1]->size());
+  ASSERT_EQ(2, fragments_mtu_is_less.size());
+  ASSERT_EQ(kPacketSize - 1, fragments_mtu_is_less[0]->size());
+  ASSERT_EQ(1, fragments_mtu_is_less[1]->size());
 
   std::vector<std::unique_ptr<RawBuilder>> fragments_mtu_is_more;
   FragmentingInserter it_more(kPacketSize + 1, std::back_insert_iterator(fragments_mtu_is_more));
   counts.Serialize(it_more);
   it_more.finalize();
-  ASSERT_EQ(1ul, fragments_mtu_is_more.size());
+  ASSERT_EQ(1, fragments_mtu_is_more.size());
   ASSERT_EQ(kPacketSize, fragments_mtu_is_more[0]->size());
 }
 
diff --git a/system/gd/packet/packet_view_unittest.cc b/system/gd/packet/packet_view_unittest.cc
index c0d7a0e1bb4..208784e7961 100644
--- a/system/gd/packet/packet_view_unittest.cc
+++ b/system/gd/packet/packet_view_unittest.cc
@@ -347,15 +347,15 @@ TYPED_TEST(IteratorTest, subrangeTest) {
   ASSERT_EQ(*(all + 1), 1);
 
   auto subrange = all.Subrange(0, 1);
-  ASSERT_EQ(1ul, subrange.NumBytesRemaining());
+  ASSERT_EQ(1, subrange.NumBytesRemaining());
   ASSERT_EQ(*(subrange), 0);
 
   subrange = this->packet->begin().Subrange(0, 4);
-  ASSERT_EQ(4ul, subrange.NumBytesRemaining());
+  ASSERT_EQ(4, subrange.NumBytesRemaining());
   ASSERT_EQ(*(subrange + 1), 1);
 
   subrange = all.Subrange(0, 3);
-  ASSERT_EQ(3ul, subrange.NumBytesRemaining());
+  ASSERT_EQ(3, subrange.NumBytesRemaining());
   ASSERT_EQ(*(subrange + 1), 1);
 
   subrange = all.Subrange(0, all.NumBytesRemaining() - 1);
@@ -383,15 +383,15 @@ TYPED_TEST(IteratorTest, subrangeTest) {
   ASSERT_EQ(*subrange, 2);
 
   subrange = all.Subrange(1, 1);
-  ASSERT_EQ(1ul, subrange.NumBytesRemaining());
+  ASSERT_EQ(1, subrange.NumBytesRemaining());
   ASSERT_EQ(*(subrange), 1);
 
   subrange = all.Subrange(1, 2);
-  ASSERT_EQ(2ul, subrange.NumBytesRemaining());
+  ASSERT_EQ(2, subrange.NumBytesRemaining());
   ASSERT_EQ(*(subrange), 1);
 
   subrange = all.Subrange(2, 1);
-  ASSERT_EQ(1ul, subrange.NumBytesRemaining());
+  ASSERT_EQ(1, subrange.NumBytesRemaining());
   ASSERT_EQ(*(subrange), 2);
 
   subrange = this->packet->begin().Subrange(this->packet->size() - 1, 2);
diff --git a/system/gd/packet/parser/test/generated_packet_test.cc b/system/gd/packet/parser/test/generated_packet_test.cc
index 68709131491..5a1d582090a 100644
--- a/system/gd/packet/parser/test/generated_packet_test.cc
+++ b/system/gd/packet/parser/test/generated_packet_test.cc
@@ -568,7 +568,7 @@ TEST(GeneratedPacketTest, testFixedSizeByteArray) {
   for (uint32_t i = 0; i < word_array_size; i++) word_array[i] = i;
 
   auto packet = PacketWithFixedArraysOfBytesBuilder::Create(byte_array, word_array);
-  ASSERT_EQ((size_t)(2 * (256 / 8)), packet->size());
+  ASSERT_EQ(2 * (256 / 8), packet->size());
 
   std::shared_ptr<std::vector<uint8_t>> packet_bytes = std::make_shared<std::vector<uint8_t>>();
   BitInserter it(*packet_bytes);
@@ -1118,7 +1118,7 @@ TEST(GeneratedPacketTest, testOneArrayOfStructAndAnotherStruct) {
   auto view = OneArrayOfStructAndAnotherStructView::Create(packet_bytes_view);
   ASSERT_TRUE(view.IsValid());
   auto one = view.GetOne();
-  ASSERT_EQ(one.array_.size(), 3ul);
+  ASSERT_EQ(one.array_.size(), 3);
   ASSERT_EQ(one.another_.id_, 4);
   ASSERT_EQ(one.another_.count_, 0x0804);
 }
@@ -1901,7 +1901,7 @@ TEST(GeneratedPacketTest, testOneGenericStructArrayNoZeroEmpty) {
   too_few_bytes = std::make_shared<std::vector<uint8_t>>(a_two_byte_struct);
   view = OneGenericStructArrayNoZeroView::Create(PacketView<kLittleEndian>(too_few_bytes));
   ASSERT_TRUE(view.IsValid());
-  ASSERT_EQ(1ul, view.GetAnArray().size());
+  ASSERT_EQ(1, view.GetAnArray().size());
 }
 
 TEST(GeneratedPacketTest, testToStringOutput) {
diff --git a/system/gd/rust/shim/Android.bp b/system/gd/rust/shim/Android.bp
index 91e91e1c966..6df6a31c059 100644
--- a/system/gd/rust/shim/Android.bp
+++ b/system/gd/rust/shim/Android.bp
@@ -46,7 +46,7 @@ rust_defaults {
     proc_macros: [
         "libpaste",
     ],
-    static_libs: [
+    whole_static_libs: [
         "libbt_callbacks_cxx",
     ],
 }
@@ -68,10 +68,7 @@ rust_ffi_static {
 
 cc_library_static {
     name: "libbt_shim_bridge",
-    defaults: [
-        "gd_ffi_defaults",
-        "libchrome_support_defaults"
-    ],
+    defaults: ["gd_ffi_defaults"],
     generated_headers: [
         "libbt_init_flags_bridge_header",
         "libbt_shim_bridge_header",
@@ -102,16 +99,16 @@ cc_library_static {
         "//apex_available:platform",
         "com.android.bluetooth",
     ],
+    shared_libs: [
+        "libchrome",
+    ],
     min_sdk_version: "30",
 }
 
 cc_library_static {
     name: "libbluetooth_rust_interop",
-    defaults: [
-        "gd_ffi_defaults",
-        "libchrome_support_defaults"
-    ],
-    static_libs: [
+    defaults: ["gd_ffi_defaults"],
+    whole_static_libs: [
         "libbt_shim_bridge",
         "libbt_shim_ffi",
     ],
@@ -125,13 +122,13 @@ cc_library_static {
 
 cc_library_static {
     name: "libbt_callbacks_cxx",
-    defaults: [
-        "gd_ffi_defaults",
-        "libchrome_support_defaults"
-    ],
+    defaults: ["gd_ffi_defaults"],
     header_libs: ["libbt_callbacks_cxx_headers"],
     srcs: ["callbacks/callbacks.cc"],
     generated_headers: ["libbt_shim_bridge_header", "cxx-bridge-header"],
+    shared_libs: [
+        "libchrome",
+    ],
     host_supported: true,
     apex_available: [
         "//apex_available:platform",
diff --git a/system/gd/rust/topshim/Android.bp b/system/gd/rust/topshim/Android.bp
index b24cbb67d65..8098b1027ad 100644
--- a/system/gd/rust/topshim/Android.bp
+++ b/system/gd/rust/topshim/Android.bp
@@ -43,10 +43,7 @@ rust_library_host_rlib {
 
 cc_library_static {
     name: "libbt_topshim_cxx",
-    defaults: [
-        "gd_ffi_defaults",
-        "libchrome_support_defaults",
-    ],
+    defaults: ["gd_ffi_defaults"],
     header_libs: ["libbt_callbacks_cxx_headers"],
     srcs: [
         "btav/btav_shim.cc",
@@ -65,6 +62,9 @@ cc_library_static {
         "cxx-bridge-header"
     ],
     generated_sources: ["libbt_topshim_bridge_code"],
+    shared_libs: [
+        "libchrome",
+    ],
     include_dirs: [
         "packages/modules/Bluetooth/system",
         "packages/modules/Bluetooth/system/gd",
diff --git a/system/gd/rust/topshim/btav/btav_shim.cc b/system/gd/rust/topshim/btav/btav_shim.cc
index 3846eb375ce..fd1173e8649 100644
--- a/system/gd/rust/topshim/btav/btav_shim.cc
+++ b/system/gd/rust/topshim/btav/btav_shim.cc
@@ -215,7 +215,7 @@ int A2dpIntf::set_active_device(RustRawAddress bt_addr) const {
 int A2dpIntf::config_codec(RustRawAddress bt_addr, ::rust::Vec<A2dpCodecConfig> codec_preferences) const {
   RawAddress addr = rusty::CopyFromRustAddress(bt_addr);
   std::vector<btav_a2dp_codec_config_t> prefs;
-  for (size_t i = 0; i < codec_preferences.size(); ++i) {
+  for (int i = 0; i < codec_preferences.size(); ++i) {
     prefs.push_back(internal::from_rust_codec_config(codec_preferences[i]));
   }
   return intf_->config_codec(addr, prefs);
diff --git a/system/gd/rust/topshim/btif/btif_shim.cc b/system/gd/rust/topshim/btif/btif_shim.cc
index 8529605bac0..e9f53fa85d7 100644
--- a/system/gd/rust/topshim/btif/btif_shim.cc
+++ b/system/gd/rust/topshim/btif/btif_shim.cc
@@ -45,7 +45,7 @@ void InitFlags::Convert(::rust::Vec<::rust::String>& initFlags) {
   flags_ = static_cast<const char**>(std::calloc(initFlags.size() + 1, sizeof(char*)));
   if (!flags_) return;
 
-  for (size_t i = 0; i < initFlags.size(); ++i) {
+  for (int i = 0; i < initFlags.size(); ++i) {
     flags_[i] = strndup(initFlags[i].data(), initFlags[i].size());
     if (!flags_[i]) {
       return;
diff --git a/system/gd/rust/topshim/facade/Android.bp b/system/gd/rust/topshim/facade/Android.bp
index 27f26937fae..95648c71ea1 100644
--- a/system/gd/rust/topshim/facade/Android.bp
+++ b/system/gd/rust/topshim/facade/Android.bp
@@ -9,10 +9,7 @@ package {
 
 rust_binary_host {
     name: "bt_topshim_facade",
-    defaults: [
-        "gd_rust_defaults",
-        "libchrome_support_defaults"
-    ],
+    defaults: ["gd_rust_defaults"],
     crate_name: "bt_topshim_facade",
     srcs: ["src/main.rs"],
     ld_flags: ["-fsanitize=undefined", "-fsanitize-minimal-runtime"],
@@ -32,21 +29,15 @@ rust_binary_host {
         "libbt_shim",
     ],
     static_libs: [
-        "avrcp-target-service",
-        "lib-bt-packets",
-        "lib-bt-packets-avrcp",
-        "lib-bt-packets-base",
-        "libchrome",
-        "libevent",
         "libbt_topshim_cxx",
         "libbt-bta",
         "libbt-common",
         "libbtdevice",
-        "libbtif",
+        "libbtif-static",
         "libbt-hci",
         "libbt-stack",
         "libbt-utils",
-        "libbtcore",
+        "libbtcore-static",
         "libosi",
         "libbt-protos-lite",
         "libbte",
@@ -61,12 +52,10 @@ rust_binary_host {
         "libbluetooth-types",
         "libflatbuffers-cpp",
         "libbt_shim_bridge",
-        "libbt_topshim_cxx",
-        "libbt-audio-hal-interface",
-        "libaudio-a2dp-hw-utils",
     ],
     shared_libs: [
         "libcrypto",
+        "libchrome",
         "liblog",
         "libcutils",
         "libgrpc++",
diff --git a/system/gd/storage/config_cache_helper_test.cc b/system/gd/storage/config_cache_helper_test.cc
index 73e3b8dee76..7269a4ae859 100644
--- a/system/gd/storage/config_cache_helper_test.cc
+++ b/system/gd/storage/config_cache_helper_test.cc
@@ -57,7 +57,7 @@ TEST(ConfigCacheHelperTest, set_get_uint64_test) {
   // zero
   ConfigCacheHelper(config).SetUint64("A", "B", 0);
   ASSERT_THAT(config.GetProperty("A", "B"), Optional(StrEq("0")));
-  ASSERT_THAT(ConfigCacheHelper(config).GetUint64("A", "B"), Optional(Eq(0ul)));
+  ASSERT_THAT(ConfigCacheHelper(config).GetUint64("A", "B"), Optional(Eq(0)));
 }
 
 TEST(ConfigCacheHelperTest, set_get_uint32_test) {
@@ -76,7 +76,7 @@ TEST(ConfigCacheHelperTest, set_get_uint32_test) {
   // zero
   ConfigCacheHelper(config).SetUint32("A", "B", 0);
   ASSERT_THAT(config.GetProperty("A", "B"), Optional(StrEq("0")));
-  ASSERT_THAT(ConfigCacheHelper(config).GetUint32("A", "B"), Optional(Eq(0u)));
+  ASSERT_THAT(ConfigCacheHelper(config).GetUint32("A", "B"), Optional(Eq(0)));
 }
 
 TEST(ConfigCacheHelperTest, set_get_int64_test) {
diff --git a/system/hci/Android.bp b/system/hci/Android.bp
index 95690d83dde..d7b735ea948 100644
--- a/system/hci/Android.bp
+++ b/system/hci/Android.bp
@@ -7,10 +7,20 @@ package {
     default_applicable_licenses: ["system_bt_license"],
 }
 
+cc_defaults {
+    name: "libbt-hci_defaults",
+    defaults: ["fluoride_defaults"],
+    shared_libs: [
+        "android.hardware.bluetooth@1.0",
+        "android.hardware.bluetooth@1.1",
+        "libhidlbase",
+    ],
+}
+
 // HCI static library for target
 cc_library_static {
     name: "libbt-hci",
-    defaults: ["fluoride_basic_defaults"],
+    defaults: ["libbt-hci_defaults"],
     srcs: [
         "src/btsnoop.cc",
         "src/btsnoop_mem.cc",
@@ -57,8 +67,7 @@ cc_library_static {
 cc_test {
     name: "net_test_hci",
     test_suites: ["device-tests"],
-    defaults: ["fluoride_basic_defaults", "fluoride_test_defaults"],
-    host_supported: false,
+    defaults: ["libbt-hci_defaults"],
     local_include_dirs: [
         "include",
     ],
@@ -75,11 +84,18 @@ cc_test {
         "test/packet_fragmenter_test.cc",
     ],
     shared_libs: [
+        "liblog",
         "libdl",
+        "libprotobuf-cpp-lite",
     ],
     static_libs: [
         "libbt-hci",
+        "libosi",
+        "libosi-AlarmTestHarness",
+        "libosi-AllocationTestHarness",
+        "libcutils",
         "libbtcore",
+        "libbt-protos-lite",
         "libbluetooth-for-tests",
     ],
 }
@@ -88,7 +104,11 @@ cc_test {
 cc_test {
     name: "net_test_hci_native",
     test_suites: ["device-tests"],
-    defaults: ["fluoride_unit_test_defaults"],
+    defaults: ["fluoride_defaults"],
+    host_supported: true,
+    test_options: {
+        unit_test: true,
+    },
     local_include_dirs: [
         "include",
     ],
@@ -101,12 +121,32 @@ cc_test {
         "test/hci_layer_test.cc",
         "test/other_stack_stub.cc",
     ],
+    shared_libs: [
+        "libcrypto",
+        "liblog",
+        "libprotobuf-cpp-lite",
+    ],
+    static_libs: [
+        "libbt-common",
+        "libbt-protos-lite",
+        "libosi",
+        "libosi-AllocationTestHarness",
+    ],
+    sanitize: {
+        address: true,
+        cfi: true,
+        misc_undefined: ["bounds"],
+    },
 }
 
 cc_test {
     name: "net_test_hci_fragmenter_native",
     test_suites: ["device-tests"],
-    defaults: ["fluoride_unit_test_defaults"],
+    defaults: ["fluoride_defaults"],
+    host_supported: true,
+    test_options: {
+        unit_test: true,
+    },
     local_include_dirs: [
         "include",
     ],
@@ -120,5 +160,21 @@ cc_test {
         "src/buffer_allocator.cc",
         "test/packet_fragmenter_host_test.cc",
     ],
+    shared_libs: [
+        "libcrypto",
+        "liblog",
+        "libprotobuf-cpp-lite",
+    ],
+    static_libs: [
+        "libbt-common",
+        "libbt-protos-lite",
+        "libosi",
+        "libosi-AllocationTestHarness",
+    ],
+    sanitize: {
+        address: true,
+        cfi: true,
+        misc_undefined: ["bounds"],
+    },
 }
 
diff --git a/system/include/Android.bp b/system/include/Android.bp
index cfe5897f334..8bb2b7c3b6b 100644
--- a/system/include/Android.bp
+++ b/system/include/Android.bp
@@ -16,7 +16,7 @@ cc_library_headers {
 
     // We need this in case some file outside of the Bluetooth project includes
     // bluetooth.h but doesn't include libchrome which avrcp.h depends on.
-    export_static_lib_headers: ["libchrome"],
+    export_shared_lib_headers: ["libchrome"],
 
     vendor_available: true,
     host_supported: true,
diff --git a/system/main/Android.bp b/system/main/Android.bp
index e89355a1967..defe0e00ef1 100644
--- a/system/main/Android.bp
+++ b/system/main/Android.bp
@@ -21,7 +21,7 @@ filegroup {
 
 cc_library_static {
     name: "libbte",
-    defaults: ["fluoride_basic_defaults"],
+    defaults: ["fluoride_defaults"],
     srcs: [
         ":LibBluetoothSources",
         ":LibBluetoothShimSources",
@@ -49,6 +49,9 @@ cc_library_static {
         "system/security/keystore/include",
         "hardware/interfaces/keymaster/4.0/support/include",
     ],
+    shared_libs: [
+            "libflatbuffers-cpp",
+    ],
     generated_headers: [
         "BluetoothGeneratedBundlerSchema_h_bfbs",
         "BluetoothGeneratedDumpsysDataSchema_h",
@@ -58,14 +61,14 @@ cc_library_static {
     host_supported: true,
 }
 
-cc_library {
+cc_library_shared {
     name: "libbluetooth",
     visibility: [
         "//cts/hostsidetests:__subpackages__",
         "//packages/modules/Bluetooth:__subpackages__",
         "//vendor:__subpackages__",
     ],
-    defaults: ["fluoride_full_defaults"],
+    defaults: ["fluoride_defaults"],
     header_libs: ["libbluetooth_headers"],
     export_header_lib_headers: ["libbluetooth_headers"],
     include_dirs: [
@@ -90,6 +93,63 @@ cc_library {
         "hardware/interfaces/keymaster/4.0/support/include",
     ],
     logtags: ["../../EventLogTags.logtags"],
+    shared_libs: [
+        "libcrypto",
+        "libflatbuffers-cpp",
+        "liblog",
+    ],
+    static_libs: [
+        "libbte",
+        "libbt-sbc-decoder",
+        "libbt-sbc-encoder",
+        "libFraunhoferAAC",
+        "libg722codec",
+        "liblc3",
+        "libudrv-uipc",
+        "libprotobuf-cpp-lite",
+        "libbluetooth_gd", // Gabeldorsche
+        "libbluetooth-dumpsys",
+        "libbluetooth_rust_interop",
+    ],
+    whole_static_libs: [
+        "libbt-bta",
+        "libbt-common",
+        "libbtdevice",
+        "libbtif",
+        "libbt-hci",
+        "libbt-stack",
+        "libbt-utils",
+        "libbtcore",
+        "libosi",
+        "libbt-protos-lite",
+    ],
+    target: {
+        android: {
+            shared_libs: [
+                "android.hardware.bluetooth.a2dp@1.0",
+                "android.hardware.bluetooth.audio@2.0",
+                "android.hardware.bluetooth.audio@2.1",
+                "android.hardware.bluetooth.audio-V1-ndk",
+                "android.hardware.bluetooth@1.0",
+                "android.hardware.bluetooth@1.1",
+                "android.system.suspend.control-V1-ndk",
+                "android.system.suspend-V1-ndk",
+                "libaaudio",
+                "libbinder_ndk",
+                "libcutils",
+                "libhidlbase",
+                "libfmq",
+                "libprocessgroup",
+                "libtinyxml2",
+                "libutils",
+                "libz",
+            ],
+            required: [
+                "libldacBT_enc",
+                "libldacBT_abr",
+            ],
+        },
+    },
     // Shared library link options.
     // References to global symbols and functions should bind to the library
     // itself. This is to avoid issues with some of the unit/system tests
@@ -110,6 +170,10 @@ cc_library {
     sanitize: {
         never: true,
     },
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.bluetooth",
+    ],
     host_supported: true,
     min_sdk_version: "30",
 }
@@ -195,7 +259,6 @@ cc_test {
         "libbluetooth-dumpsys",
         "libbt-common",
         "libbt-protos-lite",
-        "libflatbuffers-cpp",
         "libgmock",
         "liblog",
         "libosi",
@@ -203,6 +266,7 @@ cc_test {
     ],
     shared_libs: [
         "libcrypto",
+        "libflatbuffers-cpp",
         "libprotobuf-cpp-lite",
     ],
     sanitize: {
diff --git a/system/osi/Android.bp b/system/osi/Android.bp
index 6b188ef9f27..7b175b742fb 100644
--- a/system/osi/Android.bp
+++ b/system/osi/Android.bp
@@ -59,7 +59,7 @@ cc_library_static {
         "//packages/apps/Test/connectivity/sl4n",
         "//packages/modules/Bluetooth:__subpackages__",
     ],
-    defaults: ["fluoride_osi_defaults", "fluoride_basic_defaults"],
+    defaults: ["fluoride_osi_defaults"],
     // TODO(mcchou): Remove socket_utils sources after platform specific
     // dependencies are abstracted.
     srcs: [
@@ -87,6 +87,10 @@ cc_library_static {
         "src/thread_scheduler.cc",
         "src/wakelock.cc",
     ],
+    shared_libs: [
+        "liblog",
+    ],
+    static_libs: ["libbt-protos-lite"],
     host_supported: true,
     // TODO(armansito): Setting _GNU_SOURCE isn't very platform-independent but
     // should be compatible for a Linux host OS. We should figure out what to do for
@@ -99,6 +103,10 @@ cc_library_static {
             ],
         },
     },
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.bluetooth",
+    ],
 }
 
 // libosi unit tests for target and host
diff --git a/system/packet/Android.bp b/system/packet/Android.bp
index 3f73da21f9a..45057d84994 100644
--- a/system/packet/Android.bp
+++ b/system/packet/Android.bp
@@ -15,7 +15,7 @@ cc_library_static {
         "./include",
         "./",
     ],
-    static_libs: [
+    whole_static_libs: [
         "lib-bt-packets-base",
         "lib-bt-packets-avrcp",
     ],
@@ -69,8 +69,6 @@ cc_test {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
diff --git a/system/packet/tests/fuzzers/Android.bp b/system/packet/tests/fuzzers/Android.bp
index 3a782073249..eb5090eb7e1 100644
--- a/system/packet/tests/fuzzers/Android.bp
+++ b/system/packet/tests/fuzzers/Android.bp
@@ -30,8 +30,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -62,8 +60,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -94,8 +90,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -126,8 +120,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -158,8 +150,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -190,8 +180,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -222,8 +210,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -254,8 +240,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -286,8 +270,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -318,8 +300,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -350,8 +330,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -382,8 +360,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -414,8 +390,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -446,8 +420,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -478,8 +450,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -510,8 +480,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -542,8 +510,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -574,8 +540,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -606,8 +570,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -638,8 +600,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -670,8 +630,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -702,8 +660,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -734,8 +690,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -766,8 +720,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
@@ -798,8 +750,6 @@ cc_fuzz {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
     ],
     cflags: [
         "-DBUILDCFG",
diff --git a/system/profile/avrcp/Android.bp b/system/profile/avrcp/Android.bp
index 4459e562398..a8daa91913a 100644
--- a/system/profile/avrcp/Android.bp
+++ b/system/profile/avrcp/Android.bp
@@ -12,7 +12,6 @@ cc_library_static {
     defaults: [
         "fluoride_defaults",
         "clang_file_coverage",
-        "libchrome_support_defaults",
     ],
     host_supported: true,
     include_dirs: [
@@ -33,6 +32,7 @@ cc_library_static {
         "libosi",
     ],
     shared_libs: [
+        "libchrome",
         "liblog",
     ],
     apex_available: [
@@ -47,7 +47,6 @@ cc_test {
     defaults: [
         "fluoride_defaults",
         "clang_coverage_bin",
-        "libchrome_support_defaults",
     ],
     host_supported: true,
     test_options: {
@@ -65,8 +64,6 @@ cc_test {
     static_libs: [
         "libgmock",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
         "libosi",
         "liblog",
         "libcutils",
@@ -74,6 +71,9 @@ cc_test {
         "libbtdevice",
         "avrcp-target-service",
     ],
+    shared_libs: [
+        "libchrome",
+    ],
     sanitize: {
         cfi: false,
     },
@@ -86,7 +86,6 @@ cc_fuzz {
     host_supported: true,
     defaults: [
         "fluoride_defaults_fuzzable",
-        "libchrome_support_defaults",
     ],
     srcs: [
         "tests/avrcp_device_fuzz/avrcp_device_fuzz.cc",
@@ -100,9 +99,8 @@ cc_fuzz {
     static_libs: [
         "avrcp-target-service",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
         "libbase",
+        "libchrome",
         "libcutils",
         "libevent",
         "liblog",
diff --git a/system/profile/sdp/Android.bp b/system/profile/sdp/Android.bp
index 7db1a4d4b41..8bb883ba0c6 100644
--- a/system/profile/sdp/Android.bp
+++ b/system/profile/sdp/Android.bp
@@ -44,8 +44,6 @@ cc_test {
         "libgmock",
         "sdp_service",
         "lib-bt-packets",
-        "lib-bt-packets-base",
-        "lib-bt-packets-avrcp",
         "libbluetooth-types",
     ],
 }
diff --git a/system/service/Android.bp b/system/service/Android.bp
index a363d816f16..becc865f157 100644
--- a/system/service/Android.bp
+++ b/system/service/Android.bp
@@ -92,63 +92,20 @@ cc_binary {
         btserviceDaemonSrc +
         ["main.cc"],
     static_libs: [
-        "avrcp-target-service",
-        "libaudio-a2dp-hw-utils",
         "libbluetooth-binder-common",
-        "libbluetooth-dumpsys",
-        "libbluetooth-types",
-        "libbt-audio-hal-interface",
-        "libbt-bta",
-        "libbt-common",
         "libbtcore",
-        "libbtdevice",
-        "libbte",
-        "libbt-hci",
-        "libbtif",
-        "lib-bt-packets",
-        "lib-bt-packets-avrcp",
-        "lib-bt-packets-base",
-        "libbt-protos-lite",
-        "libbt-sbc-decoder",
-        "libbt-sbc-encoder",
-        "libbt-stack",
-        "libbt-utils",
-        "libchrome",
-        "libflatbuffers-cpp",
-        "libFraunhoferAAC",
-        "libg722codec",
-        "liblc3",
+        "libbluetooth-types",
         "libosi",
-        "libudrv-uipc",
     ],
 
     shared_libs: [
-        "android.hardware.bluetooth@1.0",
-        "android.hardware.bluetooth@1.1",
-        "android.hardware.bluetooth.a2dp@1.0",
-        "android.hardware.bluetooth.audio@2.0",
-        "android.hardware.bluetooth.audio@2.1",
-        "android.system.suspend.control-V1-ndk",
-        "android.system.suspend-V1-ndk",
-        "libaaudio",
+        "libchrome",
         "libbinder",
-        "libbinder_ndk",
-        "libcrypto",
         "libcutils",
-        "libfmq",
         "liblog",
-        "libprocessgroup",
-        "libprotobuf-cpp-lite",
         "libutils",
     ],
     init_rc: ["bluetoothtbd.rc"],
-    target: {
-        android: {
-            shared_libs: [
-                "android.hardware.bluetooth.audio-V1-ndk",
-            ],
-        },
-    },
 }
 
 // Native system service unit tests for target and host
@@ -168,49 +125,14 @@ cc_test {
         ],
     },
     static_libs: [
-        "avrcp-target-service",
-        "libaudio-a2dp-hw-utils",
         "libbluetooth-common",
-        "libbluetooth-dumpsys",
-        "libbluetooth-types",
-        "libbt-audio-hal-interface",
-        "libbt-bta",
-        "libbt-common",
-        "libbtcore",
-        "libbtdevice",
-        "libbte",
-        "libbt-hci",
-        "libbtif",
-        "lib-bt-packets",
-        "lib-bt-packets-avrcp",
-        "lib-bt-packets-base",
-        "libbt-protos-lite",
-        "libbt-sbc-decoder",
-        "libbt-sbc-encoder",
-        "libbt-stack",
-        "libbt-utils",
-        "libchrome",
         "libgmock",
         "liblog",
+        "libbluetooth-types",
         "libutils",
-        "libflatbuffers-cpp",
-        "libFraunhoferAAC",
-        "libg722codec",
-        "liblc3",
-        "libosi",
-        "libudrv-uipc",
     ],
     shared_libs: [
-        "android.hardware.bluetooth@1.0",
-        "android.hardware.bluetooth@1.1",
-        "android.hardware.bluetooth.a2dp@1.0",
-        "android.hardware.bluetooth.audio@2.0",
-        "android.hardware.bluetooth.audio@2.1",
-        "libbinder_ndk",
-        "libcrypto",
-        "libfmq",
-        "libprocessgroup",
-        "libprotobuf-cpp-lite",
+        "libchrome",
     ],
 
     host_supported: true,
@@ -229,9 +151,6 @@ cc_test {
                 "libbluetooth-binder-common",
             ],
             shared_libs: [
-                "android.hardware.bluetooth.audio-V1-ndk",
-                "android.system.suspend.control-V1-ndk",
-                "android.system.suspend-V1-ndk",
                 "libbinder",
             ],
         },
diff --git a/system/service/hal/bluetooth_interface.cc b/system/service/hal/bluetooth_interface.cc
index fbf0ef8cd2b..db3cc25418f 100644
--- a/system/service/hal/bluetooth_interface.cc
+++ b/system/service/hal/bluetooth_interface.cc
@@ -38,10 +38,6 @@ using shared_mutex_impl = std::shared_mutex;
 using shared_mutex_impl = std::shared_timed_mutex;
 #endif
 
-#ifndef DYNAMIC_LOAD_BLUETOOTH
-extern bt_interface_t bluetoothInterface;
-#endif
-
 namespace bluetooth {
 namespace hal {
 
@@ -269,12 +265,6 @@ constexpr char kLibbluetooth[] = "libbluetooth.so";
 constexpr char kBluetoothInterfaceSym[] = "bluetoothInterface";
 
 int hal_util_load_bt_library_from_dlib(const bt_interface_t** interface) {
-#ifndef DYNAMIC_LOAD_BLUETOOTH
-  (void)kLibbluetooth;
-  (void)kBluetoothInterfaceSym;
-  *interface = &bluetoothInterface;
-  return 0;
-#else
   bt_interface_t* itf{nullptr};
 
   // Always try to load the default Bluetooth stack on GN builds.
@@ -306,7 +296,6 @@ error:
   if (handle) dlclose(handle);
 
   return -EINVAL;
-#endif
 }
 
 }  // namespace
diff --git a/system/stack/Android.bp b/system/stack/Android.bp
index 2d191e48f22..8678e6204f3 100644
--- a/system/stack/Android.bp
+++ b/system/stack/Android.bp
@@ -27,7 +27,7 @@ cc_test_library {
 // Bluetooth stack static library for target
 cc_library_static {
     name: "libbt-stack",
-    defaults: ["fluoride_basic_defaults"],
+    defaults: ["fluoride_defaults"],
     local_include_dirs: [
         "include",
         "avct",
@@ -202,6 +202,17 @@ cc_library_static {
     ],
     static_libs: [
         "libbt-hci",
+        "libFraunhoferAAC",
+        "libbt-platform-protos-lite",
+    ],
+    shared_libs: [
+        "libcutils",
+        "liblog",
+        "libcrypto",
+    ],
+    required: [
+        "libldacBT_enc",
+        "libldacBT_abr",
     ],
     host_supported: true,
 }
@@ -376,10 +387,10 @@ cc_test {
     shared_libs: [
         "libcrypto",
         "libcutils",
+        "libflatbuffers-cpp",
     ],
     static_libs: [
         "liblog",
-        "libflatbuffers-cpp",
         "libgmock",
         "libosi",
     ],
@@ -818,7 +829,6 @@ cc_test {
         "libbt-protos-lite",
         "libbtdevice",
         "libbt-utils",
-        "libflatbuffers-cpp",
         "libgmock",
         "liblog",
         "libosi",
@@ -826,6 +836,7 @@ cc_test {
     ],
     shared_libs: [
         "libcrypto",
+        "libflatbuffers-cpp",
         "libprotobuf-cpp-lite",
     ],
     sanitize: {
@@ -969,7 +980,6 @@ cc_test {
         "libbt-common",
         "libbt-protos-lite",
         "libbtdevice",
-        "libflatbuffers-cpp",
         "libgmock",
         "liblog",
         "libosi",
@@ -977,6 +987,7 @@ cc_test {
     shared_libs: [
         "libbinder_ndk",
         "libcrypto",
+        "libflatbuffers-cpp",
         "libprotobuf-cpp-lite",
     ],
     sanitize: {
@@ -1040,7 +1051,6 @@ cc_test {
         "libbt-common",
         "libbt-protos-lite",
         "libbtdevice",
-        "libflatbuffers-cpp",
         "libgmock",
         "liblog",
         "libosi",
@@ -1048,6 +1058,7 @@ cc_test {
     shared_libs: [
         "libbinder_ndk",
         "libcrypto",
+        "libflatbuffers-cpp",
         "libprotobuf-cpp-lite",
     ],
     sanitize: {
diff --git a/system/test/headless/Android.bp b/system/test/headless/Android.bp
index 298d713a5e1..b0f6c343e29 100644
--- a/system/test/headless/Android.bp
+++ b/system/test/headless/Android.bp
@@ -33,37 +33,28 @@ cc_test {
         "libbtcore",
     ],
     static_libs: [
-        "avrcp-target-service",
-        "libaudio-a2dp-hw-utils",
-        "libbluetooth-dumpsys",
+        "libFraunhoferAAC",
         "libbluetooth_gd",
-        "libbluetooth_rust_interop",
-        "libbt-audio-hal-interface",
         "libbt-bta",
-        "libbt_callbacks_cxx",
         "libbt-common",
-        "libbtdevice",
-        "libbte",
+        "libbluetooth-dumpsys",
         "libbt-hci",
-        "libbtif",
-        "lib-bt-packets",
-        "lib-bt-packets-avrcp",
-        "lib-bt-packets-base",
         "libbt-protos-lite",
         "libbt-sbc-decoder",
         "libbt-sbc-encoder",
-        "libbt_shim_bridge",
-        "libbt_shim_ffi",
         "libbt-stack",
         "libbt-utils",
+        "libbtdevice",
+        "libbte",
+        "libbtif",
         "libflatbuffers-cpp",
-        "libFraunhoferAAC",
         "libg722codec",
         "liblc3",
         "libosi",
         "libprotobuf-cpp-lite",
         "libudrv-uipc",
         "libz",
+        "libbluetooth_rust_interop",
     ],
     shared_libs: [
         "android.hardware.bluetooth.a2dp@1.0",
diff --git a/system/test/rootcanal/Android.bp b/system/test/rootcanal/Android.bp
index f0bd2ab8e8a..a6c41d606eb 100644
--- a/system/test/rootcanal/Android.bp
+++ b/system/test/rootcanal/Android.bp
@@ -24,10 +24,7 @@ package {
 
 cc_binary {
     name: "android.hardware.bluetooth@1.1-service.sim",
-    defaults: [
-      "gd_defaults",
-      "libchrome_support_defaults"
-    ],
+    defaults: ["gd_defaults"],
     proprietary: true,
     relative_install_path: "hw",
     srcs: [
@@ -42,6 +39,7 @@ cc_binary {
         "android.hardware.bluetooth@1.0",
         "android.hardware.bluetooth@1.1",
         "libbase",
+        "libchrome",
         "libcutils",
         "libhidlbase",
         "libjsoncpp",
@@ -79,10 +77,7 @@ cc_binary {
 
 cc_library_shared {
     name: "android.hardware.bluetooth@1.1-impl-sim",
-    defaults: [
-      "gd_defaults",
-      "libchrome_support_defaults"
-    ],
+    defaults: ["gd_defaults"],
     proprietary: true,
     relative_install_path: "hw",
     srcs: [
@@ -96,6 +91,7 @@ cc_library_shared {
         "android.hardware.bluetooth@1.0",
         "android.hardware.bluetooth@1.1",
         "libbase",
+        "libchrome",
         "libcutils",
         "libhidlbase",
         "libjsoncpp",
diff --git a/system/test/suite/Android.bp b/system/test/suite/Android.bp
index cace113f2fd..5dc6bcc4cfc 100644
--- a/system/test/suite/Android.bp
+++ b/system/test/suite/Android.bp
@@ -8,135 +8,71 @@ package {
     default_applicable_licenses: ["system_bt_license"],
 }
 
-cc_defaults {
-    name: "net_test_defaults",
+cc_test {
+    name: "net_test_bluetooth",
+    test_suites: ["device-tests"],
     defaults: ["fluoride_defaults"],
     include_dirs: [
-        "frameworks/av/media/libaaudio/include",
         "packages/modules/Bluetooth/system",
-        "packages/modules/Bluetooth/system/bta/dm",
-        "packages/modules/Bluetooth/system/bta/include",
-        "packages/modules/Bluetooth/system/bta/sys",
-        "packages/modules/Bluetooth/system/btif/avrcp",
-        "packages/modules/Bluetooth/system/btif/co",
-        "packages/modules/Bluetooth/system/btif/include",
-        "packages/modules/Bluetooth/system/device/include",
-        "packages/modules/Bluetooth/system/embdrv/sbc/decoder/include",
-        "packages/modules/Bluetooth/system/embdrv/sbc/encoder/include",
         "packages/modules/Bluetooth/system/gd",
         "packages/modules/Bluetooth/system/include",
-        "packages/modules/Bluetooth/system/internal_include",
-        "packages/modules/Bluetooth/system/stack/a2dp",
-        "packages/modules/Bluetooth/system/stack/avdt",
-        "packages/modules/Bluetooth/system/stack/btm",
         "packages/modules/Bluetooth/system/stack/include",
-        "packages/modules/Bluetooth/system/stack/l2cap",
-        "packages/modules/Bluetooth/system/udrv/include",
-        "packages/modules/Bluetooth/system/utils/include",
-        "packages/modules/Bluetooth/system/vnd/include",
-        "system/libfmq/include",
-        "system/libhwbinder/include",
     ],
     srcs: [
-        "adapter/bluetooth_test.cc",
-        ":BtaDmSources",
         ":TestCommonMockFunctions",
-        ":TestMockAndroidHardware",
-        ":TestMockBtaAr",
-        ":TestMockBtaAv",
-        ":TestMockBtaCsis",
-        ":TestMockBtaGroups",
-        ":TestMockBtaHas",
-        ":TestMockBtaHd",
-        ":TestMockBtaHearingAid",
-        ":TestMockBtaHf",
-        ":TestMockBtaHh",
-        ":TestMockBtaJv",
-        ":TestMockBtaLeAudio",
-        ":TestMockBtaLeAudioHalVerifier",
-        ":TestMockBtaSdp",
-        ":TestMockBtaVc",
-        ":TestMockCommon",
-        ":TestMockFrameworks",
-        ":TestMockHci",
-        ":TestMockSystemLibfmq",
-        ":TestMockUdrv",
+        ":TestMockBluetoothInterface",
+        ":TestMockDevice",
+        "adapter/adapter_unittest.cc",
+        "adapter/bluetooth_test.cc",
+        "gatt/gatt_test.cc",
+        "gatt/gatt_unittest.cc",
     ],
+    header_libs: ["libhardware_headers"],
     shared_libs: [
-        "android.hardware.bluetooth@1.0",
-        "android.hardware.bluetooth@1.1",
-        "android.hardware.bluetooth.a2dp@1.0",
-        "android.hardware.bluetooth.audio@2.0",
-        "android.hardware.bluetooth.audio@2.1",
-        "android.system.suspend.control-V1-ndk",
-        "android.system.suspend-V1-ndk",
-        "libbinder",
-        "libbinder_ndk",
-        "libcrypto",
-        "libcutils",
-        "libhidlbase",
         "liblog",
-        "libstatslog_bt",
-        "libtinyxml2",
+        "libcutils",
+        "libbinder",
         "libutils",
     ],
     static_libs: [
-        "avrcp-target-service",
-        "libaudio-a2dp-hw-utils",
-        "libbluetooth-dumpsys",
-        "libbluetooth-types",
-        "libbluetoothtbd_hal",
-        "libbt-audio-hal-interface",
-        "libbt-bta",
-        "libbt-common",
         "libbtcore",
-        "libbtdevice",
-        "libbte",
-        "libbt-hci",
-        "libbtif",
-        "lib-bt-packets",
-        "lib-bt-packets-avrcp",
-        "lib-bt-packets-base",
-        "libbt-sbc-decoder",
-        "libbt-sbc-encoder",
-        "libbt-stack",
-        "libbt-utils",
-        "libflatbuffers-cpp",
-        "libFraunhoferAAC",
-        "libgmock",
-        "liblc3",
         "libosi",
     ],
-    header_libs: [
-        "libhardware_headers",
-        "libbluetooth_headers",
-    ],
-    target: {
-        android: {
-            shared_libs: [
-                "android.hardware.bluetooth.audio-V1-ndk",
-            ],
-        },
-    },
-}
-
-cc_test {
-    name: "net_test_bluetooth",
-    test_suites: ["device-tests"],
-    defaults: ["net_test_defaults"],
-    srcs: [
-        "adapter/adapter_unittest.cc",
-        "gatt/gatt_test.cc",
-        "gatt/gatt_unittest.cc",
+    whole_static_libs: [
+        "libbluetoothtbd_hal",
     ],
 }
 
 // Bluetooth test suite for target
 cc_test {
     name: "net_test_rfcomm_suite",
-    defaults: ["net_test_defaults"],
+    defaults: ["fluoride_defaults"],
+    include_dirs: [
+        "packages/modules/Bluetooth/system",
+        "packages/modules/Bluetooth/system/gd",
+        "packages/modules/Bluetooth/system/include",
+        "packages/modules/Bluetooth/system/stack/include",
+    ],
     srcs: [
+        ":TestMockBluetoothInterface",
+        ":TestMockDevice",
+        ":TestCommonMockFunctions",
+        "adapter/bluetooth_test.cc",
         "rfcomm/rfcomm_test.cc",
         "rfcomm/rfcomm_unittest.cc",
     ],
+    header_libs: ["libhardware_headers"],
+    shared_libs: [
+        "liblog",
+        "libcutils",
+        "libbinder",
+        "libutils",
+    ],
+    static_libs: [
+        "libbtcore",
+        "libosi",
+    ],
+    whole_static_libs: [
+        "libbluetoothtbd_hal",
+    ],
 }
diff --git a/system/test/suite/adapter/bluetooth_test.cc b/system/test/suite/adapter/bluetooth_test.cc
index 6b24b7509c8..be5660e088f 100644
--- a/system/test/suite/adapter/bluetooth_test.cc
+++ b/system/test/suite/adapter/bluetooth_test.cc
@@ -48,16 +48,16 @@ void BluetoothTest::SetUp() {
   acl_state_ = BT_ACL_STATE_DISCONNECTED;
   bond_state_ = BT_BOND_STATE_NONE;
 
-  remove("/data/misc/bluedroid/bt_config.conf.encrypted-checksum");
-  remove("/data/misc/bluedroid/bt_config.bak.encrypted-checksum");
-
-  bluetooth::hal::BluetoothInterface::Initialize();
-  ASSERT_TRUE(bluetooth::hal::BluetoothInterface::IsInitialized());
   adapter_properties_callback_sem_ = semaphore_new(0);
   remote_device_properties_callback_sem_ = semaphore_new(0);
   adapter_state_changed_callback_sem_ = semaphore_new(0);
   discovery_state_changed_callback_sem_ = semaphore_new(0);
 
+  remove("/data/misc/bluedroid/bt_config.conf.encrypted-checksum");
+  remove("/data/misc/bluedroid/bt_config.bak.encrypted-checksum");
+
+  bluetooth::hal::BluetoothInterface::Initialize();
+  ASSERT_TRUE(bluetooth::hal::BluetoothInterface::IsInitialized());
   auto bt_hal_interface = bluetooth::hal::BluetoothInterface::Get();
   bt_hal_interface->AddObserver(this);
   bt_interface_ = bt_hal_interface->GetHALInterface();
-- 
GitLab