diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk index d712d600..73eafa2f 100644 --- a/BoardConfig-common.mk +++ b/BoardConfig-common.mk @@ -46,7 +46,6 @@ endif BOARD_KERNEL_CMDLINE += dyndbg=\"func alloc_contig_dump_pages +p\" BOARD_KERNEL_CMDLINE += earlycon=exynos4210,0x10A00000 console=ttySAC0,115200 androidboot.console=ttySAC0 printk.devkmsg=on BOARD_KERNEL_CMDLINE += cma_sysfs.experimental=Y -BOARD_KERNEL_CMDLINE += stack_depot_disable=off page_pinner=on BOARD_KERNEL_CMDLINE += swiotlb=noforce BOARD_BOOTCONFIG += androidboot.boot_devices=14700000.ufs diff --git a/device_framework_matrix_product.xml b/device_framework_matrix_product.xml index 3c24f9a0..c007ae20 100644 --- a/device_framework_matrix_product.xml +++ b/device_framework_matrix_product.xml @@ -134,9 +134,9 @@ default - + vendor.google.google_battery - 1.2 + 1 IGoogleBattery default diff --git a/interfaces/boot/1.2/BootControl.cpp b/interfaces/boot/1.2/BootControl.cpp index a28be05a..6c480bb6 100644 --- a/interfaces/boot/1.2/BootControl.cpp +++ b/interfaces/boot/1.2/BootControl.cpp @@ -49,6 +49,8 @@ namespace { #define BOOT_B_PATH "/dev/block/by-name/boot_b" #define DEVINFO_PATH "/dev/block/by-name/devinfo" +#define BLOW_AR_PATH "/sys/kernel/boot_control/blow_ar" + // slot flags #define AB_ATTR_PRIORITY_SHIFT 52 #define AB_ATTR_PRIORITY_MASK (3UL << AB_ATTR_PRIORITY_SHIFT) @@ -174,6 +176,11 @@ static void DevInfoInitSlot(devinfo_ab_slot_data_t &slot_data) { slot_data.fastboot_ok = 0; } +static bool blowAR() { + android::base::unique_fd fd(open(BLOW_AR_PATH, O_WRONLY | O_DSYNC)); + return android::base::WriteStringToFd("1", fd); +} + } // namespace // Methods from ::android::hardware::boot::V1_0::IBootControl follow. @@ -211,7 +218,17 @@ Return BootControl::markBootSuccessful(markBootSuccessful_cb _hidl_cb) { ret = setSlotFlag(getCurrentSlot(), AB_ATTR_SUCCESSFUL); } - !ret ? _hidl_cb({false, "Failed to set successful flag"}) : _hidl_cb({true, ""}); + if (!ret) { + _hidl_cb({false, "Failed to set successful flag"}); + return Void(); + } + + if (!blowAR()) { + ALOGE("Failed to blow anti-rollback counter"); + // Ignore the error, since ABL will re-trigger it on reboot + } + + _hidl_cb({true, ""}); return Void(); } diff --git a/manifest.xml b/manifest.xml index 1cb5345a..a306c704 100644 --- a/manifest.xml +++ b/manifest.xml @@ -133,14 +133,13 @@ default - - vendor.google.google_battery - hwbinder - 1.2 - - IGoogleBattery - default - + + vendor.google.google_battery + 1 + + IGoogleBattery + default + vendor.google.whitechapel.audio.audioext diff --git a/manifest_64.xml b/manifest_64.xml index 2190686b..a8b512be 100644 --- a/manifest_64.xml +++ b/manifest_64.xml @@ -125,14 +125,13 @@ default - - vendor.google.google_battery - hwbinder - 1.2 - - IGoogleBattery - default - + + vendor.google.google_battery + 1 + + IGoogleBattery + default + vendor.google.whitechapel.audio.audioext