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

Commit 39472903 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker Committed by Anis Assi
Browse files

Merge cherrypicks of [15800618, 15800895, 15800896, 15800898, 15800900,...

Merge cherrypicks of [15800618, 15800895, 15800896, 15800898, 15800900, 15800902, 15800904, 15800906, 15800675, 15800677, 15800968, 15800798, 15800799, 15800801] into security-aosp-rvc-release

Change-Id: I5ee7ecc2ea2216aaf2cff64740c8638ed74c9e12
parents 846d7ecc fb173a02
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1081,7 +1081,10 @@ public final class BluetoothDevice implements Parcelable {
            if (alias == null) {
                return getName();
            }
            return alias;
            return alias
                    .replace('\t', ' ')
                    .replace('\n', ' ')
                    .replace('\r', ' ');
        } catch (RemoteException e) {
            Log.e(TAG, "", e);
        }
+3 −3
Original line number Diff line number Diff line
@@ -1005,7 +1005,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
        sForInternedStringList.parcel(this.requestedPermissions, dest, flags);
        sForInternedStringList.parcel(this.implicitPermissions, dest, flags);
        sForStringSet.parcel(this.upgradeKeySets, dest, flags);
        dest.writeMap(this.keySetMapping);
        ParsingPackageUtils.writeKeySetMapping(dest, this.keySetMapping);
        sForInternedStringList.parcel(this.protectedBroadcasts, dest, flags);
        dest.writeTypedList(this.activities);
        dest.writeTypedList(this.receivers);
@@ -1024,7 +1024,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
        dest.writeBoolean(this.use32BitAbi);
        dest.writeBoolean(this.visibleToInstantApps);
        dest.writeBoolean(this.forceQueryable);
        dest.writeParcelableList(this.queriesIntents, flags);
        dest.writeTypedList(this.queriesIntents, flags);
        sForInternedStringList.parcel(this.queriesPackages, dest, flags);
        dest.writeString(this.appComponentFactory);
        dest.writeString(this.backupAgentName);
@@ -1166,7 +1166,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable {
        this.requestedPermissions = sForInternedStringList.unparcel(in);
        this.implicitPermissions = sForInternedStringList.unparcel(in);
        this.upgradeKeySets = sForStringSet.unparcel(in);
        this.keySetMapping = in.readHashMap(boot);
        this.keySetMapping = ParsingPackageUtils.readKeySetMapping(in);
        this.protectedBroadcasts = sForInternedStringList.unparcel(in);

        this.activities = in.createTypedArrayList(ParsedActivity.CREATOR);
+63 −0
Original line number Diff line number Diff line
@@ -84,6 +84,7 @@ import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.FileUtils;
import android.os.Parcel;
import android.os.RemoteException;
import android.os.Trace;
import android.os.ext.SdkExtensions;
@@ -2834,6 +2835,68 @@ public class ParsingPackageUtils {
        return sa.getNonResourceString(index);
    }

    /**
     * Writes the keyset mapping to the provided package. {@code null} mappings are permitted.
     */
    public static void writeKeySetMapping(@NonNull Parcel dest,
            @NonNull Map<String, ArraySet<PublicKey>> keySetMapping) {
        if (keySetMapping == null) {
            dest.writeInt(-1);
            return;
        }

        final int N = keySetMapping.size();
        dest.writeInt(N);

        for (String key : keySetMapping.keySet()) {
            dest.writeString(key);
            ArraySet<PublicKey> keys = keySetMapping.get(key);
            if (keys == null) {
                dest.writeInt(-1);
                continue;
            }

            final int M = keys.size();
            dest.writeInt(M);
            for (int j = 0; j < M; j++) {
                dest.writeSerializable(keys.valueAt(j));
            }
        }
    }

    /**
     * Reads a keyset mapping from the given parcel at the given data position. May return
     * {@code null} if the serialized mapping was {@code null}.
     */
    @NonNull
    public static ArrayMap<String, ArraySet<PublicKey>> readKeySetMapping(@NonNull Parcel in) {
        final int N = in.readInt();
        if (N == -1) {
            return null;
        }

        ArrayMap<String, ArraySet<PublicKey>> keySetMapping = new ArrayMap<>();
        for (int i = 0; i < N; ++i) {
            String key = in.readString();
            final int M = in.readInt();
            if (M == -1) {
                keySetMapping.put(key, null);
                continue;
            }

            ArraySet<PublicKey> keys = new ArraySet<>(M);
            for (int j = 0; j < M; ++j) {
                PublicKey pk = (PublicKey) in.readSerializable();
                keys.add(pk);
            }

            keySetMapping.put(key, keys);
        }

        return keySetMapping;
    }


    /**
     * Callback interface for retrieving information that may be needed while parsing
     * a package.
+1 −7
Original line number Diff line number Diff line
@@ -631,13 +631,7 @@ public final class OutputConfiguration implements Parcelable {
            new Parcelable.Creator<OutputConfiguration>() {
        @Override
        public OutputConfiguration createFromParcel(Parcel source) {
            try {
                OutputConfiguration outputConfiguration = new OutputConfiguration(source);
                return outputConfiguration;
            } catch (Exception e) {
                Log.e(TAG, "Exception creating OutputConfiguration from parcel", e);
                return null;
            }
            return new OutputConfiguration(source);
        }

        @Override
+1 −7
Original line number Diff line number Diff line
@@ -143,13 +143,7 @@ public final class SessionConfiguration implements Parcelable {
            new Parcelable.Creator<SessionConfiguration> () {
        @Override
        public SessionConfiguration createFromParcel(Parcel source) {
            try {
                SessionConfiguration sessionConfiguration = new SessionConfiguration(source);
                return sessionConfiguration;
            } catch (Exception e) {
                Log.e(TAG, "Exception creating SessionConfiguration from parcel", e);
                return null;
            }
            return new SessionConfiguration(source);
        }

        @Override
Loading