diff options
5 files changed, 26 insertions, 70 deletions
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java index d818228cb2b6..0ec509e1164e 100644 --- a/core/java/android/content/pm/ApplicationInfo.java +++ b/core/java/android/content/pm/ApplicationInfo.java @@ -27,7 +27,6 @@ import android.content.Context; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Resources; import android.graphics.drawable.Drawable; -import android.os.Build; import android.os.Environment; import android.os.Parcel; import android.os.Parcelable; @@ -1155,11 +1154,11 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { * system apps. * @hide */ - public static final int HIDDEN_API_ENFORCEMENT_NONE = 0; + public static final int HIDDEN_API_ENFORCEMENT_DISABLED = 0; /** * No API enforcement, but enable the detection logic and warnings. Observed behaviour is the - * same as {@link #HIDDEN_API_ENFORCEMENT_NONE} but you may see warnings in the log when APIs - * are accessed. + * same as {@link #HIDDEN_API_ENFORCEMENT_DISABLED} but you may see warnings in the log when + * APIs are accessed. * @hide * */ public static final int HIDDEN_API_ENFORCEMENT_JUST_WARN = 1; @@ -1167,14 +1166,10 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { * Dark grey list enforcement. Enforces the dark grey and black lists * @hide */ - public static final int HIDDEN_API_ENFORCEMENT_DARK_GREY_AND_BLACK = 2; - /** - * Blacklist enforcement only. - * @hide - */ - public static final int HIDDEN_API_ENFORCEMENT_BLACK = 3; + public static final int HIDDEN_API_ENFORCEMENT_ENABLED = 2; - private static final int HIDDEN_API_ENFORCEMENT_MAX = HIDDEN_API_ENFORCEMENT_BLACK; + private static final int HIDDEN_API_ENFORCEMENT_MIN = HIDDEN_API_ENFORCEMENT_DEFAULT; + private static final int HIDDEN_API_ENFORCEMENT_MAX = HIDDEN_API_ENFORCEMENT_ENABLED; /** * Values in this IntDef MUST be kept in sync with enum hiddenapi::EnforcementPolicy in @@ -1183,17 +1178,16 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { */ @IntDef(prefix = { "HIDDEN_API_ENFORCEMENT_" }, value = { HIDDEN_API_ENFORCEMENT_DEFAULT, - HIDDEN_API_ENFORCEMENT_NONE, + HIDDEN_API_ENFORCEMENT_DISABLED, HIDDEN_API_ENFORCEMENT_JUST_WARN, - HIDDEN_API_ENFORCEMENT_DARK_GREY_AND_BLACK, - HIDDEN_API_ENFORCEMENT_BLACK, + HIDDEN_API_ENFORCEMENT_ENABLED, }) @Retention(RetentionPolicy.SOURCE) public @interface HiddenApiEnforcementPolicy {} /** @hide */ public static boolean isValidHiddenApiEnforcementPolicy(int policy) { - return policy >= HIDDEN_API_ENFORCEMENT_DEFAULT && policy <= HIDDEN_API_ENFORCEMENT_MAX; + return policy >= HIDDEN_API_ENFORCEMENT_MIN && policy <= HIDDEN_API_ENFORCEMENT_MAX; } private int mHiddenApiPolicy = HIDDEN_API_ENFORCEMENT_DEFAULT; @@ -1733,16 +1727,12 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { */ public @HiddenApiEnforcementPolicy int getHiddenApiEnforcementPolicy() { if (isAllowedToUseHiddenApis()) { - return HIDDEN_API_ENFORCEMENT_NONE; + return HIDDEN_API_ENFORCEMENT_DISABLED; } if (mHiddenApiPolicy != HIDDEN_API_ENFORCEMENT_DEFAULT) { return mHiddenApiPolicy; } - if (targetSdkVersion < Build.VERSION_CODES.P) { - return HIDDEN_API_ENFORCEMENT_BLACK; - } else { - return HIDDEN_API_ENFORCEMENT_DARK_GREY_AND_BLACK; - } + return HIDDEN_API_ENFORCEMENT_ENABLED; } /** @@ -1761,23 +1751,15 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { * This will have no effect if this app is not subject to hidden API enforcement, i.e. if it * is on the package whitelist. * - * @param policyPreP configured policy for pre-P apps, or {@link - * #HIDDEN_API_ENFORCEMENT_DEFAULT} if nothing configured. - * @param policyP configured policy for apps targeting P or later, or {@link - * #HIDDEN_API_ENFORCEMENT_DEFAULT} if nothing configured. + * @param policy configured policy for this app, or {@link #HIDDEN_API_ENFORCEMENT_DEFAULT} + * if nothing configured. * @hide */ - public void maybeUpdateHiddenApiEnforcementPolicy( - @HiddenApiEnforcementPolicy int policyPreP, @HiddenApiEnforcementPolicy int policyP) { + public void maybeUpdateHiddenApiEnforcementPolicy(@HiddenApiEnforcementPolicy int policy) { if (isPackageWhitelistedForHiddenApis()) { return; } - if (targetSdkVersion < Build.VERSION_CODES.P) { - setHiddenApiEnforcementPolicy(policyPreP); - } else if (targetSdkVersion >= Build.VERSION_CODES.P) { - setHiddenApiEnforcementPolicy(policyP); - } - + setHiddenApiEnforcementPolicy(policy); } /** diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 916676ae4c90..258426e34a49 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -12166,27 +12166,14 @@ public final class Settings { "hidden_api_access_log_sampling_rate"; /** - * Hidden API enforcement policy for apps targeting SDK versions prior to the latest - * version. + * Hidden API enforcement policy for apps. * * Values correspond to @{@link * android.content.pm.ApplicationInfo.HiddenApiEnforcementPolicy} * * @hide */ - public static final String HIDDEN_API_POLICY_PRE_P_APPS = - "hidden_api_policy_pre_p_apps"; - - /** - * Hidden API enforcement policy for apps targeting the current SDK version. - * - * Values correspond to @{@link - * android.content.pm.ApplicationInfo.HiddenApiEnforcementPolicy} - * - * @hide - */ - public static final String HIDDEN_API_POLICY_P_APPS = - "hidden_api_policy_p_apps"; + public static final String HIDDEN_API_POLICY = "hidden_api_policy"; /** * Timeout for a single {@link android.media.soundtrigger.SoundTriggerDetectionService} diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java index d4982681cde8..9d3085aa2f88 100644 --- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java +++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java @@ -256,8 +256,7 @@ public class SettingsBackupTest { Settings.Global.HDMI_SYSTEM_AUDIO_CONTROL_ENABLED, Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED, Settings.Global.HIDDEN_API_ACCESS_LOG_SAMPLING_RATE, - Settings.Global.HIDDEN_API_POLICY_P_APPS, - Settings.Global.HIDDEN_API_POLICY_PRE_P_APPS, + Settings.Global.HIDDEN_API_POLICY, Settings.Global.HIDE_ERROR_DIALOGS, Settings.Global.HTTP_PROXY, HYBRID_SYSUI_BATTERY_WARNING_FLAGS, diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index fa9c58e1955c..a411af254510 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -2919,8 +2919,7 @@ public class ActivityManagerService extends IActivityManager.Stub private String mExemptionsStr; private List<String> mExemptions = Collections.emptyList(); private int mLogSampleRate = -1; - @HiddenApiEnforcementPolicy private int mPolicyPreP = HIDDEN_API_ENFORCEMENT_DEFAULT; - @HiddenApiEnforcementPolicy private int mPolicyP = HIDDEN_API_ENFORCEMENT_DEFAULT; + @HiddenApiEnforcementPolicy private int mPolicy = HIDDEN_API_ENFORCEMENT_DEFAULT; public HiddenApiSettings(Handler handler, Context context) { super(handler); @@ -2937,11 +2936,7 @@ public class ActivityManagerService extends IActivityManager.Stub false, this); mContext.getContentResolver().registerContentObserver( - Settings.Global.getUriFor(Settings.Global.HIDDEN_API_POLICY_PRE_P_APPS), - false, - this); - mContext.getContentResolver().registerContentObserver( - Settings.Global.getUriFor(Settings.Global.HIDDEN_API_POLICY_P_APPS), + Settings.Global.getUriFor(Settings.Global.HIDDEN_API_POLICY), false, this); update(); @@ -2976,8 +2971,7 @@ public class ActivityManagerService extends IActivityManager.Stub mLogSampleRate = logSampleRate; zygoteProcess.setHiddenApiAccessLogSampleRate(mLogSampleRate); } - mPolicyPreP = getValidEnforcementPolicy(Settings.Global.HIDDEN_API_POLICY_PRE_P_APPS); - mPolicyP = getValidEnforcementPolicy(Settings.Global.HIDDEN_API_POLICY_P_APPS); + mPolicy = getValidEnforcementPolicy(Settings.Global.HIDDEN_API_POLICY); } private @HiddenApiEnforcementPolicy int getValidEnforcementPolicy(String settingsKey) { @@ -2994,12 +2988,8 @@ public class ActivityManagerService extends IActivityManager.Stub return mBlacklistDisabled; } - @HiddenApiEnforcementPolicy int getPolicyForPrePApps() { - return mPolicyPreP; - } - - @HiddenApiEnforcementPolicy int getPolicyForPApps() { - return mPolicyP; + @HiddenApiEnforcementPolicy int getPolicy() { + return mPolicy; } public void onChange(boolean selfChange) { @@ -4328,9 +4318,7 @@ public class ActivityManagerService extends IActivityManager.Stub } if (!disableHiddenApiChecks && !mHiddenApiBlacklist.isDisabled()) { - app.info.maybeUpdateHiddenApiEnforcementPolicy( - mHiddenApiBlacklist.getPolicyForPrePApps(), - mHiddenApiBlacklist.getPolicyForPApps()); + app.info.maybeUpdateHiddenApiEnforcementPolicy(mHiddenApiBlacklist.getPolicy()); @HiddenApiEnforcementPolicy int policy = app.info.getHiddenApiEnforcementPolicy(); int policyBits = (policy << Zygote.API_ENFORCEMENT_POLICY_SHIFT); diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java index cf49d2a55d61..dc5213fa0cad 100644 --- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java +++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java @@ -48,7 +48,7 @@ import java.util.Map; import dalvik.system.DexFile; -import static android.content.pm.ApplicationInfo.HIDDEN_API_ENFORCEMENT_NONE; +import static android.content.pm.ApplicationInfo.HIDDEN_API_ENFORCEMENT_DISABLED; import static com.android.server.pm.Installer.DEXOPT_BOOTCOMPLETE; import static com.android.server.pm.Installer.DEXOPT_DEBUGGABLE; @@ -540,7 +540,7 @@ public class PackageDexOptimizer { // Some apps are executed with restrictions on hidden API usage. If this app is one // of them, pass a flag to dexopt to enable the same restrictions during compilation. // TODO we should pass the actual flag value to dexopt, rather than assuming blacklist - int hiddenApiFlag = info.getHiddenApiEnforcementPolicy() == HIDDEN_API_ENFORCEMENT_NONE + int hiddenApiFlag = info.getHiddenApiEnforcementPolicy() == HIDDEN_API_ENFORCEMENT_DISABLED ? 0 : DEXOPT_ENABLE_HIDDEN_API_CHECKS; // Avoid generating CompactDex for modes that are latency critical. |