Merge "Autofill binding permission fixes." into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
d915c42150
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -2485,13 +2485,11 @@
|
||||
to ensure that only the system can bind to it.
|
||||
<p>Protection level: signature
|
||||
-->
|
||||
<permission android:name="android.permission.BIND_AUTOFILL"
|
||||
<permission android:name="android.permission.BIND_AUTOFILL_SERVICE"
|
||||
android:protectionLevel="signature" />
|
||||
|
||||
<!-- TODO(b/35956626): temporary until clients change to BIND_AUTOFILL
|
||||
<p>Protection level: signature
|
||||
-->
|
||||
<permission android:name="android.permission.BIND_AUTO_FILL"
|
||||
<!-- @hide TODO(b/37563972): remove once clients use BIND_AUTOFILL_SERVICE -->
|
||||
<permission android:name="android.permission.BIND_AUTOFILL"
|
||||
android:protectionLevel="signature" />
|
||||
|
||||
<!-- Must be required by hotword enrollment application,
|
||||
|
||||
@@ -201,8 +201,8 @@ final class AutofillManagerServiceImpl {
|
||||
}
|
||||
sendStateToClients(false);
|
||||
}
|
||||
} catch (PackageManager.NameNotFoundException e) {
|
||||
Slog.e(TAG, "Bad autofill service name " + componentName + ": " + e);
|
||||
} catch (Exception e) {
|
||||
Slog.e(TAG, "Bad AutofillService '" + componentName + "': " + e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user