From 031dc503f11bcd3c20f86696fdfe19f9413642e8 Mon Sep 17 00:00:00 2001 From: Rahul Arya <aryarahul@google.com> Date: Mon, 26 Sep 2022 23:02:06 +0000 Subject: [PATCH] Add flag to toggle IRK rotation Based on discussion in linked bug, to prevent further regressions if the latest fixes are still incomplete. Bug: 195410559 Test: compiles Ignore-AOSP-First: security Change-Id: I1741929c639f2dbc6417974bf3287d8d141e33df (cherry picked from commit 924c3a96379e0ab86a907079c307de3de2f06a56) Merged-In: I1741929c639f2dbc6417974bf3287d8d141e33df --- system/btif/src/btif_storage.cc | 4 +++- system/gd/rust/common/src/init_flags.rs | 3 ++- system/gd/rust/shim/src/init_flags.rs | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/system/btif/src/btif_storage.cc b/system/btif/src/btif_storage.cc index bd7e89c8b5e..41fa4df5fbe 100644 --- a/system/btif/src/btif_storage.cc +++ b/system/btif/src/btif_storage.cc @@ -54,6 +54,7 @@ #include "btif_hh.h" #include "btif_util.h" #include "device/include/controller.h" +#include "gd/common/init_flags.h" #include "osi/include/allocator.h" #include "osi/include/compat.h" #include "osi/include/config.h" @@ -899,7 +900,8 @@ bt_status_t btif_storage_remove_bonded_device( /* Check the length of the paired devices, and if 0 then reset IRK */ auto paired_devices = btif_config_get_paired_devices(); - if (paired_devices.empty()) { + if (paired_devices.empty() && + bluetooth::common::init_flags::irk_rotation_is_enabled()) { LOG_INFO("Last paired device removed, resetting IRK"); BTA_DmBleResetId(); } diff --git a/system/gd/rust/common/src/init_flags.rs b/system/gd/rust/common/src/init_flags.rs index 80fe6da399b..52425a83687 100644 --- a/system/gd/rust/common/src/init_flags.rs +++ b/system/gd/rust/common/src/init_flags.rs @@ -80,7 +80,8 @@ init_flags!( gatt_robust_caching, btaa_hci, gd_rust, - gd_link_policy + gd_link_policy, + irk_rotation }, dependencies: { gd_core => gd_security diff --git a/system/gd/rust/shim/src/init_flags.rs b/system/gd/rust/shim/src/init_flags.rs index fd3015cc341..d1cbfbf0688 100644 --- a/system/gd/rust/shim/src/init_flags.rs +++ b/system/gd/rust/shim/src/init_flags.rs @@ -11,6 +11,7 @@ mod ffi { fn btaa_hci_is_enabled() -> bool; fn gd_rust_is_enabled() -> bool; fn gd_link_policy_is_enabled() -> bool; + fn irk_rotation_is_enabled() -> bool; } } -- GitLab