Catch exceptions thrown from UpdateEngine#applyPayload.

Note: we can't add a CTS test for this behaviour since the UpdateEngine
is an implementation detail.

Fixes: 124106342
Test: Manually tested
Change-Id: Ib8e6895211b5d39a4d037d383c115011084ea257
This commit is contained in:
Alex Kershaw
2019-04-12 16:59:29 +01:00
parent 2b188f8242
commit 76f824b18c

View File

@@ -194,8 +194,17 @@ class AbUpdateInstaller extends UpdateInstaller {
}
UpdateEngine updateEngine = buildBoundUpdateEngine();
updateEngine.applyPayload(
updatePath, mOffsetForUpdate, mSizeForUpdate, headerKeyValuePairs);
try {
updateEngine.applyPayload(
updatePath, mOffsetForUpdate, mSizeForUpdate, headerKeyValuePairs);
} catch (Exception e) {
// Prevent an automatic restart when an update is already being processed
// (http://b/124106342).
Log.w(UpdateInstaller.TAG, "Failed to install update from file.", e);
notifyCallbackOnError(
InstallSystemUpdateCallback.UPDATE_ERROR_UNKNOWN,
"Failed to install update from file.");
}
}
private boolean updateStateForPayload() throws IOException {