diff options
-rw-r--r-- | CleanSpec.mk | 8 | ||||
-rw-r--r-- | applypatch/Android.bp | 7 | ||||
-rw-r--r-- | applypatch/applypatch.cpp | 2 | ||||
-rw-r--r-- | applypatch/vendor_flash_recovery.rc | 3 | ||||
-rw-r--r-- | edify/Android.bp | 1 | ||||
-rw-r--r-- | minadbd/Android.bp | 4 | ||||
-rw-r--r-- | minadbd/minadbd_services.cpp | 18 | ||||
-rw-r--r-- | otautil/Android.bp | 1 | ||||
-rw-r--r-- | recovery_utils/Android.bp | 1 |
9 files changed, 42 insertions, 3 deletions
diff --git a/CleanSpec.mk b/CleanSpec.mk index 0980a35f3..d4e9e437b 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -61,6 +61,14 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/priv-app/SystemUpdaterSample $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib*/libbrotli.so) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib*/libbz.so) +# Move recovery resources from /system to /vendor. +$(call add-clean-step, rm -f $(PRODUCT_OUT)/system/bin/applypatch) +$(call add-clean-step, rm -r $(PRODUCT_OUT)/symbols/system/bin/applypatch) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/PACKAGING/target_files_intermediates/*-target_files-*/SYSTEM/bin/applypatch) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/PACKAGING/target_files_intermediates/*-target_files-*/SYSTEM/bin/install-recovery.sh) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/PACKAGING/target_files_intermediates/*-target_files-*/SYSTEM/etc/recovery-resource.dat) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/PACKAGING/target_files_intermediates/*-target_files-*/SYSTEM/recovery-from-boot.p) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/applypatch/Android.bp b/applypatch/Android.bp index 55d185201..13a962584 100644 --- a/applypatch/Android.bp +++ b/applypatch/Android.bp @@ -31,6 +31,7 @@ cc_library_static { name: "libapplypatch", host_supported: true, + vendor_available: true, defaults: [ "applypatch_defaults", @@ -69,6 +70,7 @@ cc_library_static { cc_library_static { name: "libapplypatch_modes", + vendor_available: true, defaults: [ "applypatch_defaults", @@ -92,6 +94,7 @@ cc_library_static { cc_binary { name: "applypatch", + vendor: true, defaults: [ "applypatch_defaults", @@ -120,6 +123,10 @@ cc_binary { "libz", "libziparchive", ], + + init_rc: [ + "vendor_flash_recovery.rc", + ], } cc_library_host_static { diff --git a/applypatch/applypatch.cpp b/applypatch/applypatch.cpp index 336860cb9..adda6976d 100644 --- a/applypatch/applypatch.cpp +++ b/applypatch/applypatch.cpp @@ -279,7 +279,7 @@ bool PatchPartition(const Partition& target, const Partition& source, const Valu } FileContents source_file; - if (ReadPartitionToBuffer(source, &source_file, true)) { + if (ReadPartitionToBuffer(source, &source_file, backup_source)) { return GenerateTarget(target, source_file, patch, bonus, backup_source); } diff --git a/applypatch/vendor_flash_recovery.rc b/applypatch/vendor_flash_recovery.rc new file mode 100644 index 000000000..37a7c2be7 --- /dev/null +++ b/applypatch/vendor_flash_recovery.rc @@ -0,0 +1,3 @@ +service vendor_flash_recovery /vendor/bin/install-recovery.sh + class main + oneshot diff --git a/edify/Android.bp b/edify/Android.bp index 42947eb4e..73048d21c 100644 --- a/edify/Android.bp +++ b/edify/Android.bp @@ -16,6 +16,7 @@ cc_library_static { name: "libedify", host_supported: true, + vendor_available: true, srcs: [ "expr.cpp", diff --git a/minadbd/Android.bp b/minadbd/Android.bp index 071712599..b7075e670 100644 --- a/minadbd/Android.bp +++ b/minadbd/Android.bp @@ -40,6 +40,7 @@ cc_library { defaults: [ "minadbd_defaults", + "librecovery_utils_defaults", ], srcs: [ @@ -48,6 +49,7 @@ cc_library { ], static_libs: [ + "librecovery_utils", "libotautil", ], @@ -97,6 +99,7 @@ cc_test { defaults: [ "minadbd_defaults", + "librecovery_utils_defaults", ], srcs: [ @@ -107,6 +110,7 @@ cc_test { static_libs: [ "libminadbd_services", "libfusesideload", + "librecovery_utils", "libotautil", "libadbd", ], diff --git a/minadbd/minadbd_services.cpp b/minadbd/minadbd_services.cpp index cabcdaa09..eb91fb3e4 100644 --- a/minadbd/minadbd_services.cpp +++ b/minadbd/minadbd_services.cpp @@ -44,6 +44,7 @@ #include "fuse_adb_provider.h" #include "fuse_sideload.h" #include "minadbd/types.h" +#include "recovery_utils/battery_utils.h" #include "services.h" #include "sysdeps.h" @@ -160,7 +161,10 @@ static void RescueInstallHostService(unique_fd sfd, const std::string& args) { // If given an empty string, dumps all the supported properties (analogous to `adb shell getprop`) // in lines, e.g. "[prop]: [value]". static void RescueGetpropHostService(unique_fd sfd, const std::string& prop) { + constexpr const char* kRescueBatteryLevelProp = "rescue.battery_level"; static const std::set<std::string> kGetpropAllowedProps = { + // clang-format off + kRescueBatteryLevelProp, "ro.build.date.utc", "ro.build.fingerprint", "ro.build.flavor", @@ -170,18 +174,28 @@ static void RescueGetpropHostService(unique_fd sfd, const std::string& prop) { "ro.build.version.incremental", "ro.product.device", "ro.product.vendor.device", + // clang-format on }; + + auto query_prop = [](const std::string& key) { + if (key == kRescueBatteryLevelProp) { + auto battery_info = GetBatteryInfo(); + return std::to_string(battery_info.capacity); + } + return android::base::GetProperty(key, ""); + }; + std::string result; if (prop.empty()) { for (const auto& key : kGetpropAllowedProps) { - auto value = android::base::GetProperty(key, ""); + auto value = query_prop(key); if (value.empty()) { continue; } result += "[" + key + "]: [" + value + "]\n"; } } else if (kGetpropAllowedProps.find(prop) != kGetpropAllowedProps.end()) { - result = android::base::GetProperty(prop, "") + "\n"; + result = query_prop(prop) + "\n"; } if (result.empty()) { result = "\n"; diff --git a/otautil/Android.bp b/otautil/Android.bp index c8f974688..3b3f9cbc4 100644 --- a/otautil/Android.bp +++ b/otautil/Android.bp @@ -16,6 +16,7 @@ cc_library_static { name: "libotautil", host_supported: true, + vendor_available: true, recovery_available: true, defaults: [ diff --git a/recovery_utils/Android.bp b/recovery_utils/Android.bp index 1f4221757..bf79a2e87 100644 --- a/recovery_utils/Android.bp +++ b/recovery_utils/Android.bp @@ -75,6 +75,7 @@ cc_library_static { visibility: [ "//bootable/recovery", "//bootable/recovery/install", + "//bootable/recovery/minadbd", "//bootable/recovery/tests", ], } |