Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

base: Add QTI bluetooth stack support #1

Merged
merged 58 commits into from
Jan 23, 2022
Merged

base: Add QTI bluetooth stack support #1

merged 58 commits into from
Jan 23, 2022

Conversation

anruichan
Copy link

No description provided.

Mingbo Zhang and others added 30 commits January 21, 2022 20:34
BluetoothQualityReport class contains all the values
from firmware BQR event.

Change-Id: I92c8a34695cedfea2a8b94f67e702860653866d7
CRs-Fixed: 2472638
Adding entry for aptX Adaptive into Framework for
indexing and UI handling.

 Conflicts:
	core/java/android/bluetooth/BluetoothCodecConfig.java
	packages/SettingsLib/res/values-en-rGB/arrays.xml
	packages/SettingsLib/res/values/arrays.xml

CRs-Fixed: 2280216
Change-Id: I94627eb3188b6c69d48f982d4e6c41f78e5e81fa
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
 Conflicts:
	core/java/android/bluetooth/BluetoothCodecConfig.java
	packages/SettingsLib/res/values-en-rGB/arrays.xml
	packages/SettingsLib/res/values/arrays.xml

Change-Id: I26ac7cc34875d01a987f00b34e43cc7fca98ef3a
CRs-Fixed: 2318635
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
- Add new SDK APIs to know the device is a TWS
  device and to get the peer TWS device address

 Conflicts:
	core/java/android/bluetooth/BluetoothDevice.java

CRs-Fixed: 2225904
Change-Id: Ia7e3103d603659d524fcb3f42e0b026e316914c5
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
[wight554: updated code from LA.QSSI.11.0.r1-05600-qssi.0]

 Conflicts:
	services/core/java/com/android/server/audio/AudioDeviceBroker.java
	services/core/java/com/android/server/audio/AudioService.java

DennySPB: update for S

Change-Id: If9902d3d458b6c5ccd474ffe69133d81beb49ca9
CRs-Fixed: 2475616
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
Signed-off-by: DennySPb <dennyspb@gmail.com>
1> On unpair initiation to primary, Initiate Unpair
   for peer secondary TWS device as well.
2> On pairing to primary earbud, Initiate connection to second
   earbud.

[wight554: updated code from LA.QSSI.11.0.r1-05600-qssi.0]

 Conflicts:
	packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java

CRs-fixed: 2230362
Change-Id: I0d0e7c3bc66d4ff24a2b767996bc1367022901d6
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
- Renamed the property persist.vendor.bt.connect.peer_earbud to
  persist.vendor.btstack.connect.peer_earbud to support new P
  Treble rules.

 Conflicts:
	packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java

CRs-Fixed: 2277397
Change-Id: I45dc740a45195154e2fe2a88a0384181fd0c7907
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
Change ensures outgoing connection for second earbud on
pairing to disabled by default. if needed can be enabled
by setting property.

 Conflicts:
	packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java

CRs-fixed: 2300140
Change-Id: Id00fdb30825aeee1e6adff55c767e94df96d52b5
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
Disbaling outgoing connection to 2nd earbud and removed
vendor specific property.

 Conflicts:
	packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java

Change-Id: I912c3acd84f449b6f967d6ef2c7beaebca4ef05c
CRs-fixed: 2326015
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
When Pairing initiated from DUT, bondingIinitiatedLocally
flag sets from adapterservice. If user disable profile
options from UI and tries to connect from remote,DUT
rejects the incoming connection, when dut rejects
connection some remotes may initiates pairing again.

Profile options should be in disable state after incoming
pairing successful as user disabled profile options, but
profile options getting enabled as bondingInitiatedLocally
not reset.

Hence Reset bondingInitiatedLocally flag after connection

 Conflicts:
	packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java

Change-Id: I612b0718fcc4f6aaeded112fee4cb51ad7f25772
CRs-Fixed: 2457374
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
The change adds broadcast intent for updating call info from telecomm
service to bluetooth application.

CRs-Fixed: 2260445
Change-Id: I18d3a22d25099906d86efb0412f309696c02e321
Reference changes to use the Battery status Intent and display
in Settings UI

 Conflicts:
	packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java

CRs-fixed: 2467643

Change-Id: Ibc81611529df1d1c8ff0453768eb494a8957b9c2
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
Add support for Transport discovery AD type in
BLE advertisement data.

CRs-Fixed: 2299975
Change-Id: I76ef89856746ea5d88af77142a38398b33393449
Add support to CALLBACK_TYPE_SENSOR_ROUTING when start scanning

Change-Id: I958938b2e428b2ba68297d22eb829b4f94deab30
CRs-Fixed: 2095995
Add scan filter support for Transport Discovery
data.

CRs-Fixed: 2418407
Change-Id: I84b791d7424620bc7db5b19e8f6a14938b1526af
This change contains
- API's to do filtered scan based on Group AD Type.
- Extract Group identifier data from ScanRecord.

CRs-Fixed: 2826578
Change-Id: I75982a1acf982c03234d9e1084aee287d3d3623d
Obex : Reduce MTU Size.

Use case:
1. Start Low Latency and High Tx Power adv from the DUT
2. From a 2nd DUT scan, connect and pair with the LEP DUT
3. Connect the DUT to a SCO HS
4. Connect the DUT to 2 BR/EDR HID devices
5. Start MO call from the DUT going over SCO
6. Start sending a file from Phone over OPP to the DUT

Result:
After a while the OPP link disconnects
reason: "Connection Timeout"

Fix:
Reduce Obex MTU to 8k if reduce MTU is enable
Change-Id: I21cb27ff98e07cd923d6e28a67b3b52835b68956

OBEX: Dynamic VERBOSE level logging for OBEX.
- Support runtime VERBOSE level logging control
  for  OBEX lib.
- Added extra informative logs useful to
  debug issues from Obex layer.

Change-Id: If94c88b438b3c283aca0ba4cc46f42bb1d8c37eb

OBEX : Handle Negative index Exception

Use case:
1. Send file to remote device.
2. Wait for accepting the file transfer on remote device.
   Use Specific remote device(that sends some
      optional headers).

Failure:
No file acceptance popup seen on remote device.

Root cause:
Failure in com.android.bluetooth.

FATAL EXCEPTION: BtOpp ClientThread
Process: com.android.bluetooth, PID: 22527
  java.lang.NegativeArraySizeException: -3
  at javax.obex.ObexHelper.updateHeaderSet(ObexHelper.java:216)
  at javax.obex.ClientSession.sendRequest(ClientSession.java:568)
  at javax.obex.ClientSession.connect(ClientSession.java:148)
  at com.android.bluetooth.opp.BluetoothOppObexClientSession$ClientThread.
  connect(BluetoothOppObexClientSession.java:317)
  at com.android.bluetooth.opp.BluetoothOppObexClientSession$ClientThread.
  run(BluetoothOppObexClientSession.java:231)
  am_craash( 1402): [22527,0,com.android.bluetooth,818462277,java.lang.
  NegativeArraySizeException,-3,ObexHelper.java,216]

Fix:
Add length check before allocate memory and break loop if length is less than
expected header length as per OBEX Specification.

CRs-Fixed: 2197150
Change-Id: I805e6b1d51f69645d5132c3c18db2e752d04b096
Issue:
Auto connection failing when onUuidChanged and onBondingStateChanged
triggered in race condition.

Steps:
1.Turn on BT
2.Scan the remote headset from DUT
3.Initiating pairing to remote device
4.unpair the remote from DUT UI

Repeat steps from 2 to 4. Some times auto connection not
getting initiated from DUT.

Root Cause:
if mProfiles accessed simultaneously from onUuidChanged and
connectAllEnabledProfiles with two different process context.
mProfiles not reflecting latest value in connectAllEnabledProfiles,
Settings not able to initiate Auto connection as mProfiles
list shown as empty.

onBondingStateChanged getting triggered multiple times from settings
with different process contexts and BondingInitiatedLocally resets in first
instance when no profiles added, its leading auto connection failure

FIX:
- mProfiles accessed inside onUuidChanged without syncronization,also
  mProfiles empty check already there in connectWithoutResettingTimer

- Hence remove redundant mProfiles empty check in onUuidChanged

- Reset BondingInitiatedLocally flag while initiating connection.

[wight554: updated code from LA.QSSI.11.0.r1-05600-qssi.0]

 Conflicts:
	packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java

Change-Id: I88aa6a6cd46d264f4dd32db71e413079bbd40779
CRs-Fixed: 2630956
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
This class got renamed upstream.

Change-Id: I7a7a52bfb33851ad2457e5a2b76babbaa0a9835c
- Add support for APTX adaptive and CELT
  formats

[wight554: updated code from LA.QSSI.11.0.r1-05600-qssi.0]

 Conflicts:
	media/java/android/media/AudioSystem.java
	services/core/java/com/android/server/audio/BtHelper.java

Change-Id: I735a297acc4d3d4c7f8d2cc9302a13ebcf4e4c3d
CRs-Fixed: 2433041
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
Signed-off-by: DennySPb <dennyspb@gmail.com>
- Add support for APTX TWSP audio format for BT.

[wight554: updated code from LA.QSSI.11.0.r1-05600-qssi.0]

 Conflicts:
	media/java/android/media/AudioSystem.java
	services/core/java/com/android/server/audio/BtHelper.java

CRs-Fixed: 2433041
Change-Id: I19e256ae981516e9054b6e6eed8372ae2929b006
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
Signed-off-by: DennySPb <dennyspb@gmail.com>
Check for TWS+ device switch in active device change. If
TWS+ device switch then remove disconnected device
and add peer pair device into connected devices list and
return.

[wight554: updated code from LA.QSSI.11.0.r1-05600-qssi.0]

CRs-fixed: 2446639
Change-Id: I97e66fba56fceb2e9b2e7c253119033bf34175bb
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
Signed-off-by: DennySPb <dennyspb@gmail.com>
- Race condition between disconnection of first earbud and
  connection of second earbud, the configuration of second
  earbud is ignored because it is considered a case of TWS
  switch.
- Since MM Audio removes the disconnected device from list
  after delay of ~600ms, this creates a window where a new
  connection goes unprocessed when it happens immediately
  after disconnection.
- This change fetches real time connection state from A2DP
  to overcome the race condition.

CRs-Fixed: 2606382

Change-Id: I2df8447acb1d8e1b843a49906f2f3e3993cce5d6
This intent will be used to broadcast IOT device details
when IOT related issue is encountered.

CRs-Fixed: 2109009
Change-Id: I5eb97e3e2835a5acf3b2edb6c3d29e9da81bdc75
 -  To avoid RemoteCallbackList object leaks in Bluetooth Manager
    Service, Added unregister API in BluetoothAdapter.java which
    internally calls unregisterAdapter of Manager Service

CRs-Fixed: 2138560
Change-Id: I58ce5f5e1b86d87e0ff602b453abb74d0b5e1982
It seems the scope of this method was accidentally changed to public.

Change-Id: I0c034e43bdd07324bf1c40995ed62ed2af440f2e
Increase array size to accomodate additional codec
in Developer Option codec list

 Conflicts:
	packages/SettingsLib/res/values/arrays.xml

CRs-Fixed: 2322634

Change-Id: I1de7d70e675bffed25b1016efbd1ea908b24d97d
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
Increase array length to accomadate TWS+ codec entry in
DevUI settings.

 Conflicts:
	packages/SettingsLib/res/values/arrays.xml

CRs-fixed: 2495783
Change-Id: I3b334f9420eff0850ead4db9d452c69ce4295c50
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
When switching from default user mode to guest mode from system settings,
Bluetooth gets turn OFF and ON. Then, try connect to peer device which was
connected previousely in the default user mode. At this point if BluetoothA2dpWrapper
has not init, then its object would be null, and accessing the APIs of BluetoothA2dpWrapper
in A2dpProfile, results in NPE. So keep a null check on object of BluetoothA2dpWrapper
class before accessing APIs using it.

[wight554: updated code from LA.QSSI.11.0.r1-05600-qssi.0]

 Conflicts:
	packages/SettingsLib/src/com/android/settingslib/bluetooth/A2dpProfile.java

CRs-Fixed: 2454049
Change-Id: Idd949bc27fec10b46a149b5db67abc6f3b5097d1
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
Signed-off-by: DennySPb <dennyspb@gmail.com>
Enable codec change request when mode changes in aptX-adaptive

CRs-Fixed: 2537521
Change-Id: I74c8446a2a163282fb8d6edc5b293410a1b5d7c5
moetayuko and others added 28 commits January 21, 2022 20:44
 Conflicts:
	packages/SettingsLib/res/values-en-rGB/arrays.xml
	packages/SettingsLib/res/values/arrays.xml

[wight554: adapted arrays for android 11]

Change-Id: I2fba6c35331175fc3432cdf1108d75f6495b4f03
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
 - include <sys/uio.h> in order to resolve use of undeclared identifier
 'writev'
  - implement abstract methods for QC value-adds on BaseWifiService
  - update files to match in specs in api/current.txt and api/system-current.txt
  - media/jni/Android.bp needed a static dependency moved to shared
  object dependency

Bug: 123699636
Change-Id: I30f97e24e83274016e720548fba412da0f35c98f
Use case:
Open any app that performs advertising.

Expected result:
BLE should Start advertisement.

Observed result :
Observed force close in BA App.

Fix:
set zero into parcel if transport
discovery data is empty.

Test: BLE Start advertisement successes after performing above use case.

CRs-Fixed: 2304532
Change-Id: Ica730f8d22367864308412621a8d87e625198bec
Keep track of active TWS+ EB device in MM Audio module
based on device connect/disconnect events as part of
Active device update. This device tracking will help us
to make decision for Audio updates regarding reconfig
should be done OR not based on EBs transition use-case.

CRs-Fixed: 2717923
Change-Id: I2df8447acb1d8e1b843a49906f2f3e3993dee5d6
Update key of bt-a2dp inside mApmConnectedDevices when the
active bt device changes.

CRs-Fixed: 2634767
Change-Id: I92fa39581a10fd8900e41139d71ca46dd2445eb6
When disconnecting BT device, BT device state machine may be
destroyed and cause query of codec failed.
This can make device disconnection failed in low layer audio
service.

CRs-Fixed: 2604724
Change-Id: I970802310eae0b5b43340aaddb312906e1a4c444
- Disconnecting and clearing Bluetooth Profiles during
  Turning Off State doesn't give chance to A2DP/AVRCP
  profiles to save and retain Audio related data like
  Volume level.
- This change ensures Audio Service only disconnect
  Bluetooth Profile on receiving Bluetooth Off state.

Change-Id: Ie99cb2b35b9ddc7e4f0d0f89407cda9641379fb8
CRs-Fixed: 2512169
Add callback onA2dpCodecConfigChanged for
intent BluetoothA2dp.ACTION_CODEC_CONFIG_CHANGED.

Change-Id: I4d19f0427c2f68dfd01a241eb631c6782d948395
CRs-Fixed: 2735935
Add APTX-Adaptive and APTX-TWS+ entires to bluetooth a2dp
codec summaries w.r.t major languages.

CRs-Fixed: 2778223
Change-Id: Ia8ce5099a4247cf2e84978e9cfb2ee18864a71d7
Add support for lc3 codec.

CRs-Fixed: 2789473
Change-Id: Ica900e6546642e8c945170645f129e3a83301ddd
- Add LC3 codec type
- Add additional sample rate and channel mode

CRs-Fixed: 2789473

Change-Id: I13d0c6944a12422c13e2069697817c0f26330179
CRs-fixed: 2814447
Change-Id: Ic77e8ddbe57e415f7fd9c11943da50e4d86230d2
 * Reqeust after QTI BT commits.

Change-Id: Id9d21697042f80cb5fcf6294e20c2be8cd529d2a
Signed-off-by: DennySPb <dennyspb@gmail.com>
This change contains below implementations
- BluetoothDeviceGroup profile proxy object implementation.
- GroupClientProfile as LocalBluetoothProfile.
- Group Callbacks to be given to registered application.

CRs-Fixed: 2826578
Change-Id: I0a8186e800e9d2701319db1adc97bdcf0441cc12
Add broadcast profile to BluetoothProfile

CRs-fixed: 2856233
Change-Id: I17a4eb21ea9cc74a28349a8e0883ed2249838f3c
This change ensures that pairing request is rejected in frameworks
itself if createBond is triggered before BLE is enabled for LE
transport or BT is enabled for BREDR transport.
Similaraly, this change will also prevent unpairing if removeBond
is triggered and BLE is not turned ON.

CRs-Fixed: 3012270
Change-Id: Ie9d776812500ce9feaad806579ce58a9373a9af5
This change contains implementation of overloaded API's
to get device details based on public address.
Note: API's are hidden and should be used only from
      settingslibs LocalBluetoothProfile.

CRs-Fixed: 2826578
Change-Id: I9b1f08f4bd5eee8fd66fc032745d3ec5b56e7c2f
This adds attribution source as a parameter to Value added APIS.

Update Bluetooth API annotations.

CRs-Fixed: 3044065
Change-Id: Icf9c0242f928ce2f26f66350ddb3937fda35220d
CRs-Fixed: 3043842

Change-Id: I70f3c109140bf9634e2d0a293a323cae3c9cd476
This change checks that AdapterService is still bound when
getState() is called. If service is not bound, state
BluetoothAdapter.STATE_OFF would be returned.

CRs-Fixed: 3054449
Change-Id: Iec8c49fd7898689ce92778eb61d3eaede7aa3c8d
Add  BC profile entry and override constructor for CachedBluetoothDevice

CRs-fixed: 2853618

Change-Id: I750139a482280ce3409989582ffad50aed20e081
Add system APIS to support Group UI
Add AUDIO MCOD related flags
Add new icon for Group supported Adv Audio device

CRs-Fixed: 2832643
Change-Id: Iab3b23115fb7b9917faed3cbb30f32538824e7db
Add system APIS to support Group UI

CRs-Fixed: 2829452
Change-Id: Id7de6e48f3c8be05be0af172055c35cab322e5fe
Define Headset state when SCO audio is disconnecting.

CRs-Fixed: 2634664
Change-Id: Ie1200d4e9ce0b38ba71bd43c76e50720cb1ddc3f
This reverts commit 6e7b6cf.

CRs-Fixed: 2914887
Change-Id: Ic1cf1a81bba8f0f54a5dc404cfe5fec0bcc850cd
To avoid any future CTS failures, need to align our QC
codec enumeration with AOSP. On top of that enumeraion
extaned to QVA codecs.

CRs-Fixed: 2708798
Change-Id: Idc8dbcdc6454586031ce7431f52a2c031cfd1871
Override the constructor to send addresstype as part
of Scan results.
These addresstype information will be sent only to previleged
applications

CRs-fixed: 2834981
Change-Id: I47acaf1fcc1cfdd35aa9fe2b913f588cfc51cc70
* Fixes a2dp offload on devices not using QTI BT stack.

Change-Id: I5044d02f8be74bbf050b16083e753bd392dac0a6
@AmeChanRain AmeChanRain merged commit 3ef919c into Project-Mushroom:snow Jan 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants