Add getBuildId method to IntalledImage
Bug: 376784944
Test: N/A
Change-Id: Id64851a54b715c30b78393f87910202a0bc37370
diff --git a/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.java b/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.java
index f318358..08ebac0 100644
--- a/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.java
+++ b/android/TerminalApp/java/com/android/virtualization/terminal/InstalledImage.java
@@ -23,7 +23,9 @@
import android.system.Os;
import android.util.Log;
+import java.io.BufferedReader;
import java.io.FileDescriptor;
+import java.io.FileReader;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.file.Files;
@@ -36,6 +38,7 @@
private static final String ROOTFS_FILENAME = "root_part";
private static final String BACKUP_FILENAME = "root_part_backup";
private static final String CONFIG_FILENAME = "vm_config.json";
+ private static final String BUILD_ID_FILENAME = "build_id";
static final String MARKER_FILENAME = "completed";
public static final long RESIZE_STEP_BYTES = 4 << 20; // 4 MiB
@@ -45,6 +48,7 @@
private final Path mBackup;
private final Path mConfig;
private final Path mMarker;
+ private final String mBuildId;
/** Returns InstalledImage for a given app context */
public static InstalledImage getDefault(Context context) {
@@ -58,6 +62,7 @@
mBackup = dir.resolve(BACKUP_FILENAME);
mConfig = dir.resolve(CONFIG_FILENAME);
mMarker = dir.resolve(MARKER_FILENAME);
+ mBuildId = readBuildId();
}
public Path getInstallDir() {
@@ -79,6 +84,23 @@
return mConfig;
}
+ /** Returns the build ID of the installed image */
+ public String getBuildId() {
+ return mBuildId;
+ }
+
+ private String readBuildId() {
+ Path file = mDir.resolve(BUILD_ID_FILENAME);
+ if (!Files.exists(file)) {
+ return "<no build id>";
+ }
+ try (BufferedReader r = new BufferedReader(new FileReader(file.toFile()))) {
+ return r.readLine();
+ } catch (IOException e) {
+ throw new RuntimeException("Failed to read build ID", e);
+ }
+ }
+
public Path uninstallAndBackup() throws IOException {
Files.delete(mMarker);
Files.move(mRootPartition, mBackup, StandardCopyOption.REPLACE_EXISTING);