Add ability to run Bluetooth application in a different process if needed.

Change-Id: I5fa328f2b8fd78986b9a1958e5899feca254f316
diff --git a/Android.mk b/Android.mk
index 0a81629..0efe204 100644
--- a/Android.mk
+++ b/Android.mk
@@ -9,6 +9,6 @@
 
 LOCAL_JAVA_LIBRARIES := javax.obex
 
-LOCAL_CERTIFICATE := shared
+LOCAL_CERTIFICATE := platform
 
 include $(BUILD_PACKAGE)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f54bfea..c78e971 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.bluetooth" >
+  package="com.android.bluetooth"
+  android:sharedUserId="@string/sharedUserId">
 
     <original-package android:name="com.android.bluetooth" />
 
@@ -19,18 +20,24 @@
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
-    <application android:icon="@drawable/bt_share"
+    <application
+        android:icon="@drawable/bt_share"
         android:label="@string/app_name">
         <uses-library android:name="javax.obex" />
         <provider android:name=".opp.BluetoothOppProvider"
-            android:authorities="com.android.bluetooth.opp">
+            android:authorities="com.android.bluetooth.opp"
+            android:process="@string/process">
             <path-permission
                     android:path="/btopp"
                     android:permission="android.permission.ACCESS_BLUETOOTH_SHARE" />
         </provider>
-        <service android:name=".opp.BluetoothOppService"
+        <service
+            android:process="@string/process"
+            android:name=".opp.BluetoothOppService"
             android:permission="android.permission.ACCESS_BLUETOOTH_SHARE" />
-        <receiver android:name=".opp.BluetoothOppReceiver">
+        <receiver
+            android:process="@string/process"
+            android:name=".opp.BluetoothOppReceiver">
             <intent-filter>
                 <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
                 <action android:name="android.intent.action.BOOT_COMPLETED" />
@@ -107,9 +114,13 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-        <service android:name=".pbap.BluetoothPbapService" >
+        <service
+            android:process="@string/process"
+            android:name=".pbap.BluetoothPbapService" >
         </service>
-        <receiver android:name=".pbap.BluetoothPbapReceiver">
+        <receiver
+            android:process="@string/process"
+            android:name=".pbap.BluetoothPbapReceiver">
             <intent-filter>
                 <action android:name="android.bluetooth.adapter.action.STATE_CHANGED"/>
             </intent-filter>
diff --git a/AndroidManifest_test.xml b/AndroidManifest_test.xml
index b6d6568..593682c 100644
--- a/AndroidManifest_test.xml
+++ b/AndroidManifest_test.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.android.bluetooth" >
+  package="com.android.bluetooth"
+  android:sharedUserId="@string/sharedUserId">
     <!-- Allows access to the Bluetooth Share Manager -->
     <permission android:name="android.permission.ACCESS_BLUETOOTH_SHARE"
         android:label="@string/permlab_bluetoothShareManager"
@@ -16,7 +17,8 @@
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
-    <application android:icon="@drawable/bt_share"
+    <application
+        android:icon="@drawable/bt_share"
         android:label="@string/app_name">
         <uses-library android:name="javax.obex" />
         <activity android:name=".opp.TestActivity" android:label="@string/app_name">
@@ -26,14 +28,17 @@
             </intent-filter>
         </activity>
         <provider android:name=".opp.BluetoothOppProvider"
-            android:authorities="com.android.bluetooth.opp">
+            android:authorities="com.android.bluetooth.opp"
+            android:process="@string/process">
             <path-permission
                     android:path="/btopp"
                     android:permission="android.permission.ACCESS_BLUETOOTH_SHARE" />
         </provider>
-        <service android:name=".opp.BluetoothOppService"
+        <service android:process="@string/process"
+            android:name=".opp.BluetoothOppService"
             android:permission="android.permission.ACCESS_BLUETOOTH_SHARE" />
-        <receiver android:name=".opp.BluetoothOppReceiver">
+        <receiver android:process="@string/process"
+              android:name=".opp.BluetoothOppReceiver">
             <intent-filter>
                 <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
                 <action android:name="android.intent.action.BOOT_COMPLETED" />
@@ -85,10 +90,12 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-        <service android:name=".pbap.BluetoothPbapService" >
+        <service android:process="@string/process"
+              android:name=".pbap.BluetoothPbapService" >
             <action android:name="android.bluetooth.IBluetoothPbap"/>
         </service>
-        <receiver android:name=".pbap.BluetoothPbapReceiver">
+        <receiver android:process="@string/process"
+              android:name=".pbap.BluetoothPbapReceiver">
             <intent-filter>
                 <action android:name="android.bluetooth.adapter.action.STATE_CHANGED"/>
             </intent-filter>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 23c6093..7335e4c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -191,4 +191,10 @@
      <!-- Do not translate. file name used for sharing. -->
     <string name="bluetooth_share_file_name" translate="false">bluetooth_content_share</string>
 
+    <!-- Used to run Bluetooth.apk in another process if needed -->
+    <!-- Do not translate. android:sharedUserId string of this application. -->
+    <string name="sharedUserId" translate="false"><xliff:g id="x"></xliff:g></string>
+    <!-- Do not translate. android:process of this application. -->
+    <string name="process" translate="false"><xliff:g id="x"></xliff:g></string>
+
 </resources>