diff --git a/api/current.txt b/api/current.txt index 37855269a5778..66cf2c61b1e43 100644 --- a/api/current.txt +++ b/api/current.txt @@ -20,8 +20,7 @@ package android { field public static final java.lang.String BATTERY_STATS = "android.permission.BATTERY_STATS"; field public static final java.lang.String BIND_ACCESSIBILITY_SERVICE = "android.permission.BIND_ACCESSIBILITY_SERVICE"; field public static final java.lang.String BIND_APPWIDGET = "android.permission.BIND_APPWIDGET"; - field public static final java.lang.String BIND_AUTOFILL = "android.permission.BIND_AUTOFILL"; - field public static final java.lang.String BIND_AUTO_FILL = "android.permission.BIND_AUTO_FILL"; + field public static final java.lang.String BIND_AUTOFILL_SERVICE = "android.permission.BIND_AUTOFILL_SERVICE"; field public static final deprecated java.lang.String BIND_CARRIER_MESSAGING_SERVICE = "android.permission.BIND_CARRIER_MESSAGING_SERVICE"; field public static final java.lang.String BIND_CARRIER_SERVICES = "android.permission.BIND_CARRIER_SERVICES"; field public static final java.lang.String BIND_CHOOSER_TARGET_SERVICE = "android.permission.BIND_CHOOSER_TARGET_SERVICE"; diff --git a/api/system-current.txt b/api/system-current.txt index ee1dad333b774..7699cfcc298ae 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -30,8 +30,7 @@ package android { field public static final java.lang.String BATTERY_STATS = "android.permission.BATTERY_STATS"; field public static final java.lang.String BIND_ACCESSIBILITY_SERVICE = "android.permission.BIND_ACCESSIBILITY_SERVICE"; field public static final java.lang.String BIND_APPWIDGET = "android.permission.BIND_APPWIDGET"; - field public static final java.lang.String BIND_AUTOFILL = "android.permission.BIND_AUTOFILL"; - field public static final java.lang.String BIND_AUTO_FILL = "android.permission.BIND_AUTO_FILL"; + field public static final java.lang.String BIND_AUTOFILL_SERVICE = "android.permission.BIND_AUTOFILL_SERVICE"; field public static final deprecated java.lang.String BIND_CARRIER_MESSAGING_SERVICE = "android.permission.BIND_CARRIER_MESSAGING_SERVICE"; field public static final java.lang.String BIND_CARRIER_SERVICES = "android.permission.BIND_CARRIER_SERVICES"; field public static final java.lang.String BIND_CHOOSER_TARGET_SERVICE = "android.permission.BIND_CHOOSER_TARGET_SERVICE"; diff --git a/api/test-current.txt b/api/test-current.txt index 3d5114dffeedc..c8829b01013c1 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -20,8 +20,7 @@ package android { field public static final java.lang.String BATTERY_STATS = "android.permission.BATTERY_STATS"; field public static final java.lang.String BIND_ACCESSIBILITY_SERVICE = "android.permission.BIND_ACCESSIBILITY_SERVICE"; field public static final java.lang.String BIND_APPWIDGET = "android.permission.BIND_APPWIDGET"; - field public static final java.lang.String BIND_AUTOFILL = "android.permission.BIND_AUTOFILL"; - field public static final java.lang.String BIND_AUTO_FILL = "android.permission.BIND_AUTO_FILL"; + field public static final java.lang.String BIND_AUTOFILL_SERVICE = "android.permission.BIND_AUTOFILL_SERVICE"; field public static final deprecated java.lang.String BIND_CARRIER_MESSAGING_SERVICE = "android.permission.BIND_CARRIER_MESSAGING_SERVICE"; field public static final java.lang.String BIND_CARRIER_SERVICES = "android.permission.BIND_CARRIER_SERVICES"; field public static final java.lang.String BIND_CHOOSER_TARGET_SERVICE = "android.permission.BIND_CHOOSER_TARGET_SERVICE"; diff --git a/core/java/android/service/autofill/AutofillService.java b/core/java/android/service/autofill/AutofillService.java index 32b078f67e95b..416455d596be3 100644 --- a/core/java/android/service/autofill/AutofillService.java +++ b/core/java/android/service/autofill/AutofillService.java @@ -48,7 +48,7 @@ public abstract class AutofillService extends Service { /** * The {@link Intent} that must be declared as handled by the service. * To be supported, the service must also require the - * {@link android.Manifest.permission#BIND_AUTOFILL} permission so + * {@link android.Manifest.permission#BIND_AUTOFILL_SERVICE} permission so * that other applications can not abuse it. */ @SdkConstant(SdkConstant.SdkConstantType.SERVICE_ACTION) diff --git a/core/java/android/service/autofill/AutofillServiceInfo.java b/core/java/android/service/autofill/AutofillServiceInfo.java index 0f4824e47fa92..e64eb0d629922 100644 --- a/core/java/android/service/autofill/AutofillServiceInfo.java +++ b/core/java/android/service/autofill/AutofillServiceInfo.java @@ -83,14 +83,19 @@ public final class AutofillServiceInfo { } /** - * Gets the meta-data as a TypedArray, or null if not provided, or throws if invalid. + * Gets the meta-data as a {@link TypedArray}, or {@code null} if not provided, + * or throws if invalid. */ @Nullable private static TypedArray getMetaDataArray(PackageManager pm, ServiceInfo si) { // Check for permissions. - if (!Manifest.permission.BIND_AUTOFILL.equals(si.permission)) { - Log.e(TAG, "Service does not require permission " + Manifest.permission.BIND_AUTOFILL); - return null; + // TODO(b/37563972): remove support to BIND_AUTOFILL once clients use BIND_AUTOFILL_SERVICE + if (!Manifest.permission.BIND_AUTOFILL_SERVICE.equals(si.permission) + && !Manifest.permission.BIND_AUTOFILL.equals(si.permission)) { + Log.w(TAG, "AutofillService from '" + si.packageName + "' does not require permission " + + Manifest.permission.BIND_AUTOFILL_SERVICE); + throw new SecurityException("Service does not require permission " + + Manifest.permission.BIND_AUTOFILL_SERVICE); } // Get the AutoFill metadata, if declared. diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 55cea703c14d8..3f6826d77dce0 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -2486,13 +2486,11 @@ to ensure that only the system can bind to it.

Protection level: signature --> - - - +