Expose an update_engine API that verifies the given payload metadata.
android.os.UpdateEngine.verifyPayloadMetadata() allows a system updater to verify a payload can be safely applied, by using its payload metadata (usually a few hundred KiB only or even less). This would be useful in improving update UX, since the updater can be smarter to avoid installing an update that would fail to apply, or to fall back from an incremental to full payload. Bug: 65283633 Test: Build and flash walleye on device. Trigger a call to this API. Change-Id: I82546f6b2a8f27cfd956cc1677556e7221cce5fd
This commit is contained in:
@@ -3806,6 +3806,7 @@ package android.os {
|
||||
method public void resume();
|
||||
method public void suspend();
|
||||
method public boolean unbind();
|
||||
method public boolean verifyPayloadMetadata(java.lang.String);
|
||||
}
|
||||
|
||||
public static final class UpdateEngine.ErrorCodeConstants {
|
||||
|
||||
@@ -271,4 +271,22 @@ public class UpdateEngine {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that a payload associated with the given payload metadata
|
||||
* {@code payloadMetadataFilename} can be safely applied to ths device.
|
||||
* Returns {@code true} if the update can successfully be applied and
|
||||
* returns {@code false} otherwise.
|
||||
*
|
||||
* @param payloadMetadataFilename the location of the metadata without the
|
||||
* {@code file://} prefix.
|
||||
*/
|
||||
@SystemApi
|
||||
public boolean verifyPayloadMetadata(String payloadMetadataFilename) {
|
||||
try {
|
||||
return mUpdateEngine.verifyPayloadApplicable(payloadMetadataFilename);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user