Loading core/java/android/content/pm/ApplicationInfo.java +15 −33 Original line number Original line Diff line number Diff line Loading @@ -27,7 +27,6 @@ import android.content.Context; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Resources; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Environment; import android.os.Environment; import android.os.Parcel; import android.os.Parcel; import android.os.Parcelable; import android.os.Parcelable; Loading Loading @@ -1155,11 +1154,11 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { * system apps. * system apps. * @hide * @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 * 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 * same as {@link #HIDDEN_API_ENFORCEMENT_DISABLED} but you may see warnings in the log when * are accessed. * APIs are accessed. * @hide * @hide * */ * */ public static final int HIDDEN_API_ENFORCEMENT_JUST_WARN = 1; public static final int HIDDEN_API_ENFORCEMENT_JUST_WARN = 1; Loading @@ -1167,14 +1166,10 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { * Dark grey list enforcement. Enforces the dark grey and black lists * Dark grey list enforcement. Enforces the dark grey and black lists * @hide * @hide */ */ public static final int HIDDEN_API_ENFORCEMENT_DARK_GREY_AND_BLACK = 2; public static final int HIDDEN_API_ENFORCEMENT_ENABLED = 2; /** * Blacklist enforcement only. * @hide */ public static final int HIDDEN_API_ENFORCEMENT_BLACK = 3; 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 * Values in this IntDef MUST be kept in sync with enum hiddenapi::EnforcementPolicy in Loading @@ -1183,17 +1178,16 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { */ */ @IntDef(prefix = { "HIDDEN_API_ENFORCEMENT_" }, value = { @IntDef(prefix = { "HIDDEN_API_ENFORCEMENT_" }, value = { HIDDEN_API_ENFORCEMENT_DEFAULT, HIDDEN_API_ENFORCEMENT_DEFAULT, HIDDEN_API_ENFORCEMENT_NONE, HIDDEN_API_ENFORCEMENT_DISABLED, HIDDEN_API_ENFORCEMENT_JUST_WARN, HIDDEN_API_ENFORCEMENT_JUST_WARN, HIDDEN_API_ENFORCEMENT_DARK_GREY_AND_BLACK, HIDDEN_API_ENFORCEMENT_ENABLED, HIDDEN_API_ENFORCEMENT_BLACK, }) }) @Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE) public @interface HiddenApiEnforcementPolicy {} public @interface HiddenApiEnforcementPolicy {} /** @hide */ /** @hide */ public static boolean isValidHiddenApiEnforcementPolicy(int policy) { 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; private int mHiddenApiPolicy = HIDDEN_API_ENFORCEMENT_DEFAULT; Loading Loading @@ -1733,16 +1727,12 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { */ */ public @HiddenApiEnforcementPolicy int getHiddenApiEnforcementPolicy() { public @HiddenApiEnforcementPolicy int getHiddenApiEnforcementPolicy() { if (isAllowedToUseHiddenApis()) { if (isAllowedToUseHiddenApis()) { return HIDDEN_API_ENFORCEMENT_NONE; return HIDDEN_API_ENFORCEMENT_DISABLED; } } if (mHiddenApiPolicy != HIDDEN_API_ENFORCEMENT_DEFAULT) { if (mHiddenApiPolicy != HIDDEN_API_ENFORCEMENT_DEFAULT) { return mHiddenApiPolicy; return mHiddenApiPolicy; } } if (targetSdkVersion < Build.VERSION_CODES.P) { return HIDDEN_API_ENFORCEMENT_ENABLED; return HIDDEN_API_ENFORCEMENT_BLACK; } else { return HIDDEN_API_ENFORCEMENT_DARK_GREY_AND_BLACK; } } } /** /** Loading @@ -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 * This will have no effect if this app is not subject to hidden API enforcement, i.e. if it * is on the package whitelist. * is on the package whitelist. * * * @param policyPreP configured policy for pre-P apps, or {@link * @param policy configured policy for this app, or {@link #HIDDEN_API_ENFORCEMENT_DEFAULT} * #HIDDEN_API_ENFORCEMENT_DEFAULT} if nothing configured. * if nothing configured. * @param policyP configured policy for apps targeting P or later, or {@link * #HIDDEN_API_ENFORCEMENT_DEFAULT} if nothing configured. * @hide * @hide */ */ public void maybeUpdateHiddenApiEnforcementPolicy( public void maybeUpdateHiddenApiEnforcementPolicy(@HiddenApiEnforcementPolicy int policy) { @HiddenApiEnforcementPolicy int policyPreP, @HiddenApiEnforcementPolicy int policyP) { if (isPackageWhitelistedForHiddenApis()) { if (isPackageWhitelistedForHiddenApis()) { return; return; } } if (targetSdkVersion < Build.VERSION_CODES.P) { setHiddenApiEnforcementPolicy(policy); setHiddenApiEnforcementPolicy(policyPreP); } else if (targetSdkVersion >= Build.VERSION_CODES.P) { setHiddenApiEnforcementPolicy(policyP); } } } /** /** Loading core/java/android/provider/Settings.java +2 −15 Original line number Original line Diff line number Diff line Loading @@ -12179,27 +12179,14 @@ public final class Settings { "hidden_api_access_log_sampling_rate"; "hidden_api_access_log_sampling_rate"; /** /** * Hidden API enforcement policy for apps targeting SDK versions prior to the latest * Hidden API enforcement policy for apps. * version. * * * Values correspond to @{@link * Values correspond to @{@link * android.content.pm.ApplicationInfo.HiddenApiEnforcementPolicy} * android.content.pm.ApplicationInfo.HiddenApiEnforcementPolicy} * * * @hide * @hide */ */ public static final String HIDDEN_API_POLICY_PRE_P_APPS = public static final String HIDDEN_API_POLICY = "hidden_api_policy"; "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"; /** /** * Timeout for a single {@link android.media.soundtrigger.SoundTriggerDetectionService} * Timeout for a single {@link android.media.soundtrigger.SoundTriggerDetectionService} Loading core/tests/coretests/src/android/provider/SettingsBackupTest.java +1 −2 Original line number Original line Diff line number Diff line Loading @@ -256,8 +256,7 @@ public class SettingsBackupTest { Settings.Global.HDMI_SYSTEM_AUDIO_CONTROL_ENABLED, Settings.Global.HDMI_SYSTEM_AUDIO_CONTROL_ENABLED, Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED, Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED, Settings.Global.HIDDEN_API_ACCESS_LOG_SAMPLING_RATE, Settings.Global.HIDDEN_API_ACCESS_LOG_SAMPLING_RATE, Settings.Global.HIDDEN_API_POLICY_P_APPS, Settings.Global.HIDDEN_API_POLICY, Settings.Global.HIDDEN_API_POLICY_PRE_P_APPS, Settings.Global.HIDE_ERROR_DIALOGS, Settings.Global.HIDE_ERROR_DIALOGS, Settings.Global.HTTP_PROXY, Settings.Global.HTTP_PROXY, HYBRID_SYSUI_BATTERY_WARNING_FLAGS, HYBRID_SYSUI_BATTERY_WARNING_FLAGS, Loading services/core/java/com/android/server/am/ActivityManagerService.java +6 −18 Original line number Original line Diff line number Diff line Loading @@ -2925,8 +2925,7 @@ public class ActivityManagerService extends IActivityManager.Stub private String mExemptionsStr; private String mExemptionsStr; private List<String> mExemptions = Collections.emptyList(); private List<String> mExemptions = Collections.emptyList(); private int mLogSampleRate = -1; private int mLogSampleRate = -1; @HiddenApiEnforcementPolicy private int mPolicyPreP = HIDDEN_API_ENFORCEMENT_DEFAULT; @HiddenApiEnforcementPolicy private int mPolicy = HIDDEN_API_ENFORCEMENT_DEFAULT; @HiddenApiEnforcementPolicy private int mPolicyP = HIDDEN_API_ENFORCEMENT_DEFAULT; public HiddenApiSettings(Handler handler, Context context) { public HiddenApiSettings(Handler handler, Context context) { super(handler); super(handler); Loading @@ -2943,11 +2942,7 @@ public class ActivityManagerService extends IActivityManager.Stub false, false, this); this); mContext.getContentResolver().registerContentObserver( mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(Settings.Global.HIDDEN_API_POLICY_PRE_P_APPS), Settings.Global.getUriFor(Settings.Global.HIDDEN_API_POLICY), false, this); mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(Settings.Global.HIDDEN_API_POLICY_P_APPS), false, false, this); this); update(); update(); Loading Loading @@ -2982,8 +2977,7 @@ public class ActivityManagerService extends IActivityManager.Stub mLogSampleRate = logSampleRate; mLogSampleRate = logSampleRate; zygoteProcess.setHiddenApiAccessLogSampleRate(mLogSampleRate); zygoteProcess.setHiddenApiAccessLogSampleRate(mLogSampleRate); } } mPolicyPreP = getValidEnforcementPolicy(Settings.Global.HIDDEN_API_POLICY_PRE_P_APPS); mPolicy = getValidEnforcementPolicy(Settings.Global.HIDDEN_API_POLICY); mPolicyP = getValidEnforcementPolicy(Settings.Global.HIDDEN_API_POLICY_P_APPS); } } private @HiddenApiEnforcementPolicy int getValidEnforcementPolicy(String settingsKey) { private @HiddenApiEnforcementPolicy int getValidEnforcementPolicy(String settingsKey) { Loading @@ -3000,12 +2994,8 @@ public class ActivityManagerService extends IActivityManager.Stub return mBlacklistDisabled; return mBlacklistDisabled; } } @HiddenApiEnforcementPolicy int getPolicyForPrePApps() { @HiddenApiEnforcementPolicy int getPolicy() { return mPolicyPreP; return mPolicy; } @HiddenApiEnforcementPolicy int getPolicyForPApps() { return mPolicyP; } } public void onChange(boolean selfChange) { public void onChange(boolean selfChange) { Loading Loading @@ -4334,9 +4324,7 @@ public class ActivityManagerService extends IActivityManager.Stub } } if (!disableHiddenApiChecks && !mHiddenApiBlacklist.isDisabled()) { if (!disableHiddenApiChecks && !mHiddenApiBlacklist.isDisabled()) { app.info.maybeUpdateHiddenApiEnforcementPolicy( app.info.maybeUpdateHiddenApiEnforcementPolicy(mHiddenApiBlacklist.getPolicy()); mHiddenApiBlacklist.getPolicyForPrePApps(), mHiddenApiBlacklist.getPolicyForPApps()); @HiddenApiEnforcementPolicy int policy = @HiddenApiEnforcementPolicy int policy = app.info.getHiddenApiEnforcementPolicy(); app.info.getHiddenApiEnforcementPolicy(); int policyBits = (policy << Zygote.API_ENFORCEMENT_POLICY_SHIFT); int policyBits = (policy << Zygote.API_ENFORCEMENT_POLICY_SHIFT); services/core/java/com/android/server/pm/PackageDexOptimizer.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -49,7 +49,7 @@ import java.util.Map; import dalvik.system.DexFile; 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_BOOTCOMPLETE; import static com.android.server.pm.Installer.DEXOPT_DEBUGGABLE; import static com.android.server.pm.Installer.DEXOPT_DEBUGGABLE; Loading Loading @@ -548,7 +548,7 @@ public class PackageDexOptimizer { // Some apps are executed with restrictions on hidden API usage. If this app is one // 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. // 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 // 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 ? 0 : DEXOPT_ENABLE_HIDDEN_API_CHECKS; : DEXOPT_ENABLE_HIDDEN_API_CHECKS; // Avoid generating CompactDex for modes that are latency critical. // Avoid generating CompactDex for modes that are latency critical. Loading Loading
core/java/android/content/pm/ApplicationInfo.java +15 −33 Original line number Original line Diff line number Diff line Loading @@ -27,7 +27,6 @@ import android.content.Context; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Resources; import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Environment; import android.os.Environment; import android.os.Parcel; import android.os.Parcel; import android.os.Parcelable; import android.os.Parcelable; Loading Loading @@ -1155,11 +1154,11 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { * system apps. * system apps. * @hide * @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 * 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 * same as {@link #HIDDEN_API_ENFORCEMENT_DISABLED} but you may see warnings in the log when * are accessed. * APIs are accessed. * @hide * @hide * */ * */ public static final int HIDDEN_API_ENFORCEMENT_JUST_WARN = 1; public static final int HIDDEN_API_ENFORCEMENT_JUST_WARN = 1; Loading @@ -1167,14 +1166,10 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { * Dark grey list enforcement. Enforces the dark grey and black lists * Dark grey list enforcement. Enforces the dark grey and black lists * @hide * @hide */ */ public static final int HIDDEN_API_ENFORCEMENT_DARK_GREY_AND_BLACK = 2; public static final int HIDDEN_API_ENFORCEMENT_ENABLED = 2; /** * Blacklist enforcement only. * @hide */ public static final int HIDDEN_API_ENFORCEMENT_BLACK = 3; 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 * Values in this IntDef MUST be kept in sync with enum hiddenapi::EnforcementPolicy in Loading @@ -1183,17 +1178,16 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { */ */ @IntDef(prefix = { "HIDDEN_API_ENFORCEMENT_" }, value = { @IntDef(prefix = { "HIDDEN_API_ENFORCEMENT_" }, value = { HIDDEN_API_ENFORCEMENT_DEFAULT, HIDDEN_API_ENFORCEMENT_DEFAULT, HIDDEN_API_ENFORCEMENT_NONE, HIDDEN_API_ENFORCEMENT_DISABLED, HIDDEN_API_ENFORCEMENT_JUST_WARN, HIDDEN_API_ENFORCEMENT_JUST_WARN, HIDDEN_API_ENFORCEMENT_DARK_GREY_AND_BLACK, HIDDEN_API_ENFORCEMENT_ENABLED, HIDDEN_API_ENFORCEMENT_BLACK, }) }) @Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE) public @interface HiddenApiEnforcementPolicy {} public @interface HiddenApiEnforcementPolicy {} /** @hide */ /** @hide */ public static boolean isValidHiddenApiEnforcementPolicy(int policy) { 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; private int mHiddenApiPolicy = HIDDEN_API_ENFORCEMENT_DEFAULT; Loading Loading @@ -1733,16 +1727,12 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { */ */ public @HiddenApiEnforcementPolicy int getHiddenApiEnforcementPolicy() { public @HiddenApiEnforcementPolicy int getHiddenApiEnforcementPolicy() { if (isAllowedToUseHiddenApis()) { if (isAllowedToUseHiddenApis()) { return HIDDEN_API_ENFORCEMENT_NONE; return HIDDEN_API_ENFORCEMENT_DISABLED; } } if (mHiddenApiPolicy != HIDDEN_API_ENFORCEMENT_DEFAULT) { if (mHiddenApiPolicy != HIDDEN_API_ENFORCEMENT_DEFAULT) { return mHiddenApiPolicy; return mHiddenApiPolicy; } } if (targetSdkVersion < Build.VERSION_CODES.P) { return HIDDEN_API_ENFORCEMENT_ENABLED; return HIDDEN_API_ENFORCEMENT_BLACK; } else { return HIDDEN_API_ENFORCEMENT_DARK_GREY_AND_BLACK; } } } /** /** Loading @@ -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 * This will have no effect if this app is not subject to hidden API enforcement, i.e. if it * is on the package whitelist. * is on the package whitelist. * * * @param policyPreP configured policy for pre-P apps, or {@link * @param policy configured policy for this app, or {@link #HIDDEN_API_ENFORCEMENT_DEFAULT} * #HIDDEN_API_ENFORCEMENT_DEFAULT} if nothing configured. * if nothing configured. * @param policyP configured policy for apps targeting P or later, or {@link * #HIDDEN_API_ENFORCEMENT_DEFAULT} if nothing configured. * @hide * @hide */ */ public void maybeUpdateHiddenApiEnforcementPolicy( public void maybeUpdateHiddenApiEnforcementPolicy(@HiddenApiEnforcementPolicy int policy) { @HiddenApiEnforcementPolicy int policyPreP, @HiddenApiEnforcementPolicy int policyP) { if (isPackageWhitelistedForHiddenApis()) { if (isPackageWhitelistedForHiddenApis()) { return; return; } } if (targetSdkVersion < Build.VERSION_CODES.P) { setHiddenApiEnforcementPolicy(policy); setHiddenApiEnforcementPolicy(policyPreP); } else if (targetSdkVersion >= Build.VERSION_CODES.P) { setHiddenApiEnforcementPolicy(policyP); } } } /** /** Loading
core/java/android/provider/Settings.java +2 −15 Original line number Original line Diff line number Diff line Loading @@ -12179,27 +12179,14 @@ public final class Settings { "hidden_api_access_log_sampling_rate"; "hidden_api_access_log_sampling_rate"; /** /** * Hidden API enforcement policy for apps targeting SDK versions prior to the latest * Hidden API enforcement policy for apps. * version. * * * Values correspond to @{@link * Values correspond to @{@link * android.content.pm.ApplicationInfo.HiddenApiEnforcementPolicy} * android.content.pm.ApplicationInfo.HiddenApiEnforcementPolicy} * * * @hide * @hide */ */ public static final String HIDDEN_API_POLICY_PRE_P_APPS = public static final String HIDDEN_API_POLICY = "hidden_api_policy"; "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"; /** /** * Timeout for a single {@link android.media.soundtrigger.SoundTriggerDetectionService} * Timeout for a single {@link android.media.soundtrigger.SoundTriggerDetectionService} Loading
core/tests/coretests/src/android/provider/SettingsBackupTest.java +1 −2 Original line number Original line Diff line number Diff line Loading @@ -256,8 +256,7 @@ public class SettingsBackupTest { Settings.Global.HDMI_SYSTEM_AUDIO_CONTROL_ENABLED, Settings.Global.HDMI_SYSTEM_AUDIO_CONTROL_ENABLED, Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED, Settings.Global.HEADS_UP_NOTIFICATIONS_ENABLED, Settings.Global.HIDDEN_API_ACCESS_LOG_SAMPLING_RATE, Settings.Global.HIDDEN_API_ACCESS_LOG_SAMPLING_RATE, Settings.Global.HIDDEN_API_POLICY_P_APPS, Settings.Global.HIDDEN_API_POLICY, Settings.Global.HIDDEN_API_POLICY_PRE_P_APPS, Settings.Global.HIDE_ERROR_DIALOGS, Settings.Global.HIDE_ERROR_DIALOGS, Settings.Global.HTTP_PROXY, Settings.Global.HTTP_PROXY, HYBRID_SYSUI_BATTERY_WARNING_FLAGS, HYBRID_SYSUI_BATTERY_WARNING_FLAGS, Loading
services/core/java/com/android/server/am/ActivityManagerService.java +6 −18 Original line number Original line Diff line number Diff line Loading @@ -2925,8 +2925,7 @@ public class ActivityManagerService extends IActivityManager.Stub private String mExemptionsStr; private String mExemptionsStr; private List<String> mExemptions = Collections.emptyList(); private List<String> mExemptions = Collections.emptyList(); private int mLogSampleRate = -1; private int mLogSampleRate = -1; @HiddenApiEnforcementPolicy private int mPolicyPreP = HIDDEN_API_ENFORCEMENT_DEFAULT; @HiddenApiEnforcementPolicy private int mPolicy = HIDDEN_API_ENFORCEMENT_DEFAULT; @HiddenApiEnforcementPolicy private int mPolicyP = HIDDEN_API_ENFORCEMENT_DEFAULT; public HiddenApiSettings(Handler handler, Context context) { public HiddenApiSettings(Handler handler, Context context) { super(handler); super(handler); Loading @@ -2943,11 +2942,7 @@ public class ActivityManagerService extends IActivityManager.Stub false, false, this); this); mContext.getContentResolver().registerContentObserver( mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(Settings.Global.HIDDEN_API_POLICY_PRE_P_APPS), Settings.Global.getUriFor(Settings.Global.HIDDEN_API_POLICY), false, this); mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(Settings.Global.HIDDEN_API_POLICY_P_APPS), false, false, this); this); update(); update(); Loading Loading @@ -2982,8 +2977,7 @@ public class ActivityManagerService extends IActivityManager.Stub mLogSampleRate = logSampleRate; mLogSampleRate = logSampleRate; zygoteProcess.setHiddenApiAccessLogSampleRate(mLogSampleRate); zygoteProcess.setHiddenApiAccessLogSampleRate(mLogSampleRate); } } mPolicyPreP = getValidEnforcementPolicy(Settings.Global.HIDDEN_API_POLICY_PRE_P_APPS); mPolicy = getValidEnforcementPolicy(Settings.Global.HIDDEN_API_POLICY); mPolicyP = getValidEnforcementPolicy(Settings.Global.HIDDEN_API_POLICY_P_APPS); } } private @HiddenApiEnforcementPolicy int getValidEnforcementPolicy(String settingsKey) { private @HiddenApiEnforcementPolicy int getValidEnforcementPolicy(String settingsKey) { Loading @@ -3000,12 +2994,8 @@ public class ActivityManagerService extends IActivityManager.Stub return mBlacklistDisabled; return mBlacklistDisabled; } } @HiddenApiEnforcementPolicy int getPolicyForPrePApps() { @HiddenApiEnforcementPolicy int getPolicy() { return mPolicyPreP; return mPolicy; } @HiddenApiEnforcementPolicy int getPolicyForPApps() { return mPolicyP; } } public void onChange(boolean selfChange) { public void onChange(boolean selfChange) { Loading Loading @@ -4334,9 +4324,7 @@ public class ActivityManagerService extends IActivityManager.Stub } } if (!disableHiddenApiChecks && !mHiddenApiBlacklist.isDisabled()) { if (!disableHiddenApiChecks && !mHiddenApiBlacklist.isDisabled()) { app.info.maybeUpdateHiddenApiEnforcementPolicy( app.info.maybeUpdateHiddenApiEnforcementPolicy(mHiddenApiBlacklist.getPolicy()); mHiddenApiBlacklist.getPolicyForPrePApps(), mHiddenApiBlacklist.getPolicyForPApps()); @HiddenApiEnforcementPolicy int policy = @HiddenApiEnforcementPolicy int policy = app.info.getHiddenApiEnforcementPolicy(); app.info.getHiddenApiEnforcementPolicy(); int policyBits = (policy << Zygote.API_ENFORCEMENT_POLICY_SHIFT); int policyBits = (policy << Zygote.API_ENFORCEMENT_POLICY_SHIFT);
services/core/java/com/android/server/pm/PackageDexOptimizer.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -49,7 +49,7 @@ import java.util.Map; import dalvik.system.DexFile; 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_BOOTCOMPLETE; import static com.android.server.pm.Installer.DEXOPT_DEBUGGABLE; import static com.android.server.pm.Installer.DEXOPT_DEBUGGABLE; Loading Loading @@ -548,7 +548,7 @@ public class PackageDexOptimizer { // Some apps are executed with restrictions on hidden API usage. If this app is one // 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. // 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 // 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 ? 0 : DEXOPT_ENABLE_HIDDEN_API_CHECKS; : DEXOPT_ENABLE_HIDDEN_API_CHECKS; // Avoid generating CompactDex for modes that are latency critical. // Avoid generating CompactDex for modes that are latency critical. Loading