Retrofit devices do not do allocatable space / 2.
Retrofit devices have two supers, so the allocatable
space does not need to be halved.
Test: manual OTA
Bug: 118506262
Change-Id: I31c77b9318e7c0b6bc6d1a8ae6efa70a3383b05f
diff --git a/boot_control_android.cc b/boot_control_android.cc
index f4e0a4b..2d2b77e 100644
--- a/boot_control_android.cc
+++ b/boot_control_android.cc
@@ -323,12 +323,17 @@
total_size += group.size;
}
- if (total_size > (builder->AllocatableSpace() / 2)) {
- LOG(ERROR)
- << "The maximum size of all groups with suffix " << target_suffix
- << " (" << total_size
- << ") has exceeded half of allocatable space for dynamic partitions "
- << (builder->AllocatableSpace() / 2) << ".";
+ string expr;
+ uint64_t allocatable_space = builder->AllocatableSpace();
+ if (!dynamic_control->IsDynamicPartitionsRetrofit()) {
+ allocatable_space /= 2;
+ expr = "half of ";
+ }
+ if (total_size > allocatable_space) {
+ LOG(ERROR) << "The maximum size of all groups with suffix " << target_suffix
+ << " (" << total_size << ") has exceeded " << expr
+ << "allocatable space for dynamic partitions "
+ << allocatable_space << ".";
return false;
}