diff options
| author | 2024-04-02 17:18:05 +0000 | |
|---|---|---|
| committer | 2024-04-03 17:55:09 +0000 | |
| commit | 65b39d45e15f691054fb97fbf2937a9b8ad79fcc (patch) | |
| tree | ccf5bbeef6525c20e89c1c422da7f0eb17d9835f | |
| parent | 4f1fc19f0ed1b69934bd20896e328f4dcc214a90 (diff) | |
Set test mission 1 marker file permissions
Allow the test mission 1 marker file to be read by anyone.
Also, add demo flags as a static lib dependency, so they become
available to codegen. Finally, delete storage marker file when migration
is disabled.
Bug: 328444881
Test: m
Change-Id: I81c643ce0121b0718692fd23f5b06a2b641f2b1e
| -rw-r--r-- | packages/SettingsProvider/Android.bp | 1 | ||||
| -rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java | 42 |
2 files changed, 29 insertions, 14 deletions
diff --git a/packages/SettingsProvider/Android.bp b/packages/SettingsProvider/Android.bp index bf4f60d84e4d..5ff5ceb4ea57 100644 --- a/packages/SettingsProvider/Android.bp +++ b/packages/SettingsProvider/Android.bp @@ -32,6 +32,7 @@ android_library { "unsupportedappusage", ], static_libs: [ + "aconfig_demo_flags_java_lib", "device_config_service_flags_java", "libaconfig_java_proto_lite", "SettingsLibDeviceStateRotationLock", diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java index 4e4c22fadcfd..a28cfeb4dc80 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsState.java @@ -60,16 +60,17 @@ import libcore.io.IoUtils; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; -import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; -import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.attribute.PosixFileAttributes; +import java.nio.file.attribute.PosixFilePermission; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -165,8 +166,8 @@ final class SettingsState { private static final String STORAGE_MIGRATION_FLAG = "core_experiments_team_internal/com.android.providers.settings.storage_test_mission_1"; - private static final String STORAGE_MIGRATION_LOG = - "/metadata/aconfig/flags/storage_migration.log"; + private static final String STORAGE_MIGRATION_MARKER_FILE = + "/metadata/aconfig/storage_test_mission_1"; /** * This tag is applied to all aconfig default value-loaded flags. @@ -1467,16 +1468,29 @@ final class SettingsState { } } - if (name != null && name.equals(STORAGE_MIGRATION_FLAG) && value.equals("true")) { - File file = new File(STORAGE_MIGRATION_LOG); - if (!file.exists()) { - try (BufferedWriter writer = - new BufferedWriter(new FileWriter(STORAGE_MIGRATION_LOG))) { - final long timestamp = System.currentTimeMillis(); - String entry = String.format("%d | Log init", timestamp); - writer.write(entry); - } catch (IOException e) { - Slog.e(LOG_TAG, "failed to write storage migration file", e); + if (isConfigSettingsKey(mKey) && name != null + && name.equals(STORAGE_MIGRATION_FLAG)) { + if (value.equals("true")) { + Path path = Paths.get(STORAGE_MIGRATION_MARKER_FILE); + if (!Files.exists(path)) { + Files.createFile(path); + } + + Set<PosixFilePermission> perms = + Files.readAttributes(path, PosixFileAttributes.class).permissions(); + perms.add(PosixFilePermission.OWNER_WRITE); + perms.add(PosixFilePermission.OWNER_READ); + perms.add(PosixFilePermission.GROUP_READ); + perms.add(PosixFilePermission.OTHERS_READ); + try { + Files.setPosixFilePermissions(path, perms); + } catch (Exception e) { + Slog.e(LOG_TAG, "failed to set permissions on migration marker", e); + } + } else { + java.nio.file.Path path = Paths.get(STORAGE_MIGRATION_MARKER_FILE); + if (Files.exists(path)) { + Files.delete(path); } } } |