diff options
author | Brad Ebinger <breadley@google.com> | 2021-02-26 20:54:10 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-02-26 20:54:10 +0000 |
commit | f92683b7d10916ef7c699a23a712ef51fcc87d3b (patch) | |
tree | b7be2f5e6498ca21eb27153d315a4f1bd540887e | |
parent | ac811c4025c0d33283d7cbc29bc4ccaf1c3552c8 (diff) | |
parent | 44d6bdc3326dce80294ede5eda3f4cb305c55ad0 (diff) |
Merge "[RCS UCE] Define a new ACCESS_RCS_USER_CAPABILITY_EXCHANGE permission for associated RCS UCE APIs" am: 44d6bdc332
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1555055
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I62579792679ebb079d9fd2f97720a66d1d5aec3f
-rw-r--r-- | core/api/system-current.txt | 5 | ||||
-rw-r--r-- | core/res/AndroidManifest.xml | 13 | ||||
-rw-r--r-- | data/etc/privapp-permissions-platform.xml | 1 | ||||
-rw-r--r-- | packages/Shell/AndroidManifest.xml | 3 | ||||
-rw-r--r-- | telephony/java/android/telephony/ims/RcsUceAdapter.java | 10 |
5 files changed, 25 insertions, 7 deletions
diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 8d43299d3382..df348be89a92 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -14,6 +14,7 @@ package android { field public static final String ACCESS_MTP = "android.permission.ACCESS_MTP"; field public static final String ACCESS_NETWORK_CONDITIONS = "android.permission.ACCESS_NETWORK_CONDITIONS"; field public static final String ACCESS_NOTIFICATIONS = "android.permission.ACCESS_NOTIFICATIONS"; + field public static final String ACCESS_RCS_USER_CAPABILITY_EXCHANGE = "android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE"; field public static final String ACCESS_SHARED_LIBRARIES = "android.permission.ACCESS_SHARED_LIBRARIES"; field public static final String ACCESS_SHORTCUTS = "android.permission.ACCESS_SHORTCUTS"; field public static final String ACCESS_SURFACE_FLINGER = "android.permission.ACCESS_SURFACE_FLINGER"; @@ -12009,8 +12010,8 @@ package android.telephony.ims { method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void addOnPublishStateChangedListener(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RcsUceAdapter.OnPublishStateChangedListener) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getUcePublishState() throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void removeOnPublishStateChangedListener(@NonNull android.telephony.ims.RcsUceAdapter.OnPublishStateChangedListener) throws android.telephony.ims.ImsException; - method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void requestAvailability(@NonNull android.net.Uri, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RcsUceAdapter.CapabilitiesCallback) throws android.telephony.ims.ImsException; - method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void requestCapabilities(@NonNull java.util.List<android.net.Uri>, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RcsUceAdapter.CapabilitiesCallback) throws android.telephony.ims.ImsException; + method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE, android.Manifest.permission.READ_CONTACTS}) public void requestAvailability(@NonNull android.net.Uri, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RcsUceAdapter.CapabilitiesCallback) throws android.telephony.ims.ImsException; + method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE, android.Manifest.permission.READ_CONTACTS}) public void requestCapabilities(@NonNull java.util.List<android.net.Uri>, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RcsUceAdapter.CapabilitiesCallback) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUceSettingEnabled(boolean) throws android.telephony.ims.ImsException; field public static final int CAPABILITY_TYPE_PRESENCE_UCE = 2; // 0x2 field public static final int CAPABILITY_UPDATE_TRIGGER_ETAG_EXPIRED = 1; // 0x1 diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 91c1548bfcc2..8ed7a5c2611e 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1271,11 +1271,13 @@ android:protectionLevel="dangerous|instant" /> <!-- ====================================================================== --> - <!-- Permissions for accessing the UCE Service --> + <!-- Permissions for accessing the vendor UCE Service --> <!-- ====================================================================== --> <!-- @hide Allows an application to Access UCE-Presence. <p>Protection level: signature|privileged + @deprecated Framework should no longer use this permission to access the vendor UCE service + using AIDL, it is instead implemented by RcsCapabilityExchangeImplBase --> <permission android:name="android.permission.ACCESS_UCE_PRESENCE_SERVICE" android:permissionGroup="android.permission-group.PHONE" @@ -1283,6 +1285,8 @@ <!-- @hide Allows an application to Access UCE-OPTIONS. <p>Protection level: signature|privileged + @deprecated Framework should no longer use this permission to access the vendor UCE service + using AIDL, it is instead implemented by RcsCapabilityExchangeImplBase --> <permission android:name="android.permission.ACCESS_UCE_OPTIONS_SERVICE" android:permissionGroup="android.permission-group.PHONE" @@ -2367,6 +2371,13 @@ <permission android:name="android.permission.BIND_GBA_SERVICE" android:protectionLevel="signature" /> + <!-- Required for an Application to access APIs related to RCS User Capability Exchange. + <p>Protection level: signature|privileged + @SystemApi + @hide --> + <permission android:name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" + android:protectionLevel="signature|privileged" /> + <!-- ================================== --> <!-- Permissions for sdcard interaction --> <!-- ================================== --> diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml index 692a90e329e8..e939b65f3b8a 100644 --- a/data/etc/privapp-permissions-platform.xml +++ b/data/etc/privapp-permissions-platform.xml @@ -307,6 +307,7 @@ applications that come with the platform <!-- Needed for test only --> <permission name="android.permission.MODIFY_DAY_NIGHT_MODE"/> <permission name="android.permission.ACCESS_LOWPAN_STATE"/> + <permission name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE"/> <permission name="android.permission.BACKUP"/> <permission name="android.permission.BATTERY_STATS"/> <permission name="android.permission.BIND_APPWIDGET"/> diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml index c3fc019c6787..cd7449ad0d8e 100644 --- a/packages/Shell/AndroidManifest.xml +++ b/packages/Shell/AndroidManifest.xml @@ -336,6 +336,9 @@ <!-- Permissions required for CTS test - AdbManagerTest --> <uses-permission android:name="android.permission.MANAGE_DEBUGGING" /> + <!-- Permission required for CTS test - CtsTelephonyTestCases --> + <uses-permission android:name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" /> + <!-- Permission needed for CTS test - DisplayTest --> <uses-permission android:name="android.permission.OVERRIDE_DISPLAY_MODE_REQUESTS" /> diff --git a/telephony/java/android/telephony/ims/RcsUceAdapter.java b/telephony/java/android/telephony/ims/RcsUceAdapter.java index 070fd799d6cc..ce8bd7d8c28e 100644 --- a/telephony/java/android/telephony/ims/RcsUceAdapter.java +++ b/telephony/java/android/telephony/ims/RcsUceAdapter.java @@ -467,7 +467,7 @@ public class RcsUceAdapter { * poll on the network unless there are contacts being queried with stale information. * <p> * Be sure to check the availability of this feature using - * {@link ImsRcsManager#isAvailable(int)} and ensuring + * {@link ImsRcsManager#isAvailable(int, int)} and ensuring * {@link RcsFeature.RcsImsCapabilities#CAPABILITY_TYPE_OPTIONS_UCE} or * {@link RcsFeature.RcsImsCapabilities#CAPABILITY_TYPE_PRESENCE_UCE} is enabled or else * this operation will fail with {@link #ERROR_NOT_AVAILABLE} or {@link #ERROR_NOT_ENABLED}. @@ -484,7 +484,8 @@ public class RcsUceAdapter { * @hide */ @SystemApi - @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) + @RequiresPermission(allOf = {Manifest.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE, + Manifest.permission.READ_CONTACTS}) public void requestCapabilities(@NonNull List<Uri> contactNumbers, @NonNull @CallbackExecutor Executor executor, @NonNull CapabilitiesCallback c) throws ImsException { @@ -557,7 +558,7 @@ public class RcsUceAdapter { * * <p> * Be sure to check the availability of this feature using - * {@link ImsRcsManager#isAvailable(int)} and ensuring + * {@link ImsRcsManager#isAvailable(int, int)} and ensuring * {@link RcsFeature.RcsImsCapabilities#CAPABILITY_TYPE_OPTIONS_UCE} or * {@link RcsFeature.RcsImsCapabilities#CAPABILITY_TYPE_PRESENCE_UCE} is * enabled or else this operation will fail with @@ -571,7 +572,8 @@ public class RcsUceAdapter { * @hide */ @SystemApi - @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) + @RequiresPermission(allOf = {Manifest.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE, + Manifest.permission.READ_CONTACTS}) public void requestAvailability(@NonNull Uri contactNumber, @NonNull @CallbackExecutor Executor executor, @NonNull CapabilitiesCallback c) throws ImsException { |