diff options
author | Matthew Xie <mattx@google.com> | 2012-10-04 12:25:28 -0700 |
---|---|---|
committer | Matthew Xie <mattx@google.com> | 2012-10-04 18:35:42 -0700 |
commit | fca9d63635d9603c318a089397b23c17682453e3 (patch) | |
tree | e3794cfee6c568be0c83157ab35fde4e71f94cee | |
parent | 30ed33b141dd1add916466c193b6735cd0bf8315 (diff) | |
download | frameworks_base-fca9d63635d9603c318a089397b23c17682453e3.zip frameworks_base-fca9d63635d9603c318a089397b23c17682453e3.tar.gz frameworks_base-fca9d63635d9603c318a089397b23c17682453e3.tar.bz2 |
Add multi user support for bluetooth
Create a BLUETOOTH_STACK permission to share between all users of
Bluetooth apk. Bluetooth Manager binds to apk of current user
bug 6925422
Change-Id: I2df5546e977c2d77bc66d97d12479d933826922a
-rw-r--r-- | core/res/AndroidManifest.xml | 7 | ||||
-rw-r--r-- | data/etc/platform.xml | 5 | ||||
-rwxr-xr-x | services/java/com/android/server/BluetoothManagerService.java | 5 |
3 files changed, 15 insertions, 2 deletions
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index c794c51..aa67ec2 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -620,6 +620,13 @@ android:description="@string/permdesc_bluetoothAdmin" android:label="@string/permlab_bluetoothAdmin" /> + <!-- Allows bluetooth stack to access files + @hide This should only be used by Bluetooth apk. + --> + <permission android:name="android.permission.BLUETOOTH_STACK" + android:permissionGroup="android.permission-group.SYSTEM_TOOLS" + android:protectionLevel="signature" /> + <!-- Allows applications to perform I/O operations over NFC --> <permission android:name="android.permission.NFC" android:permissionGroup="android.permission-group.NETWORK" diff --git a/data/etc/platform.xml b/data/etc/platform.xml index a19b9b4..13d1791 100644 --- a/data/etc/platform.xml +++ b/data/etc/platform.xml @@ -42,6 +42,10 @@ <group gid="net_bt" /> </permission> + <permission name="android.permission.BLUETOOTH_STACK" > + <group gid="net_bt_stack" /> + </permission> + <permission name="android.permission.NET_TUNNELING" > <group gid="vpn" /> </permission> @@ -176,6 +180,7 @@ <assign-permission name="android.permission.INTERACT_ACROSS_USERS" uid="shell" /> <assign-permission name="android.permission.INTERACT_ACROSS_USERS_FULL" uid="shell" /> <assign-permission name="android.permission.MANAGE_USERS" uid="shell" /> + <assign-permission name="android.permission.BLUETOOTH_STACK" uid="shell" /> <assign-permission name="android.permission.MODIFY_AUDIO_SETTINGS" uid="media" /> <assign-permission name="android.permission.ACCESS_DRM" uid="media" /> diff --git a/services/java/com/android/server/BluetoothManagerService.java b/services/java/com/android/server/BluetoothManagerService.java index ce75e35..e7cd279 100755 --- a/services/java/com/android/server/BluetoothManagerService.java +++ b/services/java/com/android/server/BluetoothManagerService.java @@ -481,7 +481,7 @@ class BluetoothManagerService extends IBluetoothManager.Stub { mHandler.sendMessageDelayed(timeoutMsg,TIMEOUT_BIND_MS); Intent i = new Intent(IBluetooth.class.getName()); if (!mContext.bindService(i, mConnection, - Context.BIND_AUTO_CREATE)) { + Context.BIND_AUTO_CREATE, UserHandle.USER_CURRENT)) { mHandler.removeMessages(MESSAGE_TIMEOUT_BIND); Log.e(TAG, "fail to bind to: " + IBluetooth.class.getName()); } @@ -717,7 +717,8 @@ class BluetoothManagerService extends IBluetoothManager.Stub { mHandler.sendMessageDelayed(timeoutMsg,TIMEOUT_BIND_MS); mConnection.setGetNameAddressOnly(false); Intent i = new Intent(IBluetooth.class.getName()); - if (!mContext.bindService(i, mConnection,Context.BIND_AUTO_CREATE)) { + if (!mContext.bindService(i, mConnection, Context.BIND_AUTO_CREATE, + UserHandle.USER_CURRENT)) { mHandler.removeMessages(MESSAGE_TIMEOUT_BIND); Log.e(TAG, "Fail to bind to: " + IBluetooth.class.getName()); } |