Allow custom bootloader msg offset in block misc
Use board define BOARD_RECOVERY_BLDRMSG_OFFSET with a decimal integer to define a custom offset where the bootloader message should be read/written. Change-Id: Id13a23dd41bb7d907b96d657b8e21eb839dfeaa9
This commit is contained in:
committed by
Gerrit Code Review
parent
2fec60a5dc
commit
fb60a94f0a
@@ -335,6 +335,10 @@ LOCAL_SRC_FILES = adb_install.cpp bootloader.cpp verifier.cpp mtdutils/mtdutils.
|
||||
LOCAL_SHARED_LIBRARIES += libc liblog libcutils libmtdutils
|
||||
LOCAL_STATIC_LIBRARIES += libmincrypttwrp
|
||||
|
||||
ifneq ($(BOARD_RECOVERY_BLDRMSG_OFFSET),)
|
||||
LOCAL_CFLAGS += -DBOARD_RECOVERY_BLDRMSG_OFFSET=$(BOARD_RECOVERY_BLDRMSG_OFFSET)
|
||||
endif
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
commands_recovery_local_path := $(LOCAL_PATH)
|
||||
|
||||
@@ -258,6 +258,9 @@ static int get_bootloader_message_block(struct bootloader_message *out,
|
||||
LOGE("Can't open %s\n(%s)\n", v->blk_device, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
#ifdef BOARD_RECOVERY_BLDRMSG_OFFSET
|
||||
fseek(f, BOARD_RECOVERY_BLDRMSG_OFFSET, SEEK_SET);
|
||||
#endif
|
||||
struct bootloader_message temp;
|
||||
int count = fread(&temp, sizeof(temp), 1, f);
|
||||
if (count != 1) {
|
||||
@@ -280,6 +283,9 @@ static int set_bootloader_message_block(const struct bootloader_message *in,
|
||||
LOGE("Can't open %s\n(%s)\n", v->blk_device, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
#ifdef BOARD_RECOVERY_BLDRMSG_OFFSET
|
||||
fseek(f, BOARD_RECOVERY_BLDRMSG_OFFSET, SEEK_SET);
|
||||
#endif
|
||||
int count = fwrite(in, sizeof(*in), 1, f);
|
||||
if (count != 1) {
|
||||
LOGE("Failed writing %s\n(%s)\n", v->blk_device, strerror(errno));
|
||||
@@ -300,6 +306,9 @@ int get_bootloader_message_block_name(struct bootloader_message *out) {
|
||||
LOGE("Can't open %s\n(%s)\n", device_name, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
#ifdef BOARD_RECOVERY_BLDRMSG_OFFSET
|
||||
fseek(f, BOARD_RECOVERY_BLDRMSG_OFFSET, SEEK_SET);
|
||||
#endif
|
||||
struct bootloader_message temp;
|
||||
int count = fread(&temp, sizeof(temp), 1, f);
|
||||
if (count != 1) {
|
||||
@@ -322,6 +331,9 @@ int set_bootloader_message_block_name(const struct bootloader_message *in,
|
||||
printf("Can't open %s\n(%s)\n", block_name, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
#ifdef BOARD_RECOVERY_BLDRMSG_OFFSET
|
||||
fseek(f, BOARD_RECOVERY_BLDRMSG_OFFSET, SEEK_SET);
|
||||
#endif
|
||||
int count = fwrite(in, sizeof(*in), 1, f);
|
||||
if (count != 1) {
|
||||
printf("Failed writing %s\n(%s)\n", block_name, strerror(errno));
|
||||
|
||||
Reference in New Issue
Block a user