History log of /frameworks/base/core/java/android/bluetooth/BluetoothPan.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0146463d70355592da85c3605aaaef4cf0b7335e 17-Aug-2017 Jack He <siyuanh@google.com> Bluetooth: Thread-safe binder invocation

* Binder object may become null between null check and actual invocation
if using a instance private variable assignable by service connection
callbacks
* The solution to this problem without locking is to assign existing
binder variable to a local final variable before the null check
* Any further invocation to a disconnected binder object will result in
RemoteException that is caught by the try-catch block
* Read and write to volatile variable is always atomic and hence thread-safe
* Removed unnecessary synchronization in BluetoothAdapter constructor
* Private mConnection objects should be final
* Simplfied several return statements where booleans can be returned
directly
* Removed unnecessary catches for NPE since there won't be any

Bug: 64724692
Test: make, pair and use devices, no functional change
Change-Id: Ifc9d6337c0d451a01484b61243230725d5314f8e
(cherry picked from commit 16eeac356c68f3674677169b618774718ec982b2)
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
0a17db1cc5942ea000ca87bb72853de57a15ec64 04-Nov-2016 Jeff Sharkey <jsharkey@android.com> Detect non-oneway calls leaving system_server.

To protect system stability, any Binder calls leaving the
system_server must carefully be performed using FLAG_ONEWAY (or
the 'oneway' verb in AIDL) which prevents the call from blocking
indefinitely on the remote process.

In this CL, the system_server uses the new Binder.setWarnOnBlocking()
method to enable detection by default for all remote Binder
interfaces. It can also use Binder.allowBlocking() to allow
blocking calls on certain remote interfaces that have been
determined to be safe.

This CL adds the 'oneway' verb to several interfaces and methods
where it should have been added, and marks a handful of system
ContentProviders as being safe to call into. Also, we assume that
any services obtained from ServiceManager are part of the core
OS, and are okay to make blocking calls to.

Test: builds, boots, runs with minimal logs triggered
Bug: 32715088
Change-Id: Ide476e120cb40436a94b7faf7615c943d691f4c0
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
1f8b844870eb9acb334b541b0b41de37e000d2f0 12-Dec-2013 Nitin Shivpure <nshivpur@codeaurora.org> Bluetooth: Fix to avoid framework reboot during monkey testing

When running monkeyrunner, sometimes the framework is disconnected due
to an unhandled Java exception while binding the PAN service (when it
is unsuccessful). Handing the Java exception while binding PAN service
solves this issue.

Change-Id: Idea710593a3f9496305f636042605303e73e7749
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
58fbffc36f71fbccbf510bfd17797760dc738133 15-Feb-2015 Hemant Gupta <hemantg@codeaurora.org> Bluetooth: Check for mPanService before changing tethering state

Checking for mPanService before changing OR checking tethering state,
otherwise it will lead to application crash while checking isTetheringOn
OR changing tethering state.

Change-Id: I00844c03cdb8616118c1d50d7d31c75e51f0ef9b
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
466ce96da8ca7ea8c97e716b02a7d55007179aa1 20-Mar-2014 Dianne Hackborn <hackbod@google.com> Get rid of not specifying a user errors in bluetooth.

W/ContextImpl( 1772): Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1559 android.content.ContextWrapper.bindService:513 android.bluetooth.BluetoothInputDevice.doBind:262 android.bluetooth.BluetoothInputDevice.<init>:255 android.bluetooth.BluetoothAdapter.getProfileProxy:1365
W/ContextImpl( 1772): Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1559 android.content.ContextWrapper.bindService:513 android.bluetooth.BluetoothPan.doBind:148 android.bluetooth.BluetoothPan.<init>:140 android.bluetooth.BluetoothAdapter.getProfileProxy:1368
W/ContextImpl( 1772): Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1559 android.content.ContextWrapper.bindService:513 android.bluetooth.BluetoothMap.doBind:108 android.bluetooth.BluetoothMap.<init>:101 android.bluetooth.BluetoothAdapter.getProfileProxy:1374
W/ContextImpl( 1772): Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1559 android.content.ContextWrapper.bindService:513 android.bluetooth.BluetoothPbap.doBind:163 android.bluetooth.BluetoothPbap.<init>:156 com.android.settings.bluetooth.PbapServerProfile.<init>:68

Change-Id: I0a1e24ee71aef7d796fcee5692b9d19462a93637
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
6090995951c6e2e4dcf38102f01793f8a94166e1 19-Nov-2013 John Spurlock <jspurlock@google.com> Remove unused imports from frameworks/base.

Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
9b6939939901cb82bc6fca93aad3810a4936dfc6 10-Oct-2013 Matthew Xie <mattx@google.com> Check callback null condition for register/unregsiter state change callback

Fix BluetoothPan closing sequence for unregsiter state change callback
bug 11160007

Change-Id: I405ec91a938289fe9541de2ebd9abc1fb938f44a
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
221ea892dcc661bd07d6f36ff012edca2c48aed4 05-Aug-2013 Dianne Hackborn <hackbod@google.com> Start restricting service calls with implicit intents.

The bindService() and startService() calls have always had
undefined behavior when used with an implicit Intent and there
are multiple matching services. Because of this, it is not
safe for applications to use such Intents when interacting with
services, yet the platform would merrily go about doing... something.

In KLP I want to cause this case to be invalid, resulting in
an exception thrown back to the app. Unfortunately there are
lots of (scary) things relying on this behavior, so we can't
immediately turn it into an exception, even one qualified by the
caller's target SDK version.

In this change, we start loggin a WTF when such a call happens,
and clean up some stuff in Bluetooth that was doing this behavior.

Change-Id: I62e25d07890588d2362104e20b054aebb6c0e007
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
563e414784eb81e4ea4051667d5c8855b17f7534 10-Oct-2012 Matthew Xie <mattx@google.com> Reduce android.bluetooth package debug messages

bug 7174712

Change-Id: I8d3fdc8edbe42068b5a550660d7b24854c3c4af4
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
903ac6f399dcd4f574bf388daa7b5f5907d448d3 24-Apr-2012 fredc <fredc@broadcom.com> Fixed issue with Settings app crashing after during on/off and unpair.

Fixed issue with BluetoothAdapter.getRemoteDevice() returning null.

Change-Id: Ie86813532530a6b57bde1c430c7b4875ecc7354c
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
0f42037eb7b5118015c2caca635538324ccf0ccf 12-Apr-2012 fredc <fredc@broadcom.com> Non persistent adapter service

Change-Id: Ib13d5c77416e58161df0e04d7a15ec0dddbde8b5

Conflicts:

core/java/android/bluetooth/BluetoothInputDevice.java

Conflicts:

core/java/com/android/internal/app/ShutdownThread.java
services/java/com/android/server/SystemServer.java

Conflicts:

services/java/com/android/server/SystemServer.java
services/java/com/android/server/pm/ShutdownThread.java
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
e4caddbb7a3b39fd6a1ccf107c7dbf09bc8978e8 26-Jan-2012 Jaikumar Ganesh <jaikumar@google.com> Changes for new Bluetooth APIs.

Changes to Bluetooth Adapter, Device and IBluetooth interfaces
for new Bluetooth APIs. Delete AudioGateway.

Change-Id: Ib51b31187eafde261441b9311b5e7e13c8bff82f
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
9bb275197df8eb999eab4cdd0a2aff83c2bb2ef6 28-Nov-2011 Jaikumar Ganesh <jaikumar@google.com> Cleanup references when turning BT off.

Bug: 5572649
Change-Id: I62f9e0620832b69995d5c6e1c24634c9a3895a4b
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
f8789167e903b637b1dbe8f710e7c66c4cfd74fd 26-May-2011 Jaikumar Ganesh <jaikumar@google.com> Refactor Bluetooth Profile.

Move connect / disconnect / set and get priority
functions down the interface as they are not generic enough
for all profiles.

Change-Id: I2656e1bdbc8046c53bb0dfbd9172f5f10b57aa7d
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
74ef1199459629c5dd9f272f8cd706d82cdfeeb1 23-Feb-2011 Jaikumar Ganesh <jaikumar@google.com> Make BluetoothPan inherit from BluetoothProfile.

Change-Id: Ibd3e24e391be93ebe2cf975bd075efb68e10c1ff
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
fbe807d064ada99211b102914df514aa562256f8 19-Jan-2011 Jaikumar Ganesh <jaikumar@google.com> Make connection / disconnect failure more robust.

Add error codes so that the states can be tracked better.

Change-Id: Ic07a5d34589134b68dedeb4803ccb523aa01b567
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
5200c8ab721b56025340306bdecca651e6bf2f12 14-Dec-2010 Jaikumar Ganesh <jaikumar@google.com> Add EXTRA_LOCAL_ROLE to Pan State change intent.

This will help apps distinguish between reverse and normal tethering.

Change-Id: I5327ad75dc2cbf478e4f7c2cd6ef1dbe8fba9e93
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
5a1e4cf83f5be1b5d79e2643fa791aa269b6a4bc 19-Oct-2010 Jaikumar Ganesh <jaikumar@google.com> Update BT APIs return type from Set to List.

Change-Id: Ia27220dd26cde13007f6938c830517ee7f6968ce
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
b70765cc27a174d1d4a0bab7062733ebd3eae354 02-Sep-2010 Jaikumar Ganesh <jaikumar@google.com> Decouple Tethering UI with registering of SDP records.

This can lead to usability issues, since the SDP record
will get registered later on.

Change-Id: Ifda78a3831572f1b9955bf06da9a8b0e949942aa
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java
6fdd0c6274c81b337ad35b70480f881daf7354c3 11-Aug-2010 Danica Chang <danicachang@google.com> bluetooth tethering

Change-Id: Id6d5fb1922facc7013abc29214d3e1141995b767
/frameworks/base/core/java/android/bluetooth/BluetoothPan.java