From aafba6db94b1337539088b2863f961f9d65ee3f0 Mon Sep 17 00:00:00 2001 From: Alex Buynytskyy Date: Tue, 17 Jan 2023 09:07:17 -0800 Subject: [PATCH] Force save cached pages to file. Bug: 253568736 Test: atest PackageManagerSettingsTests android.content.pm.cts.PackageManagerTest Change-Id: I2d1c39f066fc40d3896f1e0c441bcb53ab2da70c --- .../core/java/com/android/server/pm/Settings.java | 11 ++++++++--- 1 file 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 aedf78255422c..4678520b685be 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 {