diff options
| author | 2021-04-08 15:42:12 +0000 | |
|---|---|---|
| committer | 2021-04-08 15:42:12 +0000 | |
| commit | 1e98cff664f0d85c3947c474cddc80726aff6f06 (patch) | |
| tree | d4ec56483ffdd34726d92fc7a242510c804e9f55 | |
| parent | f461b422d58a59293c6ba4d03505e38a9521ac12 (diff) | |
| parent | d40f9b61a5431c7055b52f1499c3a1a17aca4976 (diff) | |
Merge "Rename requestOptimizedExternalStorageAccess to more precise name" into sc-dev
| -rw-r--r-- | core/api/current.txt | 2 | ||||
| -rw-r--r-- | core/api/system-current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/content/pm/ApplicationInfo.java | 30 | ||||
| -rw-r--r-- | core/java/android/content/pm/parsing/ParsingPackage.java | 4 | ||||
| -rw-r--r-- | core/java/android/content/pm/parsing/ParsingPackageImpl.java | 16 | ||||
| -rw-r--r-- | core/java/android/content/pm/parsing/ParsingPackageRead.java | 2 | ||||
| -rw-r--r-- | core/java/android/content/pm/parsing/ParsingPackageUtils.java | 6 | ||||
| -rw-r--r-- | core/res/res/values/attrs_manifest.xml | 15 | ||||
| -rw-r--r-- | core/res/res/values/public.xml | 2 |
9 files changed, 42 insertions, 37 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 10c4a4f6877a..1fa4640e7dff 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -1182,7 +1182,7 @@ package android { field public static final int reqNavigation = 16843306; // 0x101022a field public static final int reqTouchScreen = 16843303; // 0x1010227 field public static final int requestLegacyExternalStorage = 16844291; // 0x1010603 - field public static final int requestOptimizedExternalStorageAccess; + field public static final int requestRawExternalStorageAccess; field public static final int requireDeviceScreenOn; field public static final int requireDeviceUnlock = 16843756; // 0x10103ec field public static final int required = 16843406; // 0x101028e diff --git a/core/api/system-current.txt b/core/api/system-current.txt index c126dbd64474..76abbf4a741b 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -2508,7 +2508,7 @@ package android.content.om { package android.content.pm { public class ApplicationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable { - method @Nullable public Boolean hasRequestOptimizedExternalStorageAccess(); + method @Nullable public Boolean hasRequestRawExternalStorageAccess(); method public boolean isEncryptionAware(); method public boolean isInstantApp(); method public boolean isOem(); diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java index 6badf0e0addc..6ad204ec31ea 100644 --- a/core/java/android/content/pm/ApplicationInfo.java +++ b/core/java/android/content/pm/ApplicationInfo.java @@ -1436,11 +1436,11 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { private @NativeHeapZeroInitialized int nativeHeapZeroInitialized = ZEROINIT_DEFAULT; /** - * If {@code true} this app requests optimized external storage access. + * If {@code true} this app requests raw external storage access. * The request may not be honored due to policy or other reasons. */ @Nullable - private Boolean requestOptimizedExternalStorageAccess; + private Boolean requestRawExternalStorageAccess; /** * Represents the default policy. The actual policy used will depend on other properties of @@ -1598,9 +1598,9 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { if (nativeHeapZeroInitialized != ZEROINIT_DEFAULT) { pw.println(prefix + "nativeHeapZeroInitialized=" + nativeHeapZeroInitialized); } - if (requestOptimizedExternalStorageAccess != null) { - pw.println(prefix + "requestOptimizedExternalStorageAccess=" - + requestOptimizedExternalStorageAccess); + if (requestRawExternalStorageAccess != null) { + pw.println(prefix + "requestRawExternalStorageAccess=" + + requestRawExternalStorageAccess); } } super.dumpBack(pw, prefix); @@ -1829,7 +1829,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { gwpAsanMode = orig.gwpAsanMode; memtagMode = orig.memtagMode; nativeHeapZeroInitialized = orig.nativeHeapZeroInitialized; - requestOptimizedExternalStorageAccess = orig.requestOptimizedExternalStorageAccess; + requestRawExternalStorageAccess = orig.requestRawExternalStorageAccess; } public String toString() { @@ -1918,7 +1918,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { dest.writeInt(gwpAsanMode); dest.writeInt(memtagMode); dest.writeInt(nativeHeapZeroInitialized); - sForBoolean.parcel(requestOptimizedExternalStorageAccess, dest, parcelableFlags); + sForBoolean.parcel(requestRawExternalStorageAccess, dest, parcelableFlags); } public static final @android.annotation.NonNull Parcelable.Creator<ApplicationInfo> CREATOR @@ -2004,7 +2004,7 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { gwpAsanMode = source.readInt(); memtagMode = source.readInt(); nativeHeapZeroInitialized = source.readInt(); - requestOptimizedExternalStorageAccess = sForBoolean.unparcel(source); + requestRawExternalStorageAccess = sForBoolean.unparcel(source); } /** @@ -2121,10 +2121,10 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { /** * @return * <ul> - * <li>{@code true} if this app requested optimized external storage access - * <li>{@code false} if this app requests to disable optimized external storage access. + * <li>{@code true} if this app requested raw external storage access + * <li>{@code false} if this app requests to disable raw external storage access. * <li>{@code null} if the app didn't specify - * {@link android.R.styleable#AndroidManifestApplication_requestOptimizedExternalStorageAccess} + * {@link android.R.styleable#AndroidManifestApplication_requestRawExternalStorageAccess} * in its manifest file. * </ul> * @@ -2132,8 +2132,8 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { */ @SystemApi @Nullable - public Boolean hasRequestOptimizedExternalStorageAccess() { - return requestOptimizedExternalStorageAccess; + public Boolean hasRequestRawExternalStorageAccess() { + return requestRawExternalStorageAccess; } /** @@ -2421,8 +2421,8 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable { nativeHeapZeroInitialized = value; } /** {@hide} */ - public void setRequestOptimizedExternalStorageAccess(@Nullable Boolean value) { - requestOptimizedExternalStorageAccess = value; + public void setRequestRawExternalStorageAccess(@Nullable Boolean value) { + requestRawExternalStorageAccess = value; } /** {@hide} */ diff --git a/core/java/android/content/pm/parsing/ParsingPackage.java b/core/java/android/content/pm/parsing/ParsingPackage.java index 1c65e0014635..8dcba7ff4525 100644 --- a/core/java/android/content/pm/parsing/ParsingPackage.java +++ b/core/java/android/content/pm/parsing/ParsingPackage.java @@ -259,8 +259,8 @@ public interface ParsingPackage extends ParsingPackageRead { ParsingPackage setNativeHeapZeroInitialized( @ApplicationInfo.NativeHeapZeroInitialized int nativeHeapZeroInitialized); - ParsingPackage setRequestOptimizedExternalStorageAccess( - @Nullable Boolean requestOptimizedExternalStorageAccess); + ParsingPackage setRequestRawExternalStorageAccess( + @Nullable Boolean requestRawExternalStorageAccess); ParsingPackage setCrossProfile(boolean crossProfile); diff --git a/core/java/android/content/pm/parsing/ParsingPackageImpl.java b/core/java/android/content/pm/parsing/ParsingPackageImpl.java index 97e1b543520e..ea7135eb416e 100644 --- a/core/java/android/content/pm/parsing/ParsingPackageImpl.java +++ b/core/java/android/content/pm/parsing/ParsingPackageImpl.java @@ -400,7 +400,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { @Nullable @DataClass.ParcelWith(ForBoolean.class) - private Boolean requestOptimizedExternalStorageAccess; + private Boolean requestRawExternalStorageAccess; // TODO(chiuwinson): Non-null @Nullable @@ -1086,7 +1086,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { appInfo.setGwpAsanMode(gwpAsanMode); appInfo.setMemtagMode(memtagMode); appInfo.setNativeHeapZeroInitialized(nativeHeapZeroInitialized); - appInfo.setRequestOptimizedExternalStorageAccess(requestOptimizedExternalStorageAccess); + appInfo.setRequestRawExternalStorageAccess(requestRawExternalStorageAccess); appInfo.setBaseCodePath(mBaseApkPath); appInfo.setBaseResourcePath(mBaseApkPath); appInfo.setCodePath(mPath); @@ -1223,7 +1223,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { dest.writeMap(this.mProperties); dest.writeInt(this.memtagMode); dest.writeInt(this.nativeHeapZeroInitialized); - sForBoolean.parcel(this.requestOptimizedExternalStorageAccess, dest, flags); + sForBoolean.parcel(this.requestRawExternalStorageAccess, dest, flags); } public ParsingPackageImpl(Parcel in) { @@ -1348,7 +1348,7 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { this.mProperties = in.readHashMap(boot); this.memtagMode = in.readInt(); this.nativeHeapZeroInitialized = in.readInt(); - this.requestOptimizedExternalStorageAccess = sForBoolean.unparcel(in); + this.requestRawExternalStorageAccess = sForBoolean.unparcel(in); assignDerivedFields(); } @@ -2131,8 +2131,8 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { @Nullable @Override - public Boolean hasRequestOptimizedExternalStorageAccess() { - return requestOptimizedExternalStorageAccess; + public Boolean hasRequestRawExternalStorageAccess() { + return requestRawExternalStorageAccess; } @Override @@ -2586,8 +2586,8 @@ public class ParsingPackageImpl implements ParsingPackage, Parcelable { } @Override - public ParsingPackageImpl setRequestOptimizedExternalStorageAccess(@Nullable Boolean value) { - requestOptimizedExternalStorageAccess = value; + public ParsingPackageImpl setRequestRawExternalStorageAccess(@Nullable Boolean value) { + requestRawExternalStorageAccess = value; return this; } @Override diff --git a/core/java/android/content/pm/parsing/ParsingPackageRead.java b/core/java/android/content/pm/parsing/ParsingPackageRead.java index cfd828ec7d3e..4d4cc1a4aa18 100644 --- a/core/java/android/content/pm/parsing/ParsingPackageRead.java +++ b/core/java/android/content/pm/parsing/ParsingPackageRead.java @@ -905,7 +905,7 @@ public interface ParsingPackageRead extends Parcelable { int getNativeHeapZeroInitialized(); @Nullable - Boolean hasRequestOptimizedExternalStorageAccess(); + Boolean hasRequestRawExternalStorageAccess(); // TODO(b/135203078): Hide and enforce going through PackageInfoUtils ApplicationInfo toAppInfoWithoutState(); diff --git a/core/java/android/content/pm/parsing/ParsingPackageUtils.java b/core/java/android/content/pm/parsing/ParsingPackageUtils.java index 4e7bd7046fc2..a1ffc0ca5378 100644 --- a/core/java/android/content/pm/parsing/ParsingPackageUtils.java +++ b/core/java/android/content/pm/parsing/ParsingPackageUtils.java @@ -2019,9 +2019,9 @@ public class ParsingPackageUtils { v ? ApplicationInfo.ZEROINIT_ENABLED : ApplicationInfo.ZEROINIT_DISABLED); } if (sa.hasValue( - R.styleable.AndroidManifestApplication_requestOptimizedExternalStorageAccess)) { - pkg.setRequestOptimizedExternalStorageAccess(sa.getBoolean(R.styleable - .AndroidManifestApplication_requestOptimizedExternalStorageAccess, + R.styleable.AndroidManifestApplication_requestRawExternalStorageAccess)) { + pkg.setRequestRawExternalStorageAccess(sa.getBoolean(R.styleable + .AndroidManifestApplication_requestRawExternalStorageAccess, false)); } } finally { diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml index 986bb820eb2c..c51b2d84ab6d 100644 --- a/core/res/res/values/attrs_manifest.xml +++ b/core/res/res/values/attrs_manifest.xml @@ -1867,16 +1867,21 @@ --> <attr name="preserveLegacyExternalStorage" format="boolean" /> - <!-- If {@code true} this app would like optimized external storage access. + <!-- If {@code true} this app would like raw external storage access. <p> This flag can only be used by apps holding <ul> <li>{@link android.Manifest.permission#MANAGE_EXTERNAL_STORAGE} permission or <li>{@link android.app.role}#SYSTEM_GALLERY role. </ul> - When the flag is set, bulk file path operations will be optimized. - - The default value is {@code true} if + <p> When the flag is set, all file path access on external storage will bypass database + operations that update MediaStore collection. Raw external storage access as a side effect + can improve performance of bulk file path operations but can cause unexpected behavior in + apps due to inconsistencies in MediaStore collection and lower file system. + When the flag is set, app should scan the file after file path operations to ensure + consistency of MediaStore collection. + + <p> The default value is {@code true} if <ul> <li>app has {@link android.Manifest.permission#MANAGE_EXTERNAL_STORAGE} permission and targets targetSDK<=30. @@ -1884,7 +1889,7 @@ </ul> {@code false} otherwise. --> - <attr name="requestOptimizedExternalStorageAccess" format="boolean" /> + <attr name="requestRawExternalStorageAccess" format="boolean" /> <!-- If {@code true} this app declares that it should be visible to all other apps on device, regardless of what they declare via the {@code queries} tags in their diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index b402c956e2ef..3a5621b4fbbd 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -3092,7 +3092,7 @@ <public name="attributionTags"/> <public name="suppressesSpellChecker" /> <public name="usesPermissionFlags" /> - <public name="requestOptimizedExternalStorageAccess" /> + <public name="requestRawExternalStorageAccess" /> <!-- @hide @SystemApi --> <public name="playHomeTransitionSound" /> <public name="lStar" /> |