Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9bec6b47 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 12704382 from d38e45cb to 25Q1-release

Change-Id: Icbd9673bddcffb0a854e4044f1baef9517041a3a
parents 3f784cf2 d38e45cb
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -13225,8 +13225,8 @@ package android.content.pm {
  public abstract class PackageManager {
    ctor @Deprecated public PackageManager();
    method @Deprecated public abstract void addPackageToPreferred(@NonNull String);
    method public abstract boolean addPermission(@NonNull android.content.pm.PermissionInfo);
    method public abstract boolean addPermissionAsync(@NonNull android.content.pm.PermissionInfo);
    method @Deprecated @FlaggedApi("android.permission.flags.permission_tree_apis_deprecated") public abstract boolean addPermission(@NonNull android.content.pm.PermissionInfo);
    method @Deprecated @FlaggedApi("android.permission.flags.permission_tree_apis_deprecated") public abstract boolean addPermissionAsync(@NonNull android.content.pm.PermissionInfo);
    method @Deprecated public abstract void addPreferredActivity(@NonNull android.content.IntentFilter, int, @Nullable android.content.ComponentName[], @NonNull android.content.ComponentName);
    method @RequiresPermission(value="android.permission.WHITELIST_RESTRICTED_PERMISSIONS", conditional=true) public boolean addWhitelistedRestrictedPermission(@NonNull String, @NonNull String, int);
    method public boolean canPackageQuery(@NonNull String, @NonNull String) throws android.content.pm.PackageManager.NameNotFoundException;
@@ -13367,7 +13367,7 @@ package android.content.pm {
    method @NonNull public java.util.List<android.content.pm.PackageManager.Property> queryServiceProperty(@NonNull String);
    method public void relinquishUpdateOwnership(@NonNull String);
    method @Deprecated public abstract void removePackageFromPreferred(@NonNull String);
    method public abstract void removePermission(@NonNull String);
    method @Deprecated @FlaggedApi("android.permission.flags.permission_tree_apis_deprecated") public abstract void removePermission(@NonNull String);
    method @RequiresPermission(value="android.permission.WHITELIST_RESTRICTED_PERMISSIONS", conditional=true) public boolean removeWhitelistedRestrictedPermission(@NonNull String, @NonNull String, int);
    method public void requestChecksums(@NonNull String, boolean, int, @NonNull java.util.List<java.security.cert.Certificate>, @NonNull android.content.pm.PackageManager.OnChecksumsReadyListener) throws java.security.cert.CertificateEncodingException, android.content.pm.PackageManager.NameNotFoundException;
    method @Nullable public abstract android.content.pm.ResolveInfo resolveActivity(@NonNull android.content.Intent, int);
+2 −1
Original line number Diff line number Diff line
@@ -7637,10 +7637,11 @@ package android.media {
    method public boolean isActive();
    method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public boolean isMuted();
    method public boolean isSpatialized();
    field @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int MUTED_BY_APP_OPS = 8; // 0x8
    field @Deprecated @FlaggedApi("android.media.audio.muted_by_port_volume_api") @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int MUTED_BY_APP_OPS = 8; // 0x8
    field @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int MUTED_BY_CLIENT_VOLUME = 16; // 0x10
    field @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int MUTED_BY_MASTER = 1; // 0x1
    field @FlaggedApi("android.media.audio.muted_by_port_volume_api") @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int MUTED_BY_OP_CONTROL_AUDIO = 128; // 0x80
    field @FlaggedApi("android.media.audio.muted_by_port_volume_api") @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int MUTED_BY_OP_PLAY_AUDIO = 8; // 0x8
    field @FlaggedApi("android.media.audio.muted_by_port_volume_api") @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int MUTED_BY_PORT_VOLUME = 64; // 0x40
    field @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int MUTED_BY_STREAM_MUTED = 4; // 0x4
    field @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public static final int MUTED_BY_STREAM_VOLUME = 2; // 0x2
+27 −1
Original line number Diff line number Diff line
@@ -130,7 +130,6 @@ import android.util.Slog;
import android.util.Xml;

import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.Immutable;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.os.SomeArgs;
import com.android.internal.pm.RoSystemFeatures;
@@ -1020,6 +1019,33 @@ public class ApplicationPackageManager extends PackageManager {
        }
    }

    @Override
    public void setPageSizeAppCompatFlagsSettingsOverride(String packageName, boolean enabled) {
        try {
            mPM.setPageSizeAppCompatFlagsSettingsOverride(packageName, enabled);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    @Override
    public boolean isPageSizeCompatEnabled(String packageName) {
        try {
            return mPM.isPageSizeCompatEnabled(packageName);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    @Override
    public String getPageSizeCompatWarningMessage(String packageName) {
        try {
            return mPM.getPageSizeCompatWarningMessage(packageName);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    private static List<byte[]> encodeCertificates(List<Certificate> certs) throws
            CertificateEncodingException {
        if (certs == null) {
+104 −1
Original line number Diff line number Diff line
@@ -1449,6 +1449,97 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
        }
    }

    /**
     * Use this to report any errors during alignment checks
     *
     * @hide
     */
    public static final int PAGE_SIZE_APP_COMPAT_FLAG_ERROR = -1;

    /**
     * Initial value for mPageSizeAppCompatFlags
     *
     * @hide
     */
    public static final int PAGE_SIZE_APP_COMPAT_FLAG_UNDEFINED = 0;

    /**
     * if set, extract libs forcefully for 16 KB device and show warning dialog.
     *
     * @hide
     */
    public static final int PAGE_SIZE_APP_COMPAT_FLAG_UNCOMPRESSED_LIBS_NOT_ALIGNED = 1 << 1;

    /**
     * if set, load 4 KB aligned ELFs on 16 KB device in compat mode and show warning dialog.
     *
     * @hide
     */
    public static final int PAGE_SIZE_APP_COMPAT_FLAG_ELF_NOT_ALIGNED = 1 << 2;

    /**
     * Run in 16 KB app compat mode. This flag will be set explicitly through settings. If set, 16
     * KB app compat warning dialogs will still show up.
     *
     * @hide
     */
    public static final int PAGE_SIZE_APP_COMPAT_FLAG_SETTINGS_OVERRIDE_ENABLED = 1 << 3;

    /**
     * Disable 16 KB app compat mode through settings. It should only affect ELF loading as app is
     * already installed.
     *
     * @hide
     */
    public static final int PAGE_SIZE_APP_COMPAT_FLAG_SETTINGS_OVERRIDE_DISABLED = 1 << 4;

    /**
     * Run in 16 KB app compat mode. This flag will be set explicitly through manifest. If set, hide
     * the 16 KB app compat warning dialogs. This has the highest priority to enable compat mode.
     *
     * @hide
     */
    public static final int PAGE_SIZE_APP_COMPAT_FLAG_MANIFEST_OVERRIDE_ENABLED = 1 << 5;

    /**
     * Disable 16 KB app compat mode. This has the highest priority to disable compat mode.
     *
     * @hide
     */
    public static final int PAGE_SIZE_APP_COMPAT_FLAG_MANIFEST_OVERRIDE_DISABLED = 1 << 6;

    /**
     * Max value for page size app compat
     *
     * @hide
     */
    public static final int PAGE_SIZE_APP_COMPAT_FLAG_MAX = 1 << 7;

    /**
     * 16 KB app compat status for the app. App can have native shared libs which are not page
     * aligned, LOAD segments inside the shared libs have to be page aligned. Apps can specify the
     * override in manifest file as well.
     */
    private @PageSizeAppCompatFlags int mPageSizeAppCompatFlags =
            ApplicationInfo.PAGE_SIZE_APP_COMPAT_FLAG_UNDEFINED;

    /** {@hide} */
    @IntDef(
            prefix = {"PAGE_SIZE_APP_COMPAT_FLAG_"},
            value = {
                PAGE_SIZE_APP_COMPAT_FLAG_ERROR,
                PAGE_SIZE_APP_COMPAT_FLAG_UNDEFINED,
                PAGE_SIZE_APP_COMPAT_FLAG_UNCOMPRESSED_LIBS_NOT_ALIGNED,
                PAGE_SIZE_APP_COMPAT_FLAG_ELF_NOT_ALIGNED,
                PAGE_SIZE_APP_COMPAT_FLAG_MANIFEST_OVERRIDE_ENABLED,
                PAGE_SIZE_APP_COMPAT_FLAG_MANIFEST_OVERRIDE_DISABLED,
                PAGE_SIZE_APP_COMPAT_FLAG_SETTINGS_OVERRIDE_ENABLED,
                PAGE_SIZE_APP_COMPAT_FLAG_SETTINGS_OVERRIDE_DISABLED,
                PAGE_SIZE_APP_COMPAT_FLAG_MAX,
            })
    @Retention(RetentionPolicy.SOURCE)
    public @interface PageSizeAppCompatFlags {}

    /** @hide */
    public String classLoaderName;

@@ -1777,7 +1868,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
            pw.println(prefix + "enableOnBackInvokedCallback=" + isOnBackInvokedCallbackEnabled());
            pw.println(prefix + "allowCrossUidActivitySwitchFromBelow="
                    + allowCrossUidActivitySwitchFromBelow);

            pw.println(prefix + "mPageSizeAppCompatFlags=" + mPageSizeAppCompatFlags);
        }
        pw.println(prefix + "createTimestamp=" + createTimestamp);
        if (mKnownActivityEmbeddingCerts != null) {
@@ -1897,6 +1988,10 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
            }
            proto.write(ApplicationInfoProto.Detail.ALLOW_CROSS_UID_ACTIVITY_SWITCH_FROM_BELOW,
                    allowCrossUidActivitySwitchFromBelow);

            proto.write(ApplicationInfoProto.Detail.ENABLE_PAGE_SIZE_APP_COMPAT,
                        mPageSizeAppCompatFlags);

            proto.end(detailToken);
        }
        if (!ArrayUtils.isEmpty(mKnownActivityEmbeddingCerts)) {
@@ -2024,6 +2119,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
        localeConfigRes = orig.localeConfigRes;
        allowCrossUidActivitySwitchFromBelow = orig.allowCrossUidActivitySwitchFromBelow;
        createTimestamp = SystemClock.uptimeMillis();
        mPageSizeAppCompatFlags = orig.mPageSizeAppCompatFlags;
    }

    public String toString() {
@@ -2128,6 +2224,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
        }
        dest.writeInt(localeConfigRes);
        dest.writeInt(allowCrossUidActivitySwitchFromBelow ? 1 : 0);
        dest.writeInt(mPageSizeAppCompatFlags);

        sForStringSet.parcel(mKnownActivityEmbeddingCerts, dest, flags);
    }
@@ -2228,6 +2325,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
        }
        localeConfigRes = source.readInt();
        allowCrossUidActivitySwitchFromBelow = source.readInt() != 0;
        mPageSizeAppCompatFlags = source.readInt();

        mKnownActivityEmbeddingCerts = sForStringSet.unparcel(source);
        if (mKnownActivityEmbeddingCerts.isEmpty()) {
@@ -2765,6 +2863,11 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
        requestRawExternalStorageAccess = value;
    }

    /** {@hide} */
    public void setPageSizeAppCompatFlags(@PageSizeAppCompatFlags int value) {
        mPageSizeAppCompatFlags |= value;
    }

    /**
     * Replaces {@link #mAppClassNamesByProcess}. This takes over the ownership of the passed map.
     * Do not modify the argument at the callsite.
+8 −0
Original line number Diff line number Diff line
@@ -848,4 +848,12 @@ interface IPackageManager {
    int getAppMetadataSource(String packageName, int userId);

    ComponentName getDomainVerificationAgent(int userId);

    void setPageSizeAppCompatFlagsSettingsOverride(in String packageName, boolean enabled);

    boolean isPageSizeCompatEnabled(in String packageName);

    String getPageSizeCompatWarningMessage(in String packageName);

    List<String> getAllApexDirectories();
}
Loading