Loading android/app/src/com/android/bluetooth/btservice/Config.java +1 −1 Original line number Diff line number Diff line Loading @@ -95,7 +95,7 @@ public class Config { new ProfileConfig(AvrcpControllerService.class, AvrcpControllerService.isEnabled(), (1 << BluetoothProfile.AVRCP_CONTROLLER)), new ProfileConfig(BassClientService.class, BassClientService.isEnabled(), (1 >> BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT)), (1 << BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT)), new ProfileConfig(BatteryService.class, BatteryService.isEnabled(), (1 << BluetoothProfile.BATTERY)), new ProfileConfig(CsipSetCoordinatorService.class, Loading android/app/src/com/android/bluetooth/pbap/BluetoothPbapObexServer.java +19 −8 Original line number Diff line number Diff line Loading @@ -101,6 +101,17 @@ public class BluetoothPbapObexServer extends ServerRequestHandler { "/telecom/och", "/telecom/mch", "/telecom/cch", }; // Currently not support SIM card @SuppressWarnings("unused") private static final String[] LEGAL_PATH_WITH_SIM = { "/telecom", "/telecom/pb", "/telecom/fav", "/telecom/ich", "/telecom/och", "/telecom/mch", "/telecom/cch", "/SIM1", "/SIM1/telecom", "/SIM1/telecom/ich", Loading @@ -108,7 +119,6 @@ public class BluetoothPbapObexServer extends ServerRequestHandler { "/SIM1/telecom/mch", "/SIM1/telecom/cch", "/SIM1/telecom/pb" }; // SIM card Loading Loading @@ -463,23 +473,21 @@ public class BluetoothPbapObexServer extends ServerRequestHandler { appParamValue.needTag = ContentType.PHONEBOOK; } else if (mCurrentPath.equals(FAV_PATH)) { appParamValue.needTag = ContentType.FAVORITES; } else if (mCurrentPath.equals(ICH_PATH) || mCurrentPath.equals(SIM_ICH_PATH)) { } else if (mCurrentPath.equals(ICH_PATH)) { appParamValue.needTag = ContentType.INCOMING_CALL_HISTORY; } else if (mCurrentPath.equals(OCH_PATH)|| mCurrentPath.equals(SIM_OCH_PATH)) { } else if (mCurrentPath.equals(OCH_PATH)) { appParamValue.needTag = ContentType.OUTGOING_CALL_HISTORY; } else if (mCurrentPath.equals(MCH_PATH)|| mCurrentPath.equals(SIM_MCH_PATH)) { } else if (mCurrentPath.equals(MCH_PATH)) { appParamValue.needTag = ContentType.MISSED_CALL_HISTORY; mNeedNewMissedCallsNum = true; } else if (mCurrentPath.equals(CCH_PATH)|| mCurrentPath.equals(SIM_CCH_PATH)) { } else if (mCurrentPath.equals(CCH_PATH)) { appParamValue.needTag = ContentType.COMBINED_CALL_HISTORY; } else if (mCurrentPath.equals(TELECOM_PATH)|| mCurrentPath.equals(SIM_PATH)) { } else if (mCurrentPath.equals(TELECOM_PATH)) { /* PBAP 1.1.1 change */ if (!validName && type.equals(TYPE_LISTING)) { Log.e(TAG, "invalid vcard listing request in default folder"); return ResponseCodes.OBEX_HTTP_NOT_FOUND; } } else if (mCurrentPath.equals(SIM_PB_PATH)) { appParamValue.needTag = ContentType.SIM_PHONEBOOK; } else { Log.w(TAG, "mCurrentpath is not valid path!!!"); return ResponseCodes.OBEX_HTTP_NOT_ACCEPTABLE; Loading @@ -495,6 +503,9 @@ public class BluetoothPbapObexServer extends ServerRequestHandler { TYPE_PB, TYPE_LISTING, mCurrentPath)) { appParamValue.needTag = ContentType.SIM_PHONEBOOK; if (D) Log.d(TAG, "download SIM phonebook request"); // Not support SIM card currently Log.w(TAG, "Not support access SIM card info!"); return ResponseCodes.OBEX_HTTP_NOT_ACCEPTABLE; } else if (isNameMatchTarget(name, PB)) { appParamValue.needTag = ContentType.PHONEBOOK; if (D) { Loading android/app/src/com/android/bluetooth/pbap/BluetoothPbapService.java +1 −1 Original line number Diff line number Diff line Loading @@ -153,7 +153,7 @@ public class BluetoothPbapService extends ProfileService implements IObexConnect private static final int SDP_PBAP_SERVER_VERSION = 0x0102; // PBAP v1.2.3, Sec. 7.1.2: local phonebook and favorites private static final int SDP_PBAP_SUPPORTED_REPOSITORIES = 0x000B; private static final int SDP_PBAP_SUPPORTED_REPOSITORIES = 0x0009; private static final int SDP_PBAP_SUPPORTED_FEATURES = 0x021F; /* PBAP will use Bluetooth notification ID from 1000000 (included) to 2000000 (excluded). Loading system/build/Android.bp +10 −14 Original line number Diff line number Diff line Loading @@ -192,24 +192,24 @@ fluoride_defaults { ], static_libs: [ "android.hardware.bluetooth.a2dp@1.0", "libflatbuffers-cpp", "libbt-sbc-decoder", "libbt-sbc-encoder", "libFraunhoferAAC", "libg722codec", "liblc3", "libudrv-uipc", "libprotobuf-cpp-lite", "libbluetooth_gd", "libbluetooth-dumpsys", "libbluetooth_gd", "libbluetooth_rust_interop", "libbluetooth-types", "libbt_callbacks_cxx", "libbt-platform-protos-lite", "libbt-protos-lite", "libbt_callbacks_cxx", "libbt-sbc-decoder", "libbt-sbc-encoder", "libbt_shim_bridge", "libbt_shim_ffi", "libflatbuffers-cpp", "libFraunhoferAAC", "libg722codec", "liblc3", "libprotobuf-cpp-lite", "libstatslog_bt", "libudrv-uipc", ], target: { android: { Loading @@ -233,10 +233,6 @@ fluoride_defaults { static_libs: [ "android.system.suspend.control-V1-ndk", ], required: [ "libldacBT_enc", "libldacBT_abr", ], }, linux_glibc: { shared_libs: [ Loading system/gd/hci/acl_manager/le_acl_connection.cc +15 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,11 @@ class LeAclConnectionTracker : public LeConnectionManagementCallbacks { connection_handle_, static_cast<uint8_t>(hci_status), lmp_version, manufacturer_name, sub_version); SAVE_OR_CALL(OnReadRemoteVersionInformationComplete, hci_status, lmp_version, manufacturer_name, sub_version); } void OnLeReadRemoteFeaturesComplete(hci::ErrorCode hci_status, uint64_t features) override { SAVE_OR_CALL(OnLeReadRemoteFeaturesComplete, hci_status, features); } void OnPhyUpdate(hci::ErrorCode hci_status, uint8_t tx_phy, uint8_t rx_phy) override { SAVE_OR_CALL(OnPhyUpdate, hci_status, tx_phy, rx_phy); } Loading Loading @@ -171,6 +176,16 @@ bool LeAclConnection::ReadRemoteVersionInformation() { return true; } bool LeAclConnection::LeReadRemoteFeatures() { pimpl_->tracker.le_acl_connection_interface_->EnqueueCommand( LeReadRemoteFeaturesBuilder::Create(handle_), pimpl_->tracker.client_handler_->BindOnce([](CommandStatusView status) { ASSERT(status.IsValid()); ASSERT(status.GetCommandOpCode() == OpCode::LE_READ_REMOTE_FEATURES); })); return true; } bool LeAclConnection::check_connection_parameters( uint16_t conn_interval_min, uint16_t conn_interval_max, uint16_t conn_latency, uint16_t supervision_timeout) { if (conn_interval_min < 0x0006 || conn_interval_min > 0x0C80 || conn_interval_max < 0x0006 || Loading Loading
android/app/src/com/android/bluetooth/btservice/Config.java +1 −1 Original line number Diff line number Diff line Loading @@ -95,7 +95,7 @@ public class Config { new ProfileConfig(AvrcpControllerService.class, AvrcpControllerService.isEnabled(), (1 << BluetoothProfile.AVRCP_CONTROLLER)), new ProfileConfig(BassClientService.class, BassClientService.isEnabled(), (1 >> BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT)), (1 << BluetoothProfile.LE_AUDIO_BROADCAST_ASSISTANT)), new ProfileConfig(BatteryService.class, BatteryService.isEnabled(), (1 << BluetoothProfile.BATTERY)), new ProfileConfig(CsipSetCoordinatorService.class, Loading
android/app/src/com/android/bluetooth/pbap/BluetoothPbapObexServer.java +19 −8 Original line number Diff line number Diff line Loading @@ -101,6 +101,17 @@ public class BluetoothPbapObexServer extends ServerRequestHandler { "/telecom/och", "/telecom/mch", "/telecom/cch", }; // Currently not support SIM card @SuppressWarnings("unused") private static final String[] LEGAL_PATH_WITH_SIM = { "/telecom", "/telecom/pb", "/telecom/fav", "/telecom/ich", "/telecom/och", "/telecom/mch", "/telecom/cch", "/SIM1", "/SIM1/telecom", "/SIM1/telecom/ich", Loading @@ -108,7 +119,6 @@ public class BluetoothPbapObexServer extends ServerRequestHandler { "/SIM1/telecom/mch", "/SIM1/telecom/cch", "/SIM1/telecom/pb" }; // SIM card Loading Loading @@ -463,23 +473,21 @@ public class BluetoothPbapObexServer extends ServerRequestHandler { appParamValue.needTag = ContentType.PHONEBOOK; } else if (mCurrentPath.equals(FAV_PATH)) { appParamValue.needTag = ContentType.FAVORITES; } else if (mCurrentPath.equals(ICH_PATH) || mCurrentPath.equals(SIM_ICH_PATH)) { } else if (mCurrentPath.equals(ICH_PATH)) { appParamValue.needTag = ContentType.INCOMING_CALL_HISTORY; } else if (mCurrentPath.equals(OCH_PATH)|| mCurrentPath.equals(SIM_OCH_PATH)) { } else if (mCurrentPath.equals(OCH_PATH)) { appParamValue.needTag = ContentType.OUTGOING_CALL_HISTORY; } else if (mCurrentPath.equals(MCH_PATH)|| mCurrentPath.equals(SIM_MCH_PATH)) { } else if (mCurrentPath.equals(MCH_PATH)) { appParamValue.needTag = ContentType.MISSED_CALL_HISTORY; mNeedNewMissedCallsNum = true; } else if (mCurrentPath.equals(CCH_PATH)|| mCurrentPath.equals(SIM_CCH_PATH)) { } else if (mCurrentPath.equals(CCH_PATH)) { appParamValue.needTag = ContentType.COMBINED_CALL_HISTORY; } else if (mCurrentPath.equals(TELECOM_PATH)|| mCurrentPath.equals(SIM_PATH)) { } else if (mCurrentPath.equals(TELECOM_PATH)) { /* PBAP 1.1.1 change */ if (!validName && type.equals(TYPE_LISTING)) { Log.e(TAG, "invalid vcard listing request in default folder"); return ResponseCodes.OBEX_HTTP_NOT_FOUND; } } else if (mCurrentPath.equals(SIM_PB_PATH)) { appParamValue.needTag = ContentType.SIM_PHONEBOOK; } else { Log.w(TAG, "mCurrentpath is not valid path!!!"); return ResponseCodes.OBEX_HTTP_NOT_ACCEPTABLE; Loading @@ -495,6 +503,9 @@ public class BluetoothPbapObexServer extends ServerRequestHandler { TYPE_PB, TYPE_LISTING, mCurrentPath)) { appParamValue.needTag = ContentType.SIM_PHONEBOOK; if (D) Log.d(TAG, "download SIM phonebook request"); // Not support SIM card currently Log.w(TAG, "Not support access SIM card info!"); return ResponseCodes.OBEX_HTTP_NOT_ACCEPTABLE; } else if (isNameMatchTarget(name, PB)) { appParamValue.needTag = ContentType.PHONEBOOK; if (D) { Loading
android/app/src/com/android/bluetooth/pbap/BluetoothPbapService.java +1 −1 Original line number Diff line number Diff line Loading @@ -153,7 +153,7 @@ public class BluetoothPbapService extends ProfileService implements IObexConnect private static final int SDP_PBAP_SERVER_VERSION = 0x0102; // PBAP v1.2.3, Sec. 7.1.2: local phonebook and favorites private static final int SDP_PBAP_SUPPORTED_REPOSITORIES = 0x000B; private static final int SDP_PBAP_SUPPORTED_REPOSITORIES = 0x0009; private static final int SDP_PBAP_SUPPORTED_FEATURES = 0x021F; /* PBAP will use Bluetooth notification ID from 1000000 (included) to 2000000 (excluded). Loading
system/build/Android.bp +10 −14 Original line number Diff line number Diff line Loading @@ -192,24 +192,24 @@ fluoride_defaults { ], static_libs: [ "android.hardware.bluetooth.a2dp@1.0", "libflatbuffers-cpp", "libbt-sbc-decoder", "libbt-sbc-encoder", "libFraunhoferAAC", "libg722codec", "liblc3", "libudrv-uipc", "libprotobuf-cpp-lite", "libbluetooth_gd", "libbluetooth-dumpsys", "libbluetooth_gd", "libbluetooth_rust_interop", "libbluetooth-types", "libbt_callbacks_cxx", "libbt-platform-protos-lite", "libbt-protos-lite", "libbt_callbacks_cxx", "libbt-sbc-decoder", "libbt-sbc-encoder", "libbt_shim_bridge", "libbt_shim_ffi", "libflatbuffers-cpp", "libFraunhoferAAC", "libg722codec", "liblc3", "libprotobuf-cpp-lite", "libstatslog_bt", "libudrv-uipc", ], target: { android: { Loading @@ -233,10 +233,6 @@ fluoride_defaults { static_libs: [ "android.system.suspend.control-V1-ndk", ], required: [ "libldacBT_enc", "libldacBT_abr", ], }, linux_glibc: { shared_libs: [ Loading
system/gd/hci/acl_manager/le_acl_connection.cc +15 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,11 @@ class LeAclConnectionTracker : public LeConnectionManagementCallbacks { connection_handle_, static_cast<uint8_t>(hci_status), lmp_version, manufacturer_name, sub_version); SAVE_OR_CALL(OnReadRemoteVersionInformationComplete, hci_status, lmp_version, manufacturer_name, sub_version); } void OnLeReadRemoteFeaturesComplete(hci::ErrorCode hci_status, uint64_t features) override { SAVE_OR_CALL(OnLeReadRemoteFeaturesComplete, hci_status, features); } void OnPhyUpdate(hci::ErrorCode hci_status, uint8_t tx_phy, uint8_t rx_phy) override { SAVE_OR_CALL(OnPhyUpdate, hci_status, tx_phy, rx_phy); } Loading Loading @@ -171,6 +176,16 @@ bool LeAclConnection::ReadRemoteVersionInformation() { return true; } bool LeAclConnection::LeReadRemoteFeatures() { pimpl_->tracker.le_acl_connection_interface_->EnqueueCommand( LeReadRemoteFeaturesBuilder::Create(handle_), pimpl_->tracker.client_handler_->BindOnce([](CommandStatusView status) { ASSERT(status.IsValid()); ASSERT(status.GetCommandOpCode() == OpCode::LE_READ_REMOTE_FEATURES); })); return true; } bool LeAclConnection::check_connection_parameters( uint16_t conn_interval_min, uint16_t conn_interval_max, uint16_t conn_latency, uint16_t supervision_timeout) { if (conn_interval_min < 0x0006 || conn_interval_min > 0x0C80 || conn_interval_max < 0x0006 || Loading