From 22f3baa869a134b9a9ffffcb77a8d7c5bc8a0fb1 Mon Sep 17 00:00:00 2001 From: Nikita Dubrovsky Date: Fri, 22 Apr 2022 10:14:56 -0700 Subject: [PATCH] Deprecate and no-op test API getContentCaptureServicePackageName After the fix for b/222231605, permission pre-grants are no longer tied to the package that provides ContentCaptureService, so this test API is no longer needed. However the API is still referenced from GTS tests (though it won't be invoked on T and above), so we need to keep the method in the SDK to compile the test code. Bug: 229662628 Test: Presubmit Change-Id: Iddc201ba8afde816446377e509a3f2de35215f61 --- core/api/test-current.txt | 2 +- core/java/android/app/ApplicationPackageManager.java | 9 --------- core/java/android/content/pm/IPackageManager.aidl | 2 -- core/java/android/content/pm/PackageManager.java | 12 +++++++++--- .../com/android/server/pm/IPackageManagerBase.java | 8 -------- 5 files changed, 10 insertions(+), 23 deletions(-) diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 631f0fbd0b0cf..b4c3ba1953eab 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -823,7 +823,7 @@ package android.content.pm { } public abstract class PackageManager { - method @Nullable public String getContentCaptureServicePackageName(); + method @Deprecated @Nullable public final String getContentCaptureServicePackageName(); method @Nullable public String getDefaultTextClassifierPackageName(); method @RequiresPermission(android.Manifest.permission.INJECT_EVENTS) public android.os.IBinder getHoldLockToken(); method public abstract int getInstallReason(@NonNull String, @NonNull android.os.UserHandle); diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index fea30278aabe3..569f4dd8328c3 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -3656,15 +3656,6 @@ public class ApplicationPackageManager extends PackageManager { } } - @Override - public String getContentCaptureServicePackageName() { - try { - return mPM.getContentCaptureServicePackageName(); - } catch (RemoteException e) { - throw e.rethrowAsRuntimeException(); - } - } - @Override public boolean isPackageStateProtected(String packageName, int userId) { try { diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl index 2ef1c78474f23..35afe9f727dbf 100644 --- a/core/java/android/content/pm/IPackageManager.aidl +++ b/core/java/android/content/pm/IPackageManager.aidl @@ -715,8 +715,6 @@ interface IPackageManager { String getIncidentReportApproverPackageName(); - String getContentCaptureServicePackageName(); - boolean isPackageStateProtected(String packageName, int userId); void sendDeviceCustomizationReadyBroadcast(); diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 53c23f3fffa76..ccc244190876d 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -10083,15 +10083,21 @@ public abstract class PackageManager { } /** - * @return the system defined content capture package name, or null if there's none. + * @deprecated This function throws an {@link UnsupportedOperationException}. For pre-granting + * permissions, instead of looking up the package that provides {@code ContentCaptureService}, + * use roles. * * @hide */ + // This function cannot yet be removed because it is referenced from GTS tests. The tests have + // been updated to not rely on it when running on Android T and above, but in order to compile + // the tests we must keep this method. + @Deprecated @TestApi @Nullable - public String getContentCaptureServicePackageName() { + public final String getContentCaptureServicePackageName() { throw new UnsupportedOperationException( - "getContentCaptureServicePackageName not implemented in subclass"); + "getContentCaptureServicePackageName is deprecated"); } /** diff --git a/services/core/java/com/android/server/pm/IPackageManagerBase.java b/services/core/java/com/android/server/pm/IPackageManagerBase.java index f4285eb0d9d90..c70e6ad6e09df 100644 --- a/services/core/java/com/android/server/pm/IPackageManagerBase.java +++ b/services/core/java/com/android/server/pm/IPackageManagerBase.java @@ -387,14 +387,6 @@ public abstract class IPackageManagerBase extends IPackageManager.Stub { return snapshot().getComponentEnabledSetting(component, Binder.getCallingUid(), userId); } - @Override - @Deprecated - public final String getContentCaptureServicePackageName() { - return mService.ensureSystemPackageName(snapshot(), - mService.getPackageFromComponentString( - R.string.config_defaultContentCaptureService)); - } - @Nullable @Override @Deprecated