From 979b81ac33c2ba678414c5350c19fc78dbac724a Mon Sep 17 00:00:00 2001 From: Anthony Hugh Date: Tue, 29 Sep 2015 16:50:35 -0700 Subject: [PATCH] Give Android Wear system apps default permission This change grants Android Wear system components default permission. I have also added a new Intent category to help identify the main Home handler on Wear. BUG: 23419042 Change-Id: Ie669a9908bd3b03498f75c5ca22c0fddf52a5203 --- core/java/android/content/Intent.java | 7 +++++++ .../pm/DefaultPermissionGrantPolicy.java | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index 6bbee56b3cb06..71735917cc2f0 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -3156,6 +3156,13 @@ public class Intent implements Parcelable, Cloneable { */ @SdkConstant(SdkConstantType.INTENT_CATEGORY) public static final String CATEGORY_HOME = "android.intent.category.HOME"; + /** + * This is the home activity that is displayed when the device is finished setting up and ready + * for use. + * @hide + */ + @SdkConstant(SdkConstantType.INTENT_CATEGORY) + public static final String CATEGORY_HOME_MAIN = "android.intent.category.HOME_MAIN"; /** * This is the setup wizard activity, that is the first activity that is displayed * when the user sets up the device for the first time. diff --git a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java index b5046056e913e..8176aff89fc00 100644 --- a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java @@ -571,6 +571,24 @@ final class DefaultPermissionGrantPolicy { grantRuntimePermissionsLPw(musicPackage, STORAGE_PERMISSIONS, userId); } + // Android Wear Home + if (mService.hasSystemFeature(PackageManager.FEATURE_WATCH)) { + Intent homeIntent = new Intent(Intent.ACTION_MAIN); + homeIntent.addCategory(Intent.CATEGORY_HOME_MAIN); + + PackageParser.Package wearHomePackage = getDefaultSystemHandlerActivityPackageLPr( + homeIntent, userId); + + if (wearHomePackage != null + && doesPackageSupportRuntimePermissions(wearHomePackage)) { + grantRuntimePermissionsLPw(wearHomePackage, CONTACTS_PERMISSIONS, false, + userId); + grantRuntimePermissionsLPw(wearHomePackage, PHONE_PERMISSIONS, true, userId); + grantRuntimePermissionsLPw(wearHomePackage, MICROPHONE_PERMISSIONS, false, + userId); + } + } + mService.mSettings.onDefaultRuntimePermissionsGrantedLPr(userId); } }