Merge "Autofill binding permission fixes." into oc-dev

This commit is contained in:
TreeHugger Robot
2017-04-27 04:56:39 +00:00
committed by Android (Google) Code Review
7 changed files with 18 additions and 18 deletions

View File

@@ -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";

View File

@@ -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";

View File

@@ -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";

View File

@@ -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)

View File

@@ -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.

View File

@@ -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,

View File

@@ -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);
}
}