Loading api/current.txt +0 −8 Original line number Diff line number Diff line Loading @@ -9488,8 +9488,6 @@ package android.content.pm { method public abstract int getComponentEnabledSetting(android.content.ComponentName); method public abstract android.graphics.drawable.Drawable getDefaultActivityIcon(); method public abstract android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract byte[] getEphemeralCookie(); method public abstract int getEphemeralCookieMaxSizeBytes(); method public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public abstract java.lang.String getInstallerPackageName(java.lang.String); Loading Loading @@ -9523,7 +9521,6 @@ package android.content.pm { method public abstract java.lang.CharSequence getUserBadgedLabel(java.lang.CharSequence, android.os.UserHandle); method public abstract android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract boolean hasSystemFeature(java.lang.String); method public abstract boolean isEphemeralApplication(); method public abstract boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public abstract boolean isSafeMode(); method public abstract java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int); Loading @@ -9541,7 +9538,6 @@ package android.content.pm { method public abstract android.content.pm.ResolveInfo resolveService(android.content.Intent, int); method public abstract void setApplicationEnabledSetting(java.lang.String, int, int); method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int); method public abstract boolean setEphemeralCookie(byte[]); method public abstract void setInstallerPackageName(java.lang.String, java.lang.String); method public abstract void verifyPendingInstall(int, int); field public static final int COMPONENT_ENABLED_STATE_DEFAULT = 0; // 0x0 Loading Loading @@ -36841,8 +36837,6 @@ package android.test.mock { method public int getComponentEnabledSetting(android.content.ComponentName); method public android.graphics.drawable.Drawable getDefaultActivityIcon(); method public android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public byte[] getEphemeralCookie(); method public int getEphemeralCookieMaxSizeBytes(); method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public java.lang.String getInstallerPackageName(java.lang.String); Loading Loading @@ -36875,7 +36869,6 @@ package android.test.mock { method public java.lang.CharSequence getUserBadgedLabel(java.lang.CharSequence, android.os.UserHandle); method public android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public boolean hasSystemFeature(java.lang.String); method public boolean isEphemeralApplication(); method public boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public boolean isSafeMode(); method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int); Loading @@ -36893,7 +36886,6 @@ package android.test.mock { method public android.content.pm.ResolveInfo resolveService(android.content.Intent, int); method public void setApplicationEnabledSetting(java.lang.String, int, int); method public void setComponentEnabledSetting(android.content.ComponentName, int, int); method public boolean setEphemeralCookie(byte[]); method public void setInstallerPackageName(java.lang.String, java.lang.String); method public void verifyPendingInstall(int, int); } api/system-current.txt +0 −8 Original line number Diff line number Diff line Loading @@ -9790,8 +9790,6 @@ package android.content.pm { method public abstract int getComponentEnabledSetting(android.content.ComponentName); method public abstract android.graphics.drawable.Drawable getDefaultActivityIcon(); method public abstract android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract byte[] getEphemeralCookie(); method public abstract int getEphemeralCookieMaxSizeBytes(); method public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public abstract java.lang.String getInstallerPackageName(java.lang.String); Loading Loading @@ -9827,7 +9825,6 @@ package android.content.pm { method public abstract android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); method public abstract boolean hasSystemFeature(java.lang.String); method public abstract boolean isEphemeralApplication(); method public abstract boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public abstract boolean isSafeMode(); method public abstract java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int); Loading @@ -9847,7 +9844,6 @@ package android.content.pm { method public abstract void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); method public abstract void setApplicationEnabledSetting(java.lang.String, int, int); method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int); method public abstract boolean setEphemeralCookie(byte[]); method public abstract void setInstallerPackageName(java.lang.String, java.lang.String); method public abstract void updatePermissionFlags(java.lang.String, java.lang.String, int, int, android.os.UserHandle); method public abstract void verifyIntentFilter(int, int, java.util.List<java.lang.String>); Loading Loading @@ -39184,8 +39180,6 @@ package android.test.mock { method public int getComponentEnabledSetting(android.content.ComponentName); method public android.graphics.drawable.Drawable getDefaultActivityIcon(); method public android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public byte[] getEphemeralCookie(); method public int getEphemeralCookieMaxSizeBytes(); method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public java.lang.String getInstallerPackageName(java.lang.String); Loading Loading @@ -39220,7 +39214,6 @@ package android.test.mock { method public android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); method public boolean hasSystemFeature(java.lang.String); method public boolean isEphemeralApplication(); method public boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public boolean isSafeMode(); method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int); Loading @@ -39240,7 +39233,6 @@ package android.test.mock { method public void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); method public void setApplicationEnabledSetting(java.lang.String, int, int); method public void setComponentEnabledSetting(android.content.ComponentName, int, int); method public boolean setEphemeralCookie(byte[]); method public void setInstallerPackageName(java.lang.String, java.lang.String); method public void updatePermissionFlags(java.lang.String, java.lang.String, int, int, android.os.UserHandle); method public void verifyIntentFilter(int, int, java.util.List<java.lang.String>); api/test-current.txt +0 −8 Original line number Diff line number Diff line Loading @@ -9496,8 +9496,6 @@ package android.content.pm { method public abstract android.graphics.drawable.Drawable getDefaultActivityIcon(); method public abstract java.lang.String getDefaultBrowserPackageNameAsUser(int); method public abstract android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract byte[] getEphemeralCookie(); method public abstract int getEphemeralCookieMaxSizeBytes(); method public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public abstract java.lang.String getInstallerPackageName(java.lang.String); Loading Loading @@ -9531,7 +9529,6 @@ package android.content.pm { method public abstract java.lang.CharSequence getUserBadgedLabel(java.lang.CharSequence, android.os.UserHandle); method public abstract android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract boolean hasSystemFeature(java.lang.String); method public abstract boolean isEphemeralApplication(); method public abstract boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public abstract boolean isSafeMode(); method public abstract java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int); Loading @@ -9549,7 +9546,6 @@ package android.content.pm { method public abstract android.content.pm.ResolveInfo resolveService(android.content.Intent, int); method public abstract void setApplicationEnabledSetting(java.lang.String, int, int); method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int); method public abstract boolean setEphemeralCookie(byte[]); method public abstract void setInstallerPackageName(java.lang.String, java.lang.String); method public abstract void verifyPendingInstall(int, int); field public static final int COMPONENT_ENABLED_STATE_DEFAULT = 0; // 0x0 Loading Loading @@ -36857,8 +36853,6 @@ package android.test.mock { method public android.graphics.drawable.Drawable getDefaultActivityIcon(); method public java.lang.String getDefaultBrowserPackageNameAsUser(int); method public android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public byte[] getEphemeralCookie(); method public int getEphemeralCookieMaxSizeBytes(); method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public java.lang.String getInstallerPackageName(java.lang.String); Loading Loading @@ -36891,7 +36885,6 @@ package android.test.mock { method public java.lang.CharSequence getUserBadgedLabel(java.lang.CharSequence, android.os.UserHandle); method public android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public boolean hasSystemFeature(java.lang.String); method public boolean isEphemeralApplication(); method public boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public boolean isSafeMode(); method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int); Loading @@ -36909,7 +36902,6 @@ package android.test.mock { method public android.content.pm.ResolveInfo resolveService(android.content.Intent, int); method public void setApplicationEnabledSetting(java.lang.String, int, int); method public void setComponentEnabledSetting(android.content.ComponentName, int, int); method public boolean setEphemeralCookie(byte[]); method public void setInstallerPackageName(java.lang.String, java.lang.String); method public void verifyPendingInstall(int, int); } core/java/android/content/pm/PackageManager.java +8 −0 Original line number Diff line number Diff line Loading @@ -3258,6 +3258,8 @@ public abstract class PackageManager { * @see #setEphemeralCookie(byte[]) * @see #getEphemeralCookie() * @see #getEphemeralCookieMaxSizeBytes() * * @hide */ public abstract boolean isEphemeralApplication(); Loading @@ -3270,6 +3272,8 @@ public abstract class PackageManager { * @see #isEphemeralApplication() * @see #setEphemeralCookie(byte[]) * @see #getEphemeralCookie() * * @hide */ public abstract int getEphemeralCookieMaxSizeBytes(); Loading @@ -3286,6 +3290,8 @@ public abstract class PackageManager { * @see #isEphemeralApplication() * @see #setEphemeralCookie(byte[]) * @see #getEphemeralCookieMaxSizeBytes() * * @hide */ public abstract @NonNull byte[] getEphemeralCookie(); Loading @@ -3304,6 +3310,8 @@ public abstract class PackageManager { * @see #isEphemeralApplication() * @see #getEphemeralCookieMaxSizeBytes() * @see #getEphemeralCookie() * * @hide */ public abstract boolean setEphemeralCookie(@NonNull byte[] cookie); Loading services/core/java/com/android/server/pm/PackageManagerService.java +25 −0 Original line number Diff line number Diff line Loading @@ -318,6 +318,8 @@ public class PackageManagerService extends IPackageManager.Stub { static final boolean CLEAR_RUNTIME_PERMISSIONS_ON_UPGRADE = false; private static final boolean DISABLE_EPHEMERAL_APPS = true; private static final int RADIO_UID = Process.PHONE_UID; private static final int LOG_UID = Process.LOG_UID; private static final int NFC_UID = Process.NFC_UID; Loading Loading @@ -4469,6 +4471,9 @@ public class PackageManagerService extends IPackageManager.Stub { private boolean isEphemeralAllowed( Intent intent, List<ResolveInfo> resolvedActivites, int userId) { // Short circuit and return early if possible. if (DISABLE_EPHEMERAL_APPS) { return false; } final int callingUser = UserHandle.getCallingUserId(); if (callingUser != UserHandle.USER_SYSTEM) { return false; Loading Loading @@ -5803,6 +5808,10 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public ParceledListSlice<EphemeralApplicationInfo> getEphemeralApplications(int userId) { if (DISABLE_EPHEMERAL_APPS) { return null; } mContext.enforceCallingOrSelfPermission(Manifest.permission.ACCESS_EPHEMERAL_APPS, "getEphemeralApplications"); enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, Loading @@ -5821,6 +5830,10 @@ public class PackageManagerService extends IPackageManager.Stub { public boolean isEphemeralApplication(String packageName, int userId) { enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, "isEphemeral"); if (DISABLE_EPHEMERAL_APPS) { return false; } if (!isCallerSameApp(packageName)) { return false; } Loading @@ -5835,6 +5848,10 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public byte[] getEphemeralApplicationCookie(String packageName, int userId) { if (DISABLE_EPHEMERAL_APPS) { return null; } enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, "getCookie"); if (!isCallerSameApp(packageName)) { Loading @@ -5848,6 +5865,10 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public boolean setEphemeralApplicationCookie(String packageName, byte[] cookie, int userId) { if (DISABLE_EPHEMERAL_APPS) { return true; } enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, "setCookie"); if (!isCallerSameApp(packageName)) { Loading @@ -5861,6 +5882,10 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public Bitmap getEphemeralApplicationIcon(String packageName, int userId) { if (DISABLE_EPHEMERAL_APPS) { return null; } mContext.enforceCallingOrSelfPermission(Manifest.permission.ACCESS_EPHEMERAL_APPS, "getEphemeralApplicationIcon"); enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, Loading Loading
api/current.txt +0 −8 Original line number Diff line number Diff line Loading @@ -9488,8 +9488,6 @@ package android.content.pm { method public abstract int getComponentEnabledSetting(android.content.ComponentName); method public abstract android.graphics.drawable.Drawable getDefaultActivityIcon(); method public abstract android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract byte[] getEphemeralCookie(); method public abstract int getEphemeralCookieMaxSizeBytes(); method public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public abstract java.lang.String getInstallerPackageName(java.lang.String); Loading Loading @@ -9523,7 +9521,6 @@ package android.content.pm { method public abstract java.lang.CharSequence getUserBadgedLabel(java.lang.CharSequence, android.os.UserHandle); method public abstract android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract boolean hasSystemFeature(java.lang.String); method public abstract boolean isEphemeralApplication(); method public abstract boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public abstract boolean isSafeMode(); method public abstract java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int); Loading @@ -9541,7 +9538,6 @@ package android.content.pm { method public abstract android.content.pm.ResolveInfo resolveService(android.content.Intent, int); method public abstract void setApplicationEnabledSetting(java.lang.String, int, int); method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int); method public abstract boolean setEphemeralCookie(byte[]); method public abstract void setInstallerPackageName(java.lang.String, java.lang.String); method public abstract void verifyPendingInstall(int, int); field public static final int COMPONENT_ENABLED_STATE_DEFAULT = 0; // 0x0 Loading Loading @@ -36841,8 +36837,6 @@ package android.test.mock { method public int getComponentEnabledSetting(android.content.ComponentName); method public android.graphics.drawable.Drawable getDefaultActivityIcon(); method public android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public byte[] getEphemeralCookie(); method public int getEphemeralCookieMaxSizeBytes(); method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public java.lang.String getInstallerPackageName(java.lang.String); Loading Loading @@ -36875,7 +36869,6 @@ package android.test.mock { method public java.lang.CharSequence getUserBadgedLabel(java.lang.CharSequence, android.os.UserHandle); method public android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public boolean hasSystemFeature(java.lang.String); method public boolean isEphemeralApplication(); method public boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public boolean isSafeMode(); method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int); Loading @@ -36893,7 +36886,6 @@ package android.test.mock { method public android.content.pm.ResolveInfo resolveService(android.content.Intent, int); method public void setApplicationEnabledSetting(java.lang.String, int, int); method public void setComponentEnabledSetting(android.content.ComponentName, int, int); method public boolean setEphemeralCookie(byte[]); method public void setInstallerPackageName(java.lang.String, java.lang.String); method public void verifyPendingInstall(int, int); }
api/system-current.txt +0 −8 Original line number Diff line number Diff line Loading @@ -9790,8 +9790,6 @@ package android.content.pm { method public abstract int getComponentEnabledSetting(android.content.ComponentName); method public abstract android.graphics.drawable.Drawable getDefaultActivityIcon(); method public abstract android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract byte[] getEphemeralCookie(); method public abstract int getEphemeralCookieMaxSizeBytes(); method public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public abstract java.lang.String getInstallerPackageName(java.lang.String); Loading Loading @@ -9827,7 +9825,6 @@ package android.content.pm { method public abstract android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); method public abstract boolean hasSystemFeature(java.lang.String); method public abstract boolean isEphemeralApplication(); method public abstract boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public abstract boolean isSafeMode(); method public abstract java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int); Loading @@ -9847,7 +9844,6 @@ package android.content.pm { method public abstract void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); method public abstract void setApplicationEnabledSetting(java.lang.String, int, int); method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int); method public abstract boolean setEphemeralCookie(byte[]); method public abstract void setInstallerPackageName(java.lang.String, java.lang.String); method public abstract void updatePermissionFlags(java.lang.String, java.lang.String, int, int, android.os.UserHandle); method public abstract void verifyIntentFilter(int, int, java.util.List<java.lang.String>); Loading Loading @@ -39184,8 +39180,6 @@ package android.test.mock { method public int getComponentEnabledSetting(android.content.ComponentName); method public android.graphics.drawable.Drawable getDefaultActivityIcon(); method public android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public byte[] getEphemeralCookie(); method public int getEphemeralCookieMaxSizeBytes(); method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public java.lang.String getInstallerPackageName(java.lang.String); Loading Loading @@ -39220,7 +39214,6 @@ package android.test.mock { method public android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); method public boolean hasSystemFeature(java.lang.String); method public boolean isEphemeralApplication(); method public boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public boolean isSafeMode(); method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int); Loading @@ -39240,7 +39233,6 @@ package android.test.mock { method public void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); method public void setApplicationEnabledSetting(java.lang.String, int, int); method public void setComponentEnabledSetting(android.content.ComponentName, int, int); method public boolean setEphemeralCookie(byte[]); method public void setInstallerPackageName(java.lang.String, java.lang.String); method public void updatePermissionFlags(java.lang.String, java.lang.String, int, int, android.os.UserHandle); method public void verifyIntentFilter(int, int, java.util.List<java.lang.String>);
api/test-current.txt +0 −8 Original line number Diff line number Diff line Loading @@ -9496,8 +9496,6 @@ package android.content.pm { method public abstract android.graphics.drawable.Drawable getDefaultActivityIcon(); method public abstract java.lang.String getDefaultBrowserPackageNameAsUser(int); method public abstract android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract byte[] getEphemeralCookie(); method public abstract int getEphemeralCookieMaxSizeBytes(); method public abstract java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public abstract java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public abstract java.lang.String getInstallerPackageName(java.lang.String); Loading Loading @@ -9531,7 +9529,6 @@ package android.content.pm { method public abstract java.lang.CharSequence getUserBadgedLabel(java.lang.CharSequence, android.os.UserHandle); method public abstract android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract boolean hasSystemFeature(java.lang.String); method public abstract boolean isEphemeralApplication(); method public abstract boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public abstract boolean isSafeMode(); method public abstract java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int); Loading @@ -9549,7 +9546,6 @@ package android.content.pm { method public abstract android.content.pm.ResolveInfo resolveService(android.content.Intent, int); method public abstract void setApplicationEnabledSetting(java.lang.String, int, int); method public abstract void setComponentEnabledSetting(android.content.ComponentName, int, int); method public abstract boolean setEphemeralCookie(byte[]); method public abstract void setInstallerPackageName(java.lang.String, java.lang.String); method public abstract void verifyPendingInstall(int, int); field public static final int COMPONENT_ENABLED_STATE_DEFAULT = 0; // 0x0 Loading Loading @@ -36857,8 +36853,6 @@ package android.test.mock { method public android.graphics.drawable.Drawable getDefaultActivityIcon(); method public java.lang.String getDefaultBrowserPackageNameAsUser(int); method public android.graphics.drawable.Drawable getDrawable(java.lang.String, int, android.content.pm.ApplicationInfo); method public byte[] getEphemeralCookie(); method public int getEphemeralCookieMaxSizeBytes(); method public java.util.List<android.content.pm.ApplicationInfo> getInstalledApplications(int); method public java.util.List<android.content.pm.PackageInfo> getInstalledPackages(int); method public java.lang.String getInstallerPackageName(java.lang.String); Loading Loading @@ -36891,7 +36885,6 @@ package android.test.mock { method public java.lang.CharSequence getUserBadgedLabel(java.lang.CharSequence, android.os.UserHandle); method public android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public boolean hasSystemFeature(java.lang.String); method public boolean isEphemeralApplication(); method public boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public boolean isSafeMode(); method public java.util.List<android.content.pm.ResolveInfo> queryBroadcastReceivers(android.content.Intent, int); Loading @@ -36909,7 +36902,6 @@ package android.test.mock { method public android.content.pm.ResolveInfo resolveService(android.content.Intent, int); method public void setApplicationEnabledSetting(java.lang.String, int, int); method public void setComponentEnabledSetting(android.content.ComponentName, int, int); method public boolean setEphemeralCookie(byte[]); method public void setInstallerPackageName(java.lang.String, java.lang.String); method public void verifyPendingInstall(int, int); }
core/java/android/content/pm/PackageManager.java +8 −0 Original line number Diff line number Diff line Loading @@ -3258,6 +3258,8 @@ public abstract class PackageManager { * @see #setEphemeralCookie(byte[]) * @see #getEphemeralCookie() * @see #getEphemeralCookieMaxSizeBytes() * * @hide */ public abstract boolean isEphemeralApplication(); Loading @@ -3270,6 +3272,8 @@ public abstract class PackageManager { * @see #isEphemeralApplication() * @see #setEphemeralCookie(byte[]) * @see #getEphemeralCookie() * * @hide */ public abstract int getEphemeralCookieMaxSizeBytes(); Loading @@ -3286,6 +3290,8 @@ public abstract class PackageManager { * @see #isEphemeralApplication() * @see #setEphemeralCookie(byte[]) * @see #getEphemeralCookieMaxSizeBytes() * * @hide */ public abstract @NonNull byte[] getEphemeralCookie(); Loading @@ -3304,6 +3310,8 @@ public abstract class PackageManager { * @see #isEphemeralApplication() * @see #getEphemeralCookieMaxSizeBytes() * @see #getEphemeralCookie() * * @hide */ public abstract boolean setEphemeralCookie(@NonNull byte[] cookie); Loading
services/core/java/com/android/server/pm/PackageManagerService.java +25 −0 Original line number Diff line number Diff line Loading @@ -318,6 +318,8 @@ public class PackageManagerService extends IPackageManager.Stub { static final boolean CLEAR_RUNTIME_PERMISSIONS_ON_UPGRADE = false; private static final boolean DISABLE_EPHEMERAL_APPS = true; private static final int RADIO_UID = Process.PHONE_UID; private static final int LOG_UID = Process.LOG_UID; private static final int NFC_UID = Process.NFC_UID; Loading Loading @@ -4469,6 +4471,9 @@ public class PackageManagerService extends IPackageManager.Stub { private boolean isEphemeralAllowed( Intent intent, List<ResolveInfo> resolvedActivites, int userId) { // Short circuit and return early if possible. if (DISABLE_EPHEMERAL_APPS) { return false; } final int callingUser = UserHandle.getCallingUserId(); if (callingUser != UserHandle.USER_SYSTEM) { return false; Loading Loading @@ -5803,6 +5808,10 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public ParceledListSlice<EphemeralApplicationInfo> getEphemeralApplications(int userId) { if (DISABLE_EPHEMERAL_APPS) { return null; } mContext.enforceCallingOrSelfPermission(Manifest.permission.ACCESS_EPHEMERAL_APPS, "getEphemeralApplications"); enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, Loading @@ -5821,6 +5830,10 @@ public class PackageManagerService extends IPackageManager.Stub { public boolean isEphemeralApplication(String packageName, int userId) { enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, "isEphemeral"); if (DISABLE_EPHEMERAL_APPS) { return false; } if (!isCallerSameApp(packageName)) { return false; } Loading @@ -5835,6 +5848,10 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public byte[] getEphemeralApplicationCookie(String packageName, int userId) { if (DISABLE_EPHEMERAL_APPS) { return null; } enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, "getCookie"); if (!isCallerSameApp(packageName)) { Loading @@ -5848,6 +5865,10 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public boolean setEphemeralApplicationCookie(String packageName, byte[] cookie, int userId) { if (DISABLE_EPHEMERAL_APPS) { return true; } enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, "setCookie"); if (!isCallerSameApp(packageName)) { Loading @@ -5861,6 +5882,10 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public Bitmap getEphemeralApplicationIcon(String packageName, int userId) { if (DISABLE_EPHEMERAL_APPS) { return null; } mContext.enforceCallingOrSelfPermission(Manifest.permission.ACCESS_EPHEMERAL_APPS, "getEphemeralApplicationIcon"); enforceCrossUserPermission(Binder.getCallingUid(), userId, true, false, Loading