diff --git a/CleanSpec.mk b/CleanSpec.mk index 0980a35f..d4e9e437 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 55d18520..13a96258 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 336860cb..adda6976 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 00000000..37a7c2be --- /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 42947eb4..73048d21 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/otautil/Android.bp b/otautil/Android.bp index c8f97468..3b3f9cbc 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: [