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

Commit 7d7554dd authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Check whether local device is an ATV device to determine whether to...

Merge "Check whether local device is an ATV device to determine whether to show the consent dialog for BLE pairing in JUSTWORKS and ENCRYPTION_ONLY mode" into rvc-dev
parents 8c9b18a3 a3f7aed9
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -132,6 +132,18 @@ bool is_niap_mode(void);
 ******************************************************************************/
int get_niap_config_compare_result(void);

/*******************************************************************************
 *
 * Function         is_atv_device
 *
 * Description      Returns true if the local device is an Android TV
 *                  device, false if it is not.
 *
 * Returns          bool
 *
 ******************************************************************************/
bool is_atv_device(void);

/*******************************************************************************
 *
 * Function         btif_get_adapter_properties
+5 −1
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@ bool restricted_mode = false;
bool niap_mode = false;
const int CONFIG_COMPARE_ALL_PASS = 0b11;
int niap_config_compare_result = CONFIG_COMPARE_ALL_PASS;
bool is_local_device_atv = false;

/*******************************************************************************
 *  Externs
@@ -140,7 +141,7 @@ static bool is_profile(const char* p1, const char* p2) {
 ****************************************************************************/

static int init(bt_callbacks_t* callbacks, bool start_restricted,
                bool is_niap_mode, int config_compare_result) {
                bool is_niap_mode, int config_compare_result, bool is_atv) {
  LOG_INFO(LOG_TAG,
           "%s: start restricted = %d ; niap = %d, config compare result = %d",
           __func__, start_restricted, is_niap_mode, config_compare_result);
@@ -161,6 +162,7 @@ static int init(bt_callbacks_t* callbacks, bool start_restricted,
  restricted_mode = start_restricted;
  niap_mode = is_niap_mode;
  niap_config_compare_result = config_compare_result;
  is_local_device_atv = is_atv;

  stack_manager_get_interface()->init_stack();
  btif_debug_init();
@@ -191,6 +193,8 @@ int get_niap_config_compare_result() {
  return niap_mode ? niap_config_compare_result : CONFIG_COMPARE_ALL_PASS;
}

bool is_atv_device() { return is_local_device_atv; }

static int get_adapter_properties(void) {
  /* sanity check */
  if (!interface_ready()) return BT_STATUS_NOT_READY;
+2 −1
Original line number Diff line number Diff line
@@ -473,9 +473,10 @@ typedef struct {
   * The |is_niap_mode| flag inits the adapter in NIAP mode.
   * The |config_compare_result| flag show the config checksum check result if
   * is in NIAP mode.
   * The |is_atv| flag indicates whether the local device is an Android TV
   */
  int (*init)(bt_callbacks_t* callbacks, bool guest_mode, bool is_niap_mode,
              int config_compare_result);
              int config_compare_result, bool is_atv);

  /** Enable Bluetooth. */
  int (*enable)();
+1 −1
Original line number Diff line number Diff line
@@ -254,7 +254,7 @@ class BluetoothInterfaceImpl : public BluetoothInterface {

    // Initialize the Bluetooth interface. Set up the adapter (Bluetooth DM) API
    // callbacks.
    status = hal_iface_->init(&bt_callbacks, false, false, 0);
    status = hal_iface_->init(&bt_callbacks, false, false, 0, false);
    if (status != BT_STATUS_SUCCESS) {
      LOG(ERROR) << "Failed to initialize Bluetooth stack";
      return false;
+7 −4
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <cutils/log.h>
#include <log/log.h>
#include <string.h>
#include "btif_api.h"
#include "btif_common.h"
#include "btif_storage.h"
#include "device/include/interop.h"
@@ -1301,8 +1302,9 @@ void smp_decide_association_model(tSMP_CB* p_cb, tSMP_INT_DATA* p_data) {
        smp_int_data.status = SMP_PAIR_AUTH_FAIL;
        int_evt = SMP_AUTH_CMPL_EVT;
      } else {
        if (p_cb->local_io_capability != SMP_IO_CAP_NONE &&
            p_cb->local_io_capability != SMP_IO_CAP_IN) {
        if (!is_atv_device() &&
            (p_cb->local_io_capability == SMP_IO_CAP_IO ||
             p_cb->local_io_capability == SMP_IO_CAP_KBDISP)) {
          /* display consent dialog if this device has a display */
          SMP_TRACE_DEBUG("ENCRYPTION_ONLY showing Consent Dialog");
          p_cb->cb_evt = SMP_CONSENT_REQ_EVT;
@@ -1656,8 +1658,9 @@ void smp_process_peer_nonce(tSMP_CB* p_cb, tSMP_INT_DATA* p_data) {
      }

      if (p_cb->selected_association_model == SMP_MODEL_SEC_CONN_JUSTWORKS) {
        if (p_cb->local_io_capability != SMP_IO_CAP_NONE &&
            p_cb->local_io_capability != SMP_IO_CAP_IN) {
        if (!is_atv_device() &&
            (p_cb->local_io_capability == SMP_IO_CAP_IO ||
             p_cb->local_io_capability == SMP_IO_CAP_KBDISP)) {
          /* display consent dialog */
          SMP_TRACE_DEBUG("JUST WORKS showing Consent Dialog");
          p_cb->cb_evt = SMP_CONSENT_REQ_EVT;
Loading