summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2024-07-22 20:40:16 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-07-22 20:40:16 +0000
commit03b7df4aa78521f3288717d62c6ec2d22609f885 (patch)
treeeedf3e8d45172b1f330316f69efdb85f227f85fb
parentb748393788acfc53b785508d62edab1740cadf54 (diff)
parent8923df743c7fb240f923ba79448dc77a502c06c0 (diff)
Merge "Add missing fs-verity setup for UPS." into main
-rw-r--r--services/permission/java/com/android/server/permission/access/util/AtomicFileExtensions.kt8
1 files changed, 8 insertions, 0 deletions
diff --git a/services/permission/java/com/android/server/permission/access/util/AtomicFileExtensions.kt b/services/permission/java/com/android/server/permission/access/util/AtomicFileExtensions.kt
index 996daf5a5f68..95ee958f3ce4 100644
--- a/services/permission/java/com/android/server/permission/access/util/AtomicFileExtensions.kt
+++ b/services/permission/java/com/android/server/permission/access/util/AtomicFileExtensions.kt
@@ -19,6 +19,7 @@ package com.android.server.permission.access.util
import android.os.FileUtils
import android.util.AtomicFile
import android.util.Slog
+import com.android.server.security.FileIntegrity;
import java.io.File
import java.io.FileInputStream
import java.io.FileNotFoundException
@@ -49,6 +50,7 @@ inline fun AtomicFile.readWithReserveCopy(block: (FileInputStream) -> Unit) {
inline fun AtomicFile.writeWithReserveCopy(block: (FileOutputStream) -> Unit) {
writeInlined(block)
val reserveFile = File(baseFile.parentFile, baseFile.name + ".reservecopy")
+ reserveFile.delete()
try {
FileInputStream(baseFile).use { inputStream ->
FileOutputStream(reserveFile).use { outputStream ->
@@ -59,6 +61,12 @@ inline fun AtomicFile.writeWithReserveCopy(block: (FileOutputStream) -> Unit) {
} catch (e: Exception) {
Slog.e("AccessPersistence", "Failed to write $reserveFile", e)
}
+ try {
+ FileIntegrity.setUpFsVerity(baseFile)
+ FileIntegrity.setUpFsVerity(reserveFile)
+ } catch (e: Exception) {
+ Slog.e("AccessPersistence", "Failed to verity-protect runtime-permissions", e)
+ }
}
/** Write to an [AtomicFile] and close everything safely when done. */