Merge "Apply OTA from /vendor/boot_otas" into main

This commit is contained in:
Pawan Wagh
2024-05-02 19:28:44 +00:00
committed by Gerrit Code Review

View File

@@ -87,8 +87,11 @@ public class Enable16kPagesPreferenceController extends DeveloperOptionsPreferen
private static final int ENABLE_4K_PAGE_SIZE = 0;
private static final int ENABLE_16K_PAGE_SIZE = 1;
private static final String OTA_16K_PATH = "/system/boot_otas/boot_ota_16k.zip";
private static final String OTA_4K_PATH = "/system/boot_otas/boot_ota_4k.zip";
private static final String SYSTEM_PATH = "/system";
private static final String VENDOR_PATH = "/vendor";
private static final String OTA_16K_PATH = "/boot_otas/boot_ota_16k.zip";
private static final String OTA_4K_PATH = "/boot_otas/boot_ota_4k.zip";
private static final String PAYLOAD_BINARY_FILE_NAME = "payload.bin";
private static final String PAYLOAD_PROPERTIES_FILE_NAME = "payload_properties.txt";
private static final int OFFSET_TO_FILE_NAME = 30;
@@ -225,9 +228,9 @@ public class Enable16kPagesPreferenceController extends DeveloperOptionsPreferen
PersistableBundle info = createUpdateInfo(SystemUpdateManager.STATUS_IN_PROGRESS);
manager.updateSystemUpdateInfo(info);
String updateFilePath = mEnable16k ? OTA_16K_PATH : OTA_4K_PATH;
try {
File updateFile = new File(updateFilePath);
File updateFile = getOtaFile();
Log.i(TAG, "Update file path is " + updateFile.getAbsolutePath());
applyUpdateFile(updateFile);
} catch (IOException e) {
throw new RuntimeException(e);
@@ -473,4 +476,23 @@ public class Enable16kPagesPreferenceController extends DeveloperOptionsPreferen
return true;
}
// if BOARD_16K_OTA_MOVE_VENDOR, OTAs will be present on the /vendor partition
private File getOtaFile() throws FileNotFoundException {
String otaPath = mEnable16k ? OTA_16K_PATH : OTA_4K_PATH;
// Check if boot ota exists on vendor path and prefer vendor ota if present
String vendorOta = VENDOR_PATH + otaPath;
File vendorOtaFile = new File(vendorOta);
if (vendorOtaFile != null && vendorOtaFile.exists()) {
return vendorOtaFile;
}
// otherwise, fallback to boot ota from system partition
String systemOta = SYSTEM_PATH + otaPath;
File systemOtaFile = new File(systemOta);
if (systemOtaFile == null || !systemOtaFile.exists()) {
throw new FileNotFoundException("File not found at path " + systemOta);
}
return systemOtaFile;
}
}