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

Commit b14fba21 authored by Zim's avatar Zim Committed by Nandana Dutt
Browse files

Support preserveLegacyExternalStorage manifest attribute

Parsed the manifest and included in the relevant PackageManager data
structures.

Test: atest RestrictedPermissionsTest
Test: atest RestrictedStoragePermissionSharedUidTest
Bug: 148944140
Change-Id: I785e707aa4c879ea163c1611c1693fea74f4ac82
parent 752ff5a1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -397,6 +397,8 @@ public interface AndroidPackage extends Parcelable {

    boolean hasComponentClassName(String className);

    boolean hasPreserveLegacyExternalStorage();

    // App Info

    boolean hasRequestedLegacyExternalStorage();
+4 −0
Original line number Diff line number Diff line
@@ -2101,6 +2101,10 @@ public class ApkParseUtils {
            parsingPackage.setAllowNativeHeapPointerTagging(sa.getBoolean(
                    R.styleable.AndroidManifestApplication_allowNativeHeapPointerTagging, true));

            parsingPackage.setPreserveLegacyExternalStorage(sa.getBoolean(
                            R.styleable.AndroidManifestApplication_preserveLegacyExternalStorage,
                            false));

            parsingPackage
                    .setMaxAspectRatio(
                            sa.getFloat(R.styleable.AndroidManifestApplication_maxAspectRatio, 0))
+12 −0
Original line number Diff line number Diff line
@@ -289,6 +289,7 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android
    private String[] usesLibraryFiles;
    private List<SharedLibraryInfo> usesLibraryInfos;
    private String zygotePreloadName;
    private boolean preserveLegacyExternalStorage;

    @VisibleForTesting
    public PackageImpl(
@@ -1518,6 +1519,12 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android
        return this;
    }

    @Override
    public PackageImpl setPreserveLegacyExternalStorage(boolean preserveLegacyExternalStorage) {
        this.preserveLegacyExternalStorage = preserveLegacyExternalStorage;
        return this;
    }

    @Override
    public PackageImpl setUsesNonSdkApi(boolean usesNonSdkApi) {
        this.privateFlags = usesNonSdkApi
@@ -2999,6 +3006,11 @@ public final class PackageImpl implements ParsingPackage, ParsedPackage, Android
        return queriesProviders;
    }

    @Override
    public boolean hasPreserveLegacyExternalStorage() {
        return preserveLegacyExternalStorage;
    }

    private static void internStringArrayList(List<String> list) {
        if (list != null) {
            final int N = list.size();
+2 −0
Original line number Diff line number Diff line
@@ -193,6 +193,8 @@ public interface ParsingPackage extends AndroidPackage {

    ParsingPackage setAllowNativeHeapPointerTagging(boolean allowNativeHeapPointerTagging);
  
    ParsingPackage setPreserveLegacyExternalStorage(boolean preserveLegacyExternalStorage);

    ParsingPackage setRestoreAnyVersion(boolean restoreAnyVersion);

    ParsingPackage setSplitHasCode(int splitIndex, boolean splitHasCode);