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