diff options
| author | 2024-07-22 20:40:16 +0000 | |
|---|---|---|
| committer | 2024-07-22 20:40:16 +0000 | |
| commit | 03b7df4aa78521f3288717d62c6ec2d22609f885 (patch) | |
| tree | eedf3e8d45172b1f330316f69efdb85f227f85fb | |
| parent | b748393788acfc53b785508d62edab1740cadf54 (diff) | |
| parent | 8923df743c7fb240f923ba79448dc77a502c06c0 (diff) | |
Merge "Add missing fs-verity setup for UPS." into main
| -rw-r--r-- | services/permission/java/com/android/server/permission/access/util/AtomicFileExtensions.kt | 8 |
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. */ |