diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/Settings.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index aedf78255422..4678520b685b 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -2693,10 +2693,15 @@ public final class Settings implements Watchable, Snappable { FileUtils.S_IRUSR | FileUtils.S_IWUSR | FileUtils.S_IRGRP | FileUtils.S_IWGRP, -1, -1); - try { - FileUtils.copy(mSettingsFilename, mSettingsReserveCopyFilename); + try (FileInputStream in = new FileInputStream(mSettingsFilename); + FileOutputStream out = new FileOutputStream(mSettingsReserveCopyFilename)) { + FileUtils.copy(in, out); + out.flush(); + FileUtils.sync(out); } catch (IOException e) { - Slog.e(TAG, "Failed to backup settings", e); + Slog.e(TAG, + "Failed to write reserve copy of settings: " + mSettingsReserveCopyFilename, + e); } try { |