summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-02-01 03:48:32 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-02-01 03:48:32 +0000
commit8a72d5a9d53274333cccd50bb87ae9691a219c27 (patch)
tree86efe3c1cd037ab2c478e60d25d63c4c067d2407 /core/java
parent56a967e1156df88b06438047eb7235d7e0036aac (diff)
parentcd7695dda0576a954745a59d3feb579bcb644795 (diff)
Merge "Add a new "appPredictor" protection flag."
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/ApplicationPackageManager.java9
-rw-r--r--core/java/android/content/pm/IPackageManager.aidl2
-rw-r--r--core/java/android/content/pm/PackageManager.java10
-rw-r--r--core/java/android/content/pm/PackageManagerInternal.java2
-rw-r--r--core/java/android/content/pm/PermissionInfo.java15
5 files changed, 38 insertions, 0 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index a93742273306..98032dc3d297 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -3017,6 +3017,15 @@ public class ApplicationPackageManager extends PackageManager {
}
@Override
+ public String getAppPredictionServicePackageName() {
+ try {
+ return mPM.getAppPredictionServicePackageName();
+ } catch (RemoteException e) {
+ throw e.rethrowAsRuntimeException();
+ }
+ }
+
+ @Override
public String getContentCaptureServicePackageName() {
try {
return mPM.getContentCaptureServicePackageName();
diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl
index a6a6f013839a..36ffb0ea94d0 100644
--- a/core/java/android/content/pm/IPackageManager.aidl
+++ b/core/java/android/content/pm/IPackageManager.aidl
@@ -686,6 +686,8 @@ interface IPackageManager {
String getWellbeingPackageName();
+ String getAppPredictionServicePackageName();
+
String getContentCaptureServicePackageName();
String getIncidentReportApproverPackageName();
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 84f87ff2fa40..e2907e219b1f 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -6725,6 +6725,16 @@ public abstract class PackageManager {
}
/**
+ * @return the system defined app predictor package name, or null if there's none.
+ *
+ * @hide
+ */
+ public String getAppPredictionServicePackageName() {
+ throw new UnsupportedOperationException(
+ "getAppPredictionServicePackageName not implemented in subclass");
+ }
+
+ /**
* @return the system defined content capture service package name, or null if there's none.
*
* @hide
diff --git a/core/java/android/content/pm/PackageManagerInternal.java b/core/java/android/content/pm/PackageManagerInternal.java
index 738730ec3f51..4a2dbe76f9c3 100644
--- a/core/java/android/content/pm/PackageManagerInternal.java
+++ b/core/java/android/content/pm/PackageManagerInternal.java
@@ -57,6 +57,7 @@ public abstract class PackageManagerInternal {
public static final int PACKAGE_DOCUMENTER = 8;
public static final int PACKAGE_CONFIGURATOR = 9;
public static final int PACKAGE_INCIDENT_REPORT_APPROVER = 10;
+ public static final int PACKAGE_APP_PREDICTOR = 11;
@IntDef(value = {
PACKAGE_SYSTEM,
PACKAGE_SETUP_WIZARD,
@@ -69,6 +70,7 @@ public abstract class PackageManagerInternal {
PACKAGE_DOCUMENTER,
PACKAGE_CONFIGURATOR,
PACKAGE_INCIDENT_REPORT_APPROVER,
+ PACKAGE_APP_PREDICTOR,
})
@Retention(RetentionPolicy.SOURCE)
public @interface KnownPackage {}
diff --git a/core/java/android/content/pm/PermissionInfo.java b/core/java/android/content/pm/PermissionInfo.java
index e7769849ccc3..fb63e0dad9b6 100644
--- a/core/java/android/content/pm/PermissionInfo.java
+++ b/core/java/android/content/pm/PermissionInfo.java
@@ -224,6 +224,17 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable {
@TestApi
public static final int PROTECTION_FLAG_INCIDENT_REPORT_APPROVER = 0x100000;
+ /**
+ * Additional flag for {@link #protectionLevel}, corresponding
+ * to the <code>app_predictor</code> value of
+ * {@link android.R.attr#protectionLevel}.
+ *
+ * @hide
+ */
+ @SystemApi
+ @TestApi
+ public static final int PROTECTION_FLAG_APP_PREDICTOR = 0x200000;
+
/** @hide */
@IntDef(flag = true, prefix = { "PROTECTION_FLAG_" }, value = {
PROTECTION_FLAG_PRIVILEGED,
@@ -244,6 +255,7 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable {
PROTECTION_FLAG_DOCUMENTER,
PROTECTION_FLAG_CONFIGURATOR,
PROTECTION_FLAG_INCIDENT_REPORT_APPROVER,
+ PROTECTION_FLAG_APP_PREDICTOR,
})
@Retention(RetentionPolicy.SOURCE)
public @interface ProtectionFlags {}
@@ -445,6 +457,9 @@ public class PermissionInfo extends PackageItemInfo implements Parcelable {
if ((level & PermissionInfo.PROTECTION_FLAG_INCIDENT_REPORT_APPROVER) != 0) {
protLevel += "|incidentReportApprover";
}
+ if ((level & PermissionInfo.PROTECTION_FLAG_APP_PREDICTOR) != 0) {
+ protLevel += "|appPredictor";
+ }
return protLevel;
}