Loading api/system-current.txt +6 −1 Original line number Original line Diff line number Diff line Loading @@ -2183,6 +2183,7 @@ package android.content.pm { method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable String); method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable String); method @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable android.content.pm.SuspendDialogInfo); method @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable android.content.pm.SuspendDialogInfo); method @RequiresPermission(value=android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional=true) public void setSyntheticAppDetailsActivityEnabled(@NonNull String, boolean); method @RequiresPermission(value=android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional=true) public void setSyntheticAppDetailsActivityEnabled(@NonNull String, boolean); method public void setSystemAppState(@NonNull String, int); method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public abstract void setUpdateAvailable(@NonNull String, boolean); method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public abstract void setUpdateAvailable(@NonNull String, boolean); method @RequiresPermission(android.Manifest.permission.SET_PREFERRED_APPLICATIONS) public abstract boolean updateIntentVerificationStatusAsUser(@NonNull String, int, int); method @RequiresPermission(android.Manifest.permission.SET_PREFERRED_APPLICATIONS) public abstract boolean updateIntentVerificationStatusAsUser(@NonNull String, int, int); method @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS}) public abstract void updatePermissionFlags(@NonNull String, @NonNull String, @android.content.pm.PackageManager.PermissionFlags int, @android.content.pm.PackageManager.PermissionFlags int, @NonNull android.os.UserHandle); method @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS}) public abstract void updatePermissionFlags(@NonNull String, @NonNull String, @android.content.pm.PackageManager.PermissionFlags int, @android.content.pm.PackageManager.PermissionFlags int, @NonNull android.os.UserHandle); Loading Loading @@ -2263,6 +2264,10 @@ package android.content.pm { field public static final int RESTRICTION_HIDE_FROM_SUGGESTIONS = 1; // 0x1 field public static final int RESTRICTION_HIDE_FROM_SUGGESTIONS = 1; // 0x1 field public static final int RESTRICTION_HIDE_NOTIFICATIONS = 2; // 0x2 field public static final int RESTRICTION_HIDE_NOTIFICATIONS = 2; // 0x2 field public static final int RESTRICTION_NONE = 0; // 0x0 field public static final int RESTRICTION_NONE = 0; // 0x0 field public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_HIDDEN = 0; // 0x0 field public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_VISIBLE = 1; // 0x1 field public static final int SYSTEM_APP_STATE_INSTALLED = 2; // 0x2 field public static final int SYSTEM_APP_STATE_UNINSTALLED = 3; // 0x3 } } public abstract static class PackageManager.DexModuleRegisterCallback { public abstract static class PackageManager.DexModuleRegisterCallback { Loading Loading @@ -8815,7 +8820,6 @@ package android.os { method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getEuiccControllerService(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getEuiccControllerService(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getIccPhoneBookServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getIccPhoneBookServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getOpportunisticNetworkServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getOpportunisticNetworkServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getPackageManagerServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getPhoneSubServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getPhoneSubServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getSmsServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getSmsServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getSubscriptionServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getSubscriptionServiceRegisterer(); Loading Loading @@ -9156,6 +9160,7 @@ package android.permission { public final class PermissionManager { public final class PermissionManager { method @IntRange(from=0) @RequiresPermission(android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY) public int getRuntimePermissionsVersion(); method @IntRange(from=0) @RequiresPermission(android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY) public int getRuntimePermissionsVersion(); method @NonNull public java.util.List<android.permission.PermissionManager.SplitPermissionInfo> getSplitPermissions(); method @NonNull public java.util.List<android.permission.PermissionManager.SplitPermissionInfo> getSplitPermissions(); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledCarrierApps(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledImsServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledImsServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledTelephonyDataServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledTelephonyDataServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToLuiApp(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToLuiApp(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); core/java/android/app/ApplicationPackageManager.java +40 −18 Original line number Original line Diff line number Diff line Loading @@ -131,7 +131,7 @@ public class ApplicationPackageManager extends PackageManager { private static final int DEFAULT_EPHEMERAL_COOKIE_MAX_SIZE_BYTES = 16384; // 16KB private static final int DEFAULT_EPHEMERAL_COOKIE_MAX_SIZE_BYTES = 16384; // 16KB // Default flags to use with PackageManager when no flags are given. // Default flags to use with PackageManager when no flags are given. private final static int sDefaultFlags = PackageManager.GET_SHARED_LIBRARY_FILES; private static final int sDefaultFlags = GET_SHARED_LIBRARY_FILES; // Name of the resource which provides background permission button string // Name of the resource which provides background permission button string public static final String APP_PERMISSION_BUTTON_ALLOW_ALWAYS = public static final String APP_PERMISSION_BUTTON_ALLOW_ALWAYS = Loading Loading @@ -907,7 +907,7 @@ public class ApplicationPackageManager extends PackageManager { @Override @Override public boolean hasSigningCertificate( public boolean hasSigningCertificate( String packageName, byte[] certificate, @PackageManager.CertificateInputType int type) { String packageName, byte[] certificate, @CertificateInputType int type) { try { try { return mPM.hasSigningCertificate(packageName, certificate, type); return mPM.hasSigningCertificate(packageName, certificate, type); } catch (RemoteException e) { } catch (RemoteException e) { Loading @@ -917,7 +917,7 @@ public class ApplicationPackageManager extends PackageManager { @Override @Override public boolean hasSigningCertificate( public boolean hasSigningCertificate( int uid, byte[] certificate, @PackageManager.CertificateInputType int type) { int uid, byte[] certificate, @CertificateInputType int type) { try { try { return mPM.hasUidSigningCertificate(uid, certificate, type); return mPM.hasUidSigningCertificate(uid, certificate, type); } catch (RemoteException e) { } catch (RemoteException e) { Loading Loading @@ -1464,8 +1464,7 @@ public class ApplicationPackageManager extends PackageManager { return getActivityIcon(intent.getComponent()); return getActivityIcon(intent.getComponent()); } } ResolveInfo info = resolveActivity( ResolveInfo info = resolveActivity(intent, MATCH_DEFAULT_ONLY); intent, PackageManager.MATCH_DEFAULT_ONLY); if (info != null) { if (info != null) { return info.activityInfo.loadIcon(this); return info.activityInfo.loadIcon(this); } } Loading Loading @@ -1500,7 +1499,7 @@ public class ApplicationPackageManager extends PackageManager { } } ResolveInfo info = resolveActivity( ResolveInfo info = resolveActivity( intent, PackageManager.MATCH_DEFAULT_ONLY); intent, MATCH_DEFAULT_ONLY); if (info != null) { if (info != null) { return info.activityInfo.loadBanner(this); return info.activityInfo.loadBanner(this); } } Loading Loading @@ -1532,8 +1531,7 @@ public class ApplicationPackageManager extends PackageManager { return getActivityLogo(intent.getComponent()); return getActivityLogo(intent.getComponent()); } } ResolveInfo info = resolveActivity( ResolveInfo info = resolveActivity(intent, MATCH_DEFAULT_ONLY); intent, PackageManager.MATCH_DEFAULT_ONLY); if (info != null) { if (info != null) { return info.activityInfo.loadLogo(this); return info.activityInfo.loadLogo(this); } } Loading Loading @@ -2017,7 +2015,7 @@ public class ApplicationPackageManager extends PackageManager { @Override @Override public int installExistingPackage(String packageName) throws NameNotFoundException { public int installExistingPackage(String packageName) throws NameNotFoundException { return installExistingPackage(packageName, PackageManager.INSTALL_REASON_UNKNOWN); return installExistingPackage(packageName, INSTALL_REASON_UNKNOWN); } } @Override @Override Loading @@ -2029,7 +2027,7 @@ public class ApplicationPackageManager extends PackageManager { @Override @Override public int installExistingPackageAsUser(String packageName, int userId) public int installExistingPackageAsUser(String packageName, int userId) throws NameNotFoundException { throws NameNotFoundException { return installExistingPackageAsUser(packageName, PackageManager.INSTALL_REASON_UNKNOWN, return installExistingPackageAsUser(packageName, INSTALL_REASON_UNKNOWN, userId); userId); } } Loading Loading @@ -2404,7 +2402,7 @@ public class ApplicationPackageManager extends PackageManager { public void deletePackageAsUser(String packageName, IPackageDeleteObserver observer, public void deletePackageAsUser(String packageName, IPackageDeleteObserver observer, int flags, int userId) { int flags, int userId) { try { try { mPM.deletePackageAsUser(packageName, PackageManager.VERSION_CODE_HIGHEST, mPM.deletePackageAsUser(packageName, VERSION_CODE_HIGHEST, observer, userId, flags); observer, userId, flags); } catch (RemoteException e) { } catch (RemoteException e) { throw e.rethrowFromSystemServer(); throw e.rethrowFromSystemServer(); Loading Loading @@ -2651,11 +2649,11 @@ public class ApplicationPackageManager extends PackageManager { public void setSyntheticAppDetailsActivityEnabled(String packageName, boolean enabled) { public void setSyntheticAppDetailsActivityEnabled(String packageName, boolean enabled) { try { try { ComponentName componentName = new ComponentName(packageName, ComponentName componentName = new ComponentName(packageName, PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME); APP_DETAILS_ACTIVITY_CLASS_NAME); mPM.setComponentEnabledSetting(componentName, enabled mPM.setComponentEnabledSetting(componentName, enabled ? PackageManager.COMPONENT_ENABLED_STATE_DEFAULT ? COMPONENT_ENABLED_STATE_DEFAULT : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, : COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP, getUserId()); DONT_KILL_APP, getUserId()); } catch (RemoteException e) { } catch (RemoteException e) { throw e.rethrowFromSystemServer(); throw e.rethrowFromSystemServer(); } } Loading @@ -2665,10 +2663,10 @@ public class ApplicationPackageManager extends PackageManager { public boolean getSyntheticAppDetailsActivityEnabled(String packageName) { public boolean getSyntheticAppDetailsActivityEnabled(String packageName) { try { try { ComponentName componentName = new ComponentName(packageName, ComponentName componentName = new ComponentName(packageName, PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME); APP_DETAILS_ACTIVITY_CLASS_NAME); int state = mPM.getComponentEnabledSetting(componentName, getUserId()); int state = mPM.getComponentEnabledSetting(componentName, getUserId()); return state == PackageManager.COMPONENT_ENABLED_STATE_ENABLED return state == COMPONENT_ENABLED_STATE_ENABLED || state == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT; || state == COMPONENT_ENABLED_STATE_DEFAULT; } catch (RemoteException e) { } catch (RemoteException e) { throw e.rethrowFromSystemServer(); throw e.rethrowFromSystemServer(); } } Loading Loading @@ -2742,6 +2740,30 @@ public class ApplicationPackageManager extends PackageManager { } } } } /** @hide */ @Override public void setSystemAppState(String packageName, @SystemAppState int state) { try { switch (state) { case SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_HIDDEN: mPM.setSystemAppHiddenUntilInstalled(packageName, true); break; case SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_VISIBLE: mPM.setSystemAppHiddenUntilInstalled(packageName, false); break; case SYSTEM_APP_STATE_INSTALLED: mPM.setSystemAppInstallState(packageName, true, getUserId()); break; case SYSTEM_APP_STATE_UNINSTALLED: mPM.setSystemAppInstallState(packageName, false, getUserId()); break; default: } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** @hide */ /** @hide */ @Override @Override public KeySet getKeySetByAlias(String packageName, String alias) { public KeySet getKeySetByAlias(String packageName, String alias) { Loading core/java/android/content/pm/PackageManager.java +49 −0 Original line number Original line Diff line number Diff line Loading @@ -3526,6 +3526,44 @@ public abstract class PackageManager { @Disabled @Disabled public static final long FILTER_APPLICATION_QUERY = 135549675L; public static final long FILTER_APPLICATION_QUERY = 135549675L; /** {@hide} */ @IntDef(prefix = {"SYSTEM_APP_STATE_"}, value = { SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_HIDDEN, SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_VISIBLE, SYSTEM_APP_STATE_INSTALLED, SYSTEM_APP_STATE_UNINSTALLED }) @Retention(RetentionPolicy.SOURCE) public @interface SystemAppState {} /** * Constant for noting system app state as hidden before installation * @hide */ @SystemApi public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_HIDDEN = 0; /** * Constant for noting system app state as visible before installation * @hide */ @SystemApi public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_VISIBLE = 1; /** * Constant for noting system app state as installed * @hide */ @SystemApi public static final int SYSTEM_APP_STATE_INSTALLED = 2; /** * Constant for noting system app state as not installed * @hide */ @SystemApi public static final int SYSTEM_APP_STATE_UNINSTALLED = 3; /** {@hide} */ /** {@hide} */ public int getUserId() { public int getUserId() { return UserHandle.myUserId(); return UserHandle.myUserId(); Loading Loading @@ -6629,6 +6667,17 @@ public abstract class PackageManager { public abstract boolean getApplicationHiddenSettingAsUser(@NonNull String packageName, public abstract boolean getApplicationHiddenSettingAsUser(@NonNull String packageName, @NonNull UserHandle userHandle); @NonNull UserHandle userHandle); /** * Sets system app state * @param packageName Package name of the app. * @param state State of the app. * @hide */ @SystemApi public void setSystemAppState(@NonNull String packageName, @SystemAppState int state) { throw new RuntimeException("Not implemented. Must override in a subclass"); } /** /** * Return whether the device has been booted into safe mode. * Return whether the device has been booted into safe mode. */ */ Loading core/java/android/os/TelephonyServiceManager.java +0 −8 Original line number Original line Diff line number Diff line Loading @@ -190,14 +190,6 @@ public class TelephonyServiceManager { return new ServiceRegisterer("euicc_card_controller"); return new ServiceRegisterer("euicc_card_controller"); } } /** * Returns {@link ServiceRegisterer} for the package manager service. */ @NonNull public ServiceRegisterer getPackageManagerServiceRegisterer() { return new ServiceRegisterer("package"); } /** /** * Returns {@link ServiceRegisterer} for the ICC phone book service. * Returns {@link ServiceRegisterer} for the ICC phone book service. */ */ Loading core/java/android/permission/PermissionManager.java +23 −1 Original line number Original line Diff line number Diff line Loading @@ -266,6 +266,28 @@ public final class PermissionManager { } } } } /** * Grant default permissions to currently enabled carrier apps * @param packageNames Package names of the apps to be granted permissions * @param user The user handle * @param executor The executor for the callback * @param callback The callback provided by caller to be notified when grant completes * @hide */ @SystemApi @RequiresPermission(Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledCarrierApps(@NonNull String[] packageNames, @NonNull UserHandle user, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { try { mPermissionManager.grantDefaultPermissionsToEnabledCarrierApps(packageNames, user.getIdentifier()); executor.execute(() -> callback.accept(true)); } catch (RemoteException e) { e.rethrowFromSystemServer(); } } private List<SplitPermissionInfo> splitPermissionInfoListToNonParcelableList( private List<SplitPermissionInfo> splitPermissionInfoListToNonParcelableList( List<SplitPermissionInfoParcelable> parcelableList) { List<SplitPermissionInfoParcelable> parcelableList) { final int size = parcelableList.size(); final int size = parcelableList.size(); Loading Loading
api/system-current.txt +6 −1 Original line number Original line Diff line number Diff line Loading @@ -2183,6 +2183,7 @@ package android.content.pm { method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable String); method @Deprecated @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable String); method @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable android.content.pm.SuspendDialogInfo); method @Nullable @RequiresPermission(android.Manifest.permission.SUSPEND_APPS) public String[] setPackagesSuspended(@Nullable String[], boolean, @Nullable android.os.PersistableBundle, @Nullable android.os.PersistableBundle, @Nullable android.content.pm.SuspendDialogInfo); method @RequiresPermission(value=android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional=true) public void setSyntheticAppDetailsActivityEnabled(@NonNull String, boolean); method @RequiresPermission(value=android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE, conditional=true) public void setSyntheticAppDetailsActivityEnabled(@NonNull String, boolean); method public void setSystemAppState(@NonNull String, int); method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public abstract void setUpdateAvailable(@NonNull String, boolean); method @RequiresPermission(android.Manifest.permission.INSTALL_PACKAGES) public abstract void setUpdateAvailable(@NonNull String, boolean); method @RequiresPermission(android.Manifest.permission.SET_PREFERRED_APPLICATIONS) public abstract boolean updateIntentVerificationStatusAsUser(@NonNull String, int, int); method @RequiresPermission(android.Manifest.permission.SET_PREFERRED_APPLICATIONS) public abstract boolean updateIntentVerificationStatusAsUser(@NonNull String, int, int); method @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS}) public abstract void updatePermissionFlags(@NonNull String, @NonNull String, @android.content.pm.PackageManager.PermissionFlags int, @android.content.pm.PackageManager.PermissionFlags int, @NonNull android.os.UserHandle); method @RequiresPermission(anyOf={android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS, android.Manifest.permission.REVOKE_RUNTIME_PERMISSIONS}) public abstract void updatePermissionFlags(@NonNull String, @NonNull String, @android.content.pm.PackageManager.PermissionFlags int, @android.content.pm.PackageManager.PermissionFlags int, @NonNull android.os.UserHandle); Loading Loading @@ -2263,6 +2264,10 @@ package android.content.pm { field public static final int RESTRICTION_HIDE_FROM_SUGGESTIONS = 1; // 0x1 field public static final int RESTRICTION_HIDE_FROM_SUGGESTIONS = 1; // 0x1 field public static final int RESTRICTION_HIDE_NOTIFICATIONS = 2; // 0x2 field public static final int RESTRICTION_HIDE_NOTIFICATIONS = 2; // 0x2 field public static final int RESTRICTION_NONE = 0; // 0x0 field public static final int RESTRICTION_NONE = 0; // 0x0 field public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_HIDDEN = 0; // 0x0 field public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_VISIBLE = 1; // 0x1 field public static final int SYSTEM_APP_STATE_INSTALLED = 2; // 0x2 field public static final int SYSTEM_APP_STATE_UNINSTALLED = 3; // 0x3 } } public abstract static class PackageManager.DexModuleRegisterCallback { public abstract static class PackageManager.DexModuleRegisterCallback { Loading Loading @@ -8815,7 +8820,6 @@ package android.os { method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getEuiccControllerService(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getEuiccControllerService(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getIccPhoneBookServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getIccPhoneBookServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getOpportunisticNetworkServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getOpportunisticNetworkServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getPackageManagerServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getPhoneSubServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getPhoneSubServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getSmsServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getSmsServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getSubscriptionServiceRegisterer(); method @NonNull public android.os.TelephonyServiceManager.ServiceRegisterer getSubscriptionServiceRegisterer(); Loading Loading @@ -9156,6 +9160,7 @@ package android.permission { public final class PermissionManager { public final class PermissionManager { method @IntRange(from=0) @RequiresPermission(android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY) public int getRuntimePermissionsVersion(); method @IntRange(from=0) @RequiresPermission(android.Manifest.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY) public int getRuntimePermissionsVersion(); method @NonNull public java.util.List<android.permission.PermissionManager.SplitPermissionInfo> getSplitPermissions(); method @NonNull public java.util.List<android.permission.PermissionManager.SplitPermissionInfo> getSplitPermissions(); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledCarrierApps(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledImsServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledImsServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledTelephonyDataServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledTelephonyDataServices(@NonNull String[], @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToLuiApp(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @RequiresPermission(android.Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToLuiApp(@NonNull String, @NonNull android.os.UserHandle, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
core/java/android/app/ApplicationPackageManager.java +40 −18 Original line number Original line Diff line number Diff line Loading @@ -131,7 +131,7 @@ public class ApplicationPackageManager extends PackageManager { private static final int DEFAULT_EPHEMERAL_COOKIE_MAX_SIZE_BYTES = 16384; // 16KB private static final int DEFAULT_EPHEMERAL_COOKIE_MAX_SIZE_BYTES = 16384; // 16KB // Default flags to use with PackageManager when no flags are given. // Default flags to use with PackageManager when no flags are given. private final static int sDefaultFlags = PackageManager.GET_SHARED_LIBRARY_FILES; private static final int sDefaultFlags = GET_SHARED_LIBRARY_FILES; // Name of the resource which provides background permission button string // Name of the resource which provides background permission button string public static final String APP_PERMISSION_BUTTON_ALLOW_ALWAYS = public static final String APP_PERMISSION_BUTTON_ALLOW_ALWAYS = Loading Loading @@ -907,7 +907,7 @@ public class ApplicationPackageManager extends PackageManager { @Override @Override public boolean hasSigningCertificate( public boolean hasSigningCertificate( String packageName, byte[] certificate, @PackageManager.CertificateInputType int type) { String packageName, byte[] certificate, @CertificateInputType int type) { try { try { return mPM.hasSigningCertificate(packageName, certificate, type); return mPM.hasSigningCertificate(packageName, certificate, type); } catch (RemoteException e) { } catch (RemoteException e) { Loading @@ -917,7 +917,7 @@ public class ApplicationPackageManager extends PackageManager { @Override @Override public boolean hasSigningCertificate( public boolean hasSigningCertificate( int uid, byte[] certificate, @PackageManager.CertificateInputType int type) { int uid, byte[] certificate, @CertificateInputType int type) { try { try { return mPM.hasUidSigningCertificate(uid, certificate, type); return mPM.hasUidSigningCertificate(uid, certificate, type); } catch (RemoteException e) { } catch (RemoteException e) { Loading Loading @@ -1464,8 +1464,7 @@ public class ApplicationPackageManager extends PackageManager { return getActivityIcon(intent.getComponent()); return getActivityIcon(intent.getComponent()); } } ResolveInfo info = resolveActivity( ResolveInfo info = resolveActivity(intent, MATCH_DEFAULT_ONLY); intent, PackageManager.MATCH_DEFAULT_ONLY); if (info != null) { if (info != null) { return info.activityInfo.loadIcon(this); return info.activityInfo.loadIcon(this); } } Loading Loading @@ -1500,7 +1499,7 @@ public class ApplicationPackageManager extends PackageManager { } } ResolveInfo info = resolveActivity( ResolveInfo info = resolveActivity( intent, PackageManager.MATCH_DEFAULT_ONLY); intent, MATCH_DEFAULT_ONLY); if (info != null) { if (info != null) { return info.activityInfo.loadBanner(this); return info.activityInfo.loadBanner(this); } } Loading Loading @@ -1532,8 +1531,7 @@ public class ApplicationPackageManager extends PackageManager { return getActivityLogo(intent.getComponent()); return getActivityLogo(intent.getComponent()); } } ResolveInfo info = resolveActivity( ResolveInfo info = resolveActivity(intent, MATCH_DEFAULT_ONLY); intent, PackageManager.MATCH_DEFAULT_ONLY); if (info != null) { if (info != null) { return info.activityInfo.loadLogo(this); return info.activityInfo.loadLogo(this); } } Loading Loading @@ -2017,7 +2015,7 @@ public class ApplicationPackageManager extends PackageManager { @Override @Override public int installExistingPackage(String packageName) throws NameNotFoundException { public int installExistingPackage(String packageName) throws NameNotFoundException { return installExistingPackage(packageName, PackageManager.INSTALL_REASON_UNKNOWN); return installExistingPackage(packageName, INSTALL_REASON_UNKNOWN); } } @Override @Override Loading @@ -2029,7 +2027,7 @@ public class ApplicationPackageManager extends PackageManager { @Override @Override public int installExistingPackageAsUser(String packageName, int userId) public int installExistingPackageAsUser(String packageName, int userId) throws NameNotFoundException { throws NameNotFoundException { return installExistingPackageAsUser(packageName, PackageManager.INSTALL_REASON_UNKNOWN, return installExistingPackageAsUser(packageName, INSTALL_REASON_UNKNOWN, userId); userId); } } Loading Loading @@ -2404,7 +2402,7 @@ public class ApplicationPackageManager extends PackageManager { public void deletePackageAsUser(String packageName, IPackageDeleteObserver observer, public void deletePackageAsUser(String packageName, IPackageDeleteObserver observer, int flags, int userId) { int flags, int userId) { try { try { mPM.deletePackageAsUser(packageName, PackageManager.VERSION_CODE_HIGHEST, mPM.deletePackageAsUser(packageName, VERSION_CODE_HIGHEST, observer, userId, flags); observer, userId, flags); } catch (RemoteException e) { } catch (RemoteException e) { throw e.rethrowFromSystemServer(); throw e.rethrowFromSystemServer(); Loading Loading @@ -2651,11 +2649,11 @@ public class ApplicationPackageManager extends PackageManager { public void setSyntheticAppDetailsActivityEnabled(String packageName, boolean enabled) { public void setSyntheticAppDetailsActivityEnabled(String packageName, boolean enabled) { try { try { ComponentName componentName = new ComponentName(packageName, ComponentName componentName = new ComponentName(packageName, PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME); APP_DETAILS_ACTIVITY_CLASS_NAME); mPM.setComponentEnabledSetting(componentName, enabled mPM.setComponentEnabledSetting(componentName, enabled ? PackageManager.COMPONENT_ENABLED_STATE_DEFAULT ? COMPONENT_ENABLED_STATE_DEFAULT : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, : COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP, getUserId()); DONT_KILL_APP, getUserId()); } catch (RemoteException e) { } catch (RemoteException e) { throw e.rethrowFromSystemServer(); throw e.rethrowFromSystemServer(); } } Loading @@ -2665,10 +2663,10 @@ public class ApplicationPackageManager extends PackageManager { public boolean getSyntheticAppDetailsActivityEnabled(String packageName) { public boolean getSyntheticAppDetailsActivityEnabled(String packageName) { try { try { ComponentName componentName = new ComponentName(packageName, ComponentName componentName = new ComponentName(packageName, PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME); APP_DETAILS_ACTIVITY_CLASS_NAME); int state = mPM.getComponentEnabledSetting(componentName, getUserId()); int state = mPM.getComponentEnabledSetting(componentName, getUserId()); return state == PackageManager.COMPONENT_ENABLED_STATE_ENABLED return state == COMPONENT_ENABLED_STATE_ENABLED || state == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT; || state == COMPONENT_ENABLED_STATE_DEFAULT; } catch (RemoteException e) { } catch (RemoteException e) { throw e.rethrowFromSystemServer(); throw e.rethrowFromSystemServer(); } } Loading Loading @@ -2742,6 +2740,30 @@ public class ApplicationPackageManager extends PackageManager { } } } } /** @hide */ @Override public void setSystemAppState(String packageName, @SystemAppState int state) { try { switch (state) { case SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_HIDDEN: mPM.setSystemAppHiddenUntilInstalled(packageName, true); break; case SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_VISIBLE: mPM.setSystemAppHiddenUntilInstalled(packageName, false); break; case SYSTEM_APP_STATE_INSTALLED: mPM.setSystemAppInstallState(packageName, true, getUserId()); break; case SYSTEM_APP_STATE_UNINSTALLED: mPM.setSystemAppInstallState(packageName, false, getUserId()); break; default: } } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** @hide */ /** @hide */ @Override @Override public KeySet getKeySetByAlias(String packageName, String alias) { public KeySet getKeySetByAlias(String packageName, String alias) { Loading
core/java/android/content/pm/PackageManager.java +49 −0 Original line number Original line Diff line number Diff line Loading @@ -3526,6 +3526,44 @@ public abstract class PackageManager { @Disabled @Disabled public static final long FILTER_APPLICATION_QUERY = 135549675L; public static final long FILTER_APPLICATION_QUERY = 135549675L; /** {@hide} */ @IntDef(prefix = {"SYSTEM_APP_STATE_"}, value = { SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_HIDDEN, SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_VISIBLE, SYSTEM_APP_STATE_INSTALLED, SYSTEM_APP_STATE_UNINSTALLED }) @Retention(RetentionPolicy.SOURCE) public @interface SystemAppState {} /** * Constant for noting system app state as hidden before installation * @hide */ @SystemApi public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_HIDDEN = 0; /** * Constant for noting system app state as visible before installation * @hide */ @SystemApi public static final int SYSTEM_APP_STATE_HIDDEN_UNTIL_INSTALLED_VISIBLE = 1; /** * Constant for noting system app state as installed * @hide */ @SystemApi public static final int SYSTEM_APP_STATE_INSTALLED = 2; /** * Constant for noting system app state as not installed * @hide */ @SystemApi public static final int SYSTEM_APP_STATE_UNINSTALLED = 3; /** {@hide} */ /** {@hide} */ public int getUserId() { public int getUserId() { return UserHandle.myUserId(); return UserHandle.myUserId(); Loading Loading @@ -6629,6 +6667,17 @@ public abstract class PackageManager { public abstract boolean getApplicationHiddenSettingAsUser(@NonNull String packageName, public abstract boolean getApplicationHiddenSettingAsUser(@NonNull String packageName, @NonNull UserHandle userHandle); @NonNull UserHandle userHandle); /** * Sets system app state * @param packageName Package name of the app. * @param state State of the app. * @hide */ @SystemApi public void setSystemAppState(@NonNull String packageName, @SystemAppState int state) { throw new RuntimeException("Not implemented. Must override in a subclass"); } /** /** * Return whether the device has been booted into safe mode. * Return whether the device has been booted into safe mode. */ */ Loading
core/java/android/os/TelephonyServiceManager.java +0 −8 Original line number Original line Diff line number Diff line Loading @@ -190,14 +190,6 @@ public class TelephonyServiceManager { return new ServiceRegisterer("euicc_card_controller"); return new ServiceRegisterer("euicc_card_controller"); } } /** * Returns {@link ServiceRegisterer} for the package manager service. */ @NonNull public ServiceRegisterer getPackageManagerServiceRegisterer() { return new ServiceRegisterer("package"); } /** /** * Returns {@link ServiceRegisterer} for the ICC phone book service. * Returns {@link ServiceRegisterer} for the ICC phone book service. */ */ Loading
core/java/android/permission/PermissionManager.java +23 −1 Original line number Original line Diff line number Diff line Loading @@ -266,6 +266,28 @@ public final class PermissionManager { } } } } /** * Grant default permissions to currently enabled carrier apps * @param packageNames Package names of the apps to be granted permissions * @param user The user handle * @param executor The executor for the callback * @param callback The callback provided by caller to be notified when grant completes * @hide */ @SystemApi @RequiresPermission(Manifest.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS) public void grantDefaultPermissionsToEnabledCarrierApps(@NonNull String[] packageNames, @NonNull UserHandle user, @NonNull @CallbackExecutor Executor executor, @NonNull Consumer<Boolean> callback) { try { mPermissionManager.grantDefaultPermissionsToEnabledCarrierApps(packageNames, user.getIdentifier()); executor.execute(() -> callback.accept(true)); } catch (RemoteException e) { e.rethrowFromSystemServer(); } } private List<SplitPermissionInfo> splitPermissionInfoListToNonParcelableList( private List<SplitPermissionInfo> splitPermissionInfoListToNonParcelableList( List<SplitPermissionInfoParcelable> parcelableList) { List<SplitPermissionInfoParcelable> parcelableList) { final int size = parcelableList.size(); final int size = parcelableList.size(); Loading