summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYi-Yo Chiang <yochiang@google.com>2022-08-10 04:35:27 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-08-10 04:35:27 +0000
commit5e533f324028322f9dd9c26eb0b1cc0dc0cfbca1 (patch)
tree7c0a11da3fb60088b2e36e51a5c4e28613c1c575
parent215df6dd9690f9bcf5bdfa0915ef5d20a5953b24 (diff)
parente024d00ecfb27a39fd9b798a87c58e8a99dc11ba (diff)
downloadgsid-5e533f324028322f9dd9c26eb0b1cc0dc0cfbca1.tar.gz
Add disableImage() to IImageService am: 6c1043f18e am: 99987b3c71 am: 84a8946ea1 am: 49430242ed am: e024d00ecf
Original change: https://android-review.googlesource.com/c/platform/system/gsid/+/2176548 Change-Id: Ia772ca8f789866471e7c6d33247eef4126c484e9 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--aidl/android/gsi/IImageService.aidl7
-rw-r--r--gsi_service.cpp11
2 files changed, 17 insertions, 1 deletions
diff --git a/aidl/android/gsi/IImageService.aidl b/aidl/android/gsi/IImageService.aidl
index 363a919..9f84e50 100644
--- a/aidl/android/gsi/IImageService.aidl
+++ b/aidl/android/gsi/IImageService.aidl
@@ -130,7 +130,12 @@ interface IImageService {
void removeAllImages();
/**
- * Remove all images that were marked as disabled in recovery.
+ * Mark an image as disabled.
+ */
+ void disableImage(@utf8InCpp String name);
+
+ /**
+ * Remove all images that were marked as disabled.
*/
void removeDisabledImages();
diff --git a/gsi_service.cpp b/gsi_service.cpp
index 3392a1d..10bbb51 100644
--- a/gsi_service.cpp
+++ b/gsi_service.cpp
@@ -577,6 +577,7 @@ class ImageService : public BinderService<ImageService>, public BnImageService {
int32_t* _aidl_return) override;
binder::Status zeroFillNewImage(const std::string& name, int64_t bytes) override;
binder::Status removeAllImages() override;
+ binder::Status disableImage(const std::string& name) override;
binder::Status removeDisabledImages() override;
binder::Status getMappedImageDevice(const std::string& name, std::string* device) override;
binder::Status isImageDisabled(const std::string& name, bool* _aidl_return) override;
@@ -740,6 +741,16 @@ binder::Status ImageService::removeAllImages() {
return binder::Status::ok();
}
+binder::Status ImageService::disableImage(const std::string& name) {
+ if (!CheckUid()) return UidSecurityError();
+
+ std::lock_guard<std::mutex> guard(service_->lock());
+ if (!impl_->DisableImage(name)) {
+ return BinderError("Failed to disable image: " + name);
+ }
+ return binder::Status::ok();
+}
+
binder::Status ImageService::removeDisabledImages() {
if (!CheckUid()) return UidSecurityError();