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

Commit 158d7e32 authored by Alex Buynytskyy's avatar Alex Buynytskyy Committed by Android (Google) Code Review
Browse files

Merge changes I3b8bf146,I2f7db7ad into main

* changes:
  Remove another unused class member.
  Remove unused class member.
parents 7305d877 cc7227e9
Loading
Loading
Loading
Loading
+28 −52
Original line number Original line Diff line number Diff line
@@ -517,15 +517,6 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
    @Watched(manual = true)
    @Watched(manual = true)
    private final AppIdSettingMap mAppIds;
    private final AppIdSettingMap mAppIds;


    // For reading/writing settings file.
    @Watched
    private final WatchedArrayList<Signature> mPastSignatures;
    private final SnapshotCache<WatchedArrayList<Signature>> mPastSignaturesSnapshot;

    @Watched
    private final WatchedArrayMap<Long, Integer> mKeySetRefs;
    private final SnapshotCache<WatchedArrayMap<Long, Integer>> mKeySetRefsSnapshot;

    // Packages that have been renamed since they were first installed.
    // Packages that have been renamed since they were first installed.
    // Keys are the new names of the packages, values are the original
    // Keys are the new names of the packages, values are the original
    // names.  The packages appear everywhere else under their original
    // names.  The packages appear everywhere else under their original
@@ -613,8 +604,6 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
        mNextAppLinkGeneration.registerObserver(mObserver);
        mNextAppLinkGeneration.registerObserver(mObserver);
        mPendingDefaultBrowser.registerObserver(mObserver);
        mPendingDefaultBrowser.registerObserver(mObserver);
        mPendingPackages.registerObserver(mObserver);
        mPendingPackages.registerObserver(mObserver);
        mPastSignatures.registerObserver(mObserver);
        mKeySetRefs.registerObserver(mObserver);
    }
    }


    // CONSTRUCTOR
    // CONSTRUCTOR
@@ -641,12 +630,6 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
        mCrossProfileIntentResolversSnapshot = new SnapshotCache.Auto<>(
        mCrossProfileIntentResolversSnapshot = new SnapshotCache.Auto<>(
                mCrossProfileIntentResolvers, mCrossProfileIntentResolvers,
                mCrossProfileIntentResolvers, mCrossProfileIntentResolvers,
                "Settings.mCrossProfileIntentResolvers");
                "Settings.mCrossProfileIntentResolvers");
        mPastSignatures = new WatchedArrayList<>();
        mPastSignaturesSnapshot = new SnapshotCache.Auto<>(mPastSignatures, mPastSignatures,
                "Settings.mPastSignatures");
        mKeySetRefs = new WatchedArrayMap<>();
        mKeySetRefsSnapshot = new SnapshotCache.Auto<>(mKeySetRefs, mKeySetRefs,
                "Settings.mKeySetRefs");
        mPendingPackages = new WatchedArrayList<>();
        mPendingPackages = new WatchedArrayList<>();
        mPendingPackagesSnapshot = new SnapshotCache.Auto<>(mPendingPackages, mPendingPackages,
        mPendingPackagesSnapshot = new SnapshotCache.Auto<>(mPendingPackages, mPendingPackages,
                "Settings.mPendingPackages");
                "Settings.mPendingPackages");
@@ -702,12 +685,6 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
        mCrossProfileIntentResolversSnapshot = new SnapshotCache.Auto<>(
        mCrossProfileIntentResolversSnapshot = new SnapshotCache.Auto<>(
                mCrossProfileIntentResolvers, mCrossProfileIntentResolvers,
                mCrossProfileIntentResolvers, mCrossProfileIntentResolvers,
                "Settings.mCrossProfileIntentResolvers");
                "Settings.mCrossProfileIntentResolvers");
        mPastSignatures = new WatchedArrayList<>();
        mPastSignaturesSnapshot = new SnapshotCache.Auto<>(mPastSignatures, mPastSignatures,
                "Settings.mPastSignatures");
        mKeySetRefs = new WatchedArrayMap<>();
        mKeySetRefsSnapshot = new SnapshotCache.Auto<>(mKeySetRefs, mKeySetRefs,
                "Settings.mKeySetRefs");
        mPendingPackages = new WatchedArrayList<>();
        mPendingPackages = new WatchedArrayList<>();
        mPendingPackagesSnapshot = new SnapshotCache.Auto<>(mPendingPackages, mPendingPackages,
        mPendingPackagesSnapshot = new SnapshotCache.Auto<>(mPendingPackages, mPendingPackages,
                "Settings.mPendingPackages");
                "Settings.mPendingPackages");
@@ -799,11 +776,6 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
        mSharedUsers.snapshot(r.mSharedUsers);
        mSharedUsers.snapshot(r.mSharedUsers);
        mAppIds = r.mAppIds.snapshot();
        mAppIds = r.mAppIds.snapshot();


        mPastSignatures = r.mPastSignaturesSnapshot.snapshot();
        mPastSignaturesSnapshot = new SnapshotCache.Sealed<>();
        mKeySetRefs = r.mKeySetRefsSnapshot.snapshot();
        mKeySetRefsSnapshot = new SnapshotCache.Sealed<>();

        mRenamedPackages.snapshot(r.mRenamedPackages);
        mRenamedPackages.snapshot(r.mRenamedPackages);
        mNextAppLinkGeneration.snapshot(r.mNextAppLinkGeneration);
        mNextAppLinkGeneration.snapshot(r.mNextAppLinkGeneration);
        mPendingDefaultBrowser.snapshot(r.mPendingDefaultBrowser);
        mPendingDefaultBrowser.snapshot(r.mPendingDefaultBrowser);
@@ -2755,7 +2727,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
        // right time.
        // right time.
        invalidatePackageCache();
        invalidatePackageCache();


        mPastSignatures.clear();
        ArrayList<Signature> writtenSignatures = new ArrayList<>();


        try (ResilientAtomicFile atomicFile = getSettingsFile()) {
        try (ResilientAtomicFile atomicFile = getSettingsFile()) {
            FileOutputStream str = null;
            FileOutputStream str = null;
@@ -2803,7 +2775,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
                        // load
                        // load
                        continue;
                        continue;
                    }
                    }
                    writePackageLPr(serializer, pkg);
                    writePackageLPr(serializer, writtenSignatures, pkg);
                }
                }


                for (final PackageSetting pkg : mDisabledSysPackages.values()) {
                for (final PackageSetting pkg : mDisabledSysPackages.values()) {
@@ -2819,7 +2791,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
                    serializer.startTag(null, "shared-user");
                    serializer.startTag(null, "shared-user");
                    serializer.attribute(null, ATTR_NAME, usr.name);
                    serializer.attribute(null, ATTR_NAME, usr.name);
                    serializer.attributeInt(null, "userId", usr.mAppId);
                    serializer.attributeInt(null, "userId", usr.mAppId);
                    usr.signatures.writeXml(serializer, "sigs", mPastSignatures.untrackedStorage());
                    usr.signatures.writeXml(serializer, "sigs", writtenSignatures);
                    serializer.endTag(null, "shared-user");
                    serializer.endTag(null, "shared-user");
                }
                }


@@ -2859,6 +2831,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
                }
                }
            }
            }
        }
        }

        //Debug.stopMethodTracing();
        //Debug.stopMethodTracing();
    }
    }


@@ -3159,7 +3132,8 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
        serializer.endTag(null, "updated-package");
        serializer.endTag(null, "updated-package");
    }
    }


    void writePackageLPr(TypedXmlSerializer serializer, final PackageSetting pkg)
    void writePackageLPr(TypedXmlSerializer serializer, ArrayList<Signature> writtenSignatures,
            PackageSetting pkg)
            throws java.io.IOException {
            throws java.io.IOException {
        serializer.startTag(null, "package");
        serializer.startTag(null, "package");
        serializer.attribute(null, ATTR_NAME, pkg.getPackageName());
        serializer.attribute(null, ATTR_NAME, pkg.getPackageName());
@@ -3259,11 +3233,11 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
        writeUsesStaticLibLPw(serializer, pkg.getUsesStaticLibraries(),
        writeUsesStaticLibLPw(serializer, pkg.getUsesStaticLibraries(),
                pkg.getUsesStaticLibrariesVersions());
                pkg.getUsesStaticLibrariesVersions());


        pkg.getSignatures().writeXml(serializer, "sigs", mPastSignatures.untrackedStorage());
        pkg.getSignatures().writeXml(serializer, "sigs", writtenSignatures);


        if (installSource.mInitiatingPackageSignatures != null) {
        if (installSource.mInitiatingPackageSignatures != null) {
            installSource.mInitiatingPackageSignatures.writeXml(
            installSource.mInitiatingPackageSignatures.writeXml(
                    serializer, "install-initiator-sigs", mPastSignatures.untrackedStorage());
                    serializer, "install-initiator-sigs", writtenSignatures);
        }
        }


        writeSigningKeySetLPr(serializer, pkg.getKeySetData());
        writeSigningKeySetLPr(serializer, pkg.getKeySetData());
@@ -3305,11 +3279,12 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
    boolean readSettingsLPw(@NonNull Computer computer, @NonNull List<UserInfo> users,
    boolean readSettingsLPw(@NonNull Computer computer, @NonNull List<UserInfo> users,
            ArrayMap<String, Long> originalFirstInstallTimes) {
            ArrayMap<String, Long> originalFirstInstallTimes) {
        mPendingPackages.clear();
        mPendingPackages.clear();
        mPastSignatures.clear();
        mKeySetRefs.clear();
        mInstallerPackages.clear();
        mInstallerPackages.clear();
        originalFirstInstallTimes.clear();
        originalFirstInstallTimes.clear();


        ArrayMap<Long, Integer> keySetRefs = new ArrayMap<>();
        ArrayList<Signature> readSignatures = new ArrayList<>();

        try (ResilientAtomicFile atomicFile = getSettingsFile()) {
        try (ResilientAtomicFile atomicFile = getSettingsFile()) {
            FileInputStream str = null;
            FileInputStream str = null;
            try {
            try {
@@ -3346,13 +3321,14 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile


                    String tagName = parser.getName();
                    String tagName = parser.getName();
                    if (tagName.equals("package")) {
                    if (tagName.equals("package")) {
                        readPackageLPw(parser, users, originalFirstInstallTimes);
                        readPackageLPw(parser, readSignatures, keySetRefs, users,
                                originalFirstInstallTimes);
                    } else if (tagName.equals("permissions")) {
                    } else if (tagName.equals("permissions")) {
                        mPermissions.readPermissions(parser);
                        mPermissions.readPermissions(parser);
                    } else if (tagName.equals("permission-trees")) {
                    } else if (tagName.equals("permission-trees")) {
                        mPermissions.readPermissionTrees(parser);
                        mPermissions.readPermissionTrees(parser);
                    } else if (tagName.equals("shared-user")) {
                    } else if (tagName.equals("shared-user")) {
                        readSharedUserLPw(parser, users);
                        readSharedUserLPw(parser, readSignatures, users);
                    } else if (tagName.equals("preferred-packages")) {
                    } else if (tagName.equals("preferred-packages")) {
                        // no longer used.
                        // no longer used.
                    } else if (tagName.equals("preferred-activities")) {
                    } else if (tagName.equals("preferred-activities")) {
@@ -3412,8 +3388,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
                    } else if (TAG_READ_EXTERNAL_STORAGE.equals(tagName)) {
                    } else if (TAG_READ_EXTERNAL_STORAGE.equals(tagName)) {
                        // No longer used.
                        // No longer used.
                    } else if (tagName.equals("keyset-settings")) {
                    } else if (tagName.equals("keyset-settings")) {
                        mKeySetManagerService.readKeySetsLPw(parser,
                        mKeySetManagerService.readKeySetsLPw(parser, keySetRefs);
                                mKeySetRefs.untrackedStorage());
                    } else if (TAG_VERSION.equals(tagName)) {
                    } else if (TAG_VERSION.equals(tagName)) {
                        final String volumeUuid = XmlUtils.readStringAttribute(parser,
                        final String volumeUuid = XmlUtils.readStringAttribute(parser,
                                ATTR_VOLUME_UUID);
                                ATTR_VOLUME_UUID);
@@ -4007,7 +3982,8 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
    private static final int PRE_M_APP_INFO_FLAG_CANT_SAVE_STATE = 1 << 28;
    private static final int PRE_M_APP_INFO_FLAG_CANT_SAVE_STATE = 1 << 28;
    private static final int PRE_M_APP_INFO_FLAG_PRIVILEGED = 1 << 30;
    private static final int PRE_M_APP_INFO_FLAG_PRIVILEGED = 1 << 30;


    private void readPackageLPw(TypedXmlPullParser parser, List<UserInfo> users,
    private void readPackageLPw(TypedXmlPullParser parser, ArrayList<Signature> readSignatures,
            ArrayMap<Long, Integer> keySetRefs,  List<UserInfo> users,
            ArrayMap<String, Long> originalFirstInstallTimes)
            ArrayMap<String, Long> originalFirstInstallTimes)
            throws XmlPullParserException, IOException {
            throws XmlPullParserException, IOException {
        String name = null;
        String name = null;
@@ -4282,8 +4258,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
                } else if (tagName.equals(TAG_ENABLED_COMPONENTS)) {
                } else if (tagName.equals(TAG_ENABLED_COMPONENTS)) {
                    readEnabledComponentsLPw(packageSetting, parser, 0);
                    readEnabledComponentsLPw(packageSetting, parser, 0);
                } else if (tagName.equals("sigs")) {
                } else if (tagName.equals("sigs")) {
                    packageSetting.getSignatures()
                    packageSetting.getSignatures().readXml(parser, readSignatures);
                            .readXml(parser,mPastSignatures.untrackedStorage());
                } else if (tagName.equals(TAG_PERMISSIONS)) {
                } else if (tagName.equals(TAG_PERMISSIONS)) {
                    final LegacyPermissionState legacyState;
                    final LegacyPermissionState legacyState;
                    if (packageSetting.hasSharedUser()) {
                    if (packageSetting.hasSharedUser()) {
@@ -4300,11 +4275,11 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
                    }
                    }
                } else if (tagName.equals("proper-signing-keyset")) {
                } else if (tagName.equals("proper-signing-keyset")) {
                    long id = parser.getAttributeLong(null, "identifier");
                    long id = parser.getAttributeLong(null, "identifier");
                    Integer refCt = mKeySetRefs.get(id);
                    Integer refCt = keySetRefs.get(id);
                    if (refCt != null) {
                    if (refCt != null) {
                        mKeySetRefs.put(id, refCt + 1);
                        keySetRefs.put(id, refCt + 1);
                    } else {
                    } else {
                        mKeySetRefs.put(id, 1);
                        keySetRefs.put(id, 1);
                    }
                    }
                    packageSetting.getKeySetData().setProperSigningKeySet(id);
                    packageSetting.getKeySetData().setProperSigningKeySet(id);
                } else if (tagName.equals("signing-keyset")) {
                } else if (tagName.equals("signing-keyset")) {
@@ -4315,16 +4290,16 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
                } else if (tagName.equals("defined-keyset")) {
                } else if (tagName.equals("defined-keyset")) {
                    long id = parser.getAttributeLong(null, "identifier");
                    long id = parser.getAttributeLong(null, "identifier");
                    String alias = parser.getAttributeValue(null, "alias");
                    String alias = parser.getAttributeValue(null, "alias");
                    Integer refCt = mKeySetRefs.get(id);
                    Integer refCt = keySetRefs.get(id);
                    if (refCt != null) {
                    if (refCt != null) {
                        mKeySetRefs.put(id, refCt + 1);
                        keySetRefs.put(id, refCt + 1);
                    } else {
                    } else {
                        mKeySetRefs.put(id, 1);
                        keySetRefs.put(id, 1);
                    }
                    }
                    packageSetting.getKeySetData().addDefinedKeySet(id, alias);
                    packageSetting.getKeySetData().addDefinedKeySet(id, alias);
                } else if (tagName.equals("install-initiator-sigs")) {
                } else if (tagName.equals("install-initiator-sigs")) {
                    final PackageSignatures signatures = new PackageSignatures();
                    final PackageSignatures signatures = new PackageSignatures();
                    signatures.readXml(parser, mPastSignatures.untrackedStorage());
                    signatures.readXml(parser, readSignatures);
                    packageSetting.setInstallSource(
                    packageSetting.setInstallSource(
                            packageSetting.getInstallSource()
                            packageSetting.getInstallSource()
                                    .setInitiatingPackageSignatures(signatures));
                                    .setInitiatingPackageSignatures(signatures));
@@ -4497,7 +4472,8 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
        }
        }
    }
    }


    private void readSharedUserLPw(TypedXmlPullParser parser, List<UserInfo> users)
    private void readSharedUserLPw(TypedXmlPullParser parser, ArrayList<Signature> readSignatures,
            List<UserInfo> users)
            throws XmlPullParserException, IOException {
            throws XmlPullParserException, IOException {
        String name = null;
        String name = null;
        int pkgFlags = 0;
        int pkgFlags = 0;
@@ -4539,7 +4515,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile


                String tagName = parser.getName();
                String tagName = parser.getName();
                if (tagName.equals("sigs")) {
                if (tagName.equals("sigs")) {
                    su.signatures.readXml(parser, mPastSignatures.untrackedStorage());
                    su.signatures.readXml(parser, readSignatures);
                } else if (tagName.equals("perms")) {
                } else if (tagName.equals("perms")) {
                    readInstallPermissionsLPr(parser, su.getLegacyPermissionState(), users);
                    readInstallPermissionsLPr(parser, su.getLegacyPermissionState(), users);
                } else {
                } else {