diff options
| author | 2020-12-14 18:27:12 +0000 | |
|---|---|---|
| committer | 2020-12-14 18:27:12 +0000 | |
| commit | 155e594fee10eb13eac255001c8521d9929b21c9 (patch) | |
| tree | 0429101a016292e274066c36caa362abe5e2b0b4 | |
| parent | 869b1dc1e5c8dacea3e29cf6bb819219fae57b33 (diff) | |
| parent | 3952caa992edb7e67ea4753040476c1b5fd804cc (diff) | |
Merge "Fix transcode_optimize flags"
| -rw-r--r-- | core/java/android/os/FileUtils.java | 4 | ||||
| -rw-r--r-- | services/core/java/com/android/server/StorageManagerService.java | 18 |
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 ad547c5cb48e..d9ddebdccea6 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. |