Merge "Rename requestOptimizedExternalStorageAccess to more precise name" into sc-dev
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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} */
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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.
|
||||
<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.
|
||||
|
||||
The default value is {@code true} if
|
||||
<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
|
||||
|
||||
@@ -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" />
|
||||
|
||||
Reference in New Issue
Block a user