summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/os/FileUtils.java4
-rw-r--r--services/core/java/com/android/server/StorageManagerService.java18
2 files changed, 19 insertions, 3 deletions
diff --git a/core/java/android/os/FileUtils.java b/core/java/android/os/FileUtils.java
index 379d6e6f5dfe..92fe98ca1044 100644
--- a/core/java/android/os/FileUtils.java
+++ b/core/java/android/os/FileUtils.java
@@ -1436,9 +1436,7 @@ public final class FileUtils {
public static FileDescriptor convertToModernFd(FileDescriptor fd) {
try {
Context context = AppGlobals.getInitialApplication();
- // TODO(b/169327180): Consider device config.
- if (!SystemProperties.getBoolean("persist.sys.fuse.transcode_enabled", false)
- || !SystemProperties.getBoolean("persist.sys.fuse.transcode_optimize", true)
+ if (!SystemProperties.getBoolean("sys.fuse.transcode_enabled", false)
|| UserHandle.getAppId(Process.myUid()) == getMediaProviderAppId(context)) {
// If transcode is enabled we optimize by default, unless explicitly disabled.
// Never convert modern fd for MediaProvider, because this requires
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index 730c64e6968c..7abaf4716a39 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -108,6 +108,7 @@ import android.os.storage.StorageManagerInternal;
import android.os.storage.StorageVolume;
import android.os.storage.VolumeInfo;
import android.os.storage.VolumeRecord;
+import android.provider.DeviceConfig;
import android.provider.DocumentsContract;
import android.provider.Downloads;
import android.provider.MediaStore;
@@ -879,6 +880,8 @@ class StorageManagerService extends IStorageManager.Stub
com.android.internal.R.bool.config_zramWriteback)) {
ZramWriteback.scheduleZramWriteback(mContext);
}
+
+ updateTranscodeEnabled();
}
/**
@@ -910,6 +913,21 @@ class StorageManagerService extends IStorageManager.Stub
}
}
+ private void updateTranscodeEnabled() {
+ // See MediaProvider TranscodeHelper#getBooleanProperty for more information
+ boolean transcodeEnabled = false;
+ boolean defaultValue = true;
+
+ if (SystemProperties.getBoolean("persist.sys.fuse.transcode_user_control", false)) {
+ transcodeEnabled = SystemProperties.getBoolean("persist.sys.fuse.transcode_enabled",
+ defaultValue);
+ } else {
+ transcodeEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_STORAGE_NATIVE_BOOT,
+ "transcode_enabled", defaultValue);
+ }
+ SystemProperties.set("sys.fuse.transcode_enabled", String.valueOf(transcodeEnabled));
+ }
+
/**
* MediaProvider has a ton of code that makes assumptions about storage
* paths never changing, so we outright kill them to pick up new state.