Android: Extend the API with the payload offset and size.
am: 95b8f24808
* commit '95b8f248088934180732cd7e166e70a7d8fe4d0c':
Android: Extend the API with the payload offset and size.
diff --git a/binder_bindings/android/os/IUpdateEngine.aidl b/binder_bindings/android/os/IUpdateEngine.aidl
index 1e8090e..4245254 100644
--- a/binder_bindings/android/os/IUpdateEngine.aidl
+++ b/binder_bindings/android/os/IUpdateEngine.aidl
@@ -20,6 +20,8 @@
interface IUpdateEngine {
void applyPayload(String url,
+ in long payload_offset,
+ in long payload_size,
in String[] headerKeyValuePairs);
boolean bind(IUpdateEngineCallback callback);
void suspend();
diff --git a/binder_service_android.cc b/binder_service_android.cc
index 144836a..98943a2 100644
--- a/binder_service_android.cc
+++ b/binder_service_android.cc
@@ -47,6 +47,8 @@
Status BinderUpdateEngineAndroidService::applyPayload(
const String16& url,
+ int64_t payload_offset,
+ int64_t payload_size,
const vector<String16>& header_kv_pairs) {
return Status::ok();
}
diff --git a/binder_service_android.h b/binder_service_android.h
index 2fb9ca1..4ab19b3 100644
--- a/binder_service_android.h
+++ b/binder_service_android.h
@@ -17,6 +17,8 @@
#ifndef UPDATE_ENGINE_BINDER_SERVICE_ANDROID_H_
#define UPDATE_ENGINE_BINDER_SERVICE_ANDROID_H_
+#include <stdint.h>
+
#include <vector>
#include <utils/Errors.h>
@@ -53,6 +55,8 @@
// android::os::BnUpdateEngine overrides.
android::binder::Status applyPayload(
const android::String16& url,
+ int64_t payload_offset,
+ int64_t payload_size,
const std::vector<android::String16>& header_kv_pairs) override;
android::binder::Status bind(
diff --git a/update_engine_client_android.cc b/update_engine_client_android.cc
index 5cbcd33..3485807 100644
--- a/update_engine_client_android.cc
+++ b/update_engine_client_android.cc
@@ -110,9 +110,16 @@
DEFINE_string(payload,
"http://127.0.0.1:8080/payload",
"The URI to the update payload to use.");
+ DEFINE_int64(offset, 0,
+ "The offset in the payload where the CrAU update starts. "
+ "Used when --update is passed.");
+ DEFINE_int64(size, 0,
+ "The size of the CrAU part of the payload. If 0 is passed, it "
+ "will be autodetected. Used when --update is passed.");
DEFINE_string(headers,
"",
- "A list of key-value pairs, one element of the list per line.");
+ "A list of key-value pairs, one element of the list per line. "
+ "Used when --update is passed.");
DEFINE_bool(suspend, false, "Suspend an ongoing update and exit.");
DEFINE_bool(resume, false, "Resume a suspended update.");
@@ -187,6 +194,8 @@
}
Status status = service_->applyPayload(
android::String16{FLAGS_payload.data(), FLAGS_payload.size()},
+ FLAGS_offset,
+ FLAGS_size,
and_headers);
if (!status.isOk())
return ExitWhenIdle(status);