android: verity: Fix environment variable "bootargs" override
Change-Id: Idd079d8773f536928d02f1b32bb562d5540ee85a Signed-off-by: Zhangbin Tong <zebulun.tong@rock-chips.com>
This commit is contained in:
parent
270cc02165
commit
affcebcd8f
|
|
@ -505,10 +505,37 @@ static AvbSlotVerifyResult android_slot_verify(char *boot_partname,
|
||||||
if (verify_result == AVB_SLOT_VERIFY_RESULT_OK ||
|
if (verify_result == AVB_SLOT_VERIFY_RESULT_OK ||
|
||||||
verify_result == AVB_SLOT_VERIFY_RESULT_ERROR_PUBLIC_KEY_REJECTED ||
|
verify_result == AVB_SLOT_VERIFY_RESULT_ERROR_PUBLIC_KEY_REJECTED ||
|
||||||
(unlocked & LOCK_MASK)) {
|
(unlocked & LOCK_MASK)) {
|
||||||
|
int len = 0;
|
||||||
|
char *bootargs, *newbootargs;
|
||||||
|
|
||||||
|
if (*slot_data[0]->cmdline) {
|
||||||
|
debug("Kernel command line: %s\n", slot_data[0]->cmdline);
|
||||||
|
len += strlen(slot_data[0]->cmdline);
|
||||||
|
}
|
||||||
|
|
||||||
|
bootargs = env_get("bootargs");
|
||||||
|
if (bootargs)
|
||||||
|
len += strlen(bootargs);
|
||||||
|
|
||||||
|
newbootargs = malloc(len + 2);
|
||||||
|
|
||||||
|
if (!newbootargs) {
|
||||||
|
puts("Error: malloc in android_slot_verify failed!\n");
|
||||||
|
return AVB_SLOT_VERIFY_RESULT_ERROR_OOM;
|
||||||
|
}
|
||||||
|
*newbootargs = '\0';
|
||||||
|
|
||||||
|
if (bootargs) {
|
||||||
|
strcpy(newbootargs, bootargs);
|
||||||
|
strcat(newbootargs, " ");
|
||||||
|
}
|
||||||
|
if (*slot_data[0]->cmdline)
|
||||||
|
strcat(newbootargs, slot_data[0]->cmdline);
|
||||||
|
env_set("bootargs", newbootargs);
|
||||||
|
|
||||||
memcpy((uint8_t *)load_address,
|
memcpy((uint8_t *)load_address,
|
||||||
slot_data[0]->loaded_partitions->data,
|
slot_data[0]->loaded_partitions->data,
|
||||||
slot_data[0]->loaded_partitions->data_size);
|
slot_data[0]->loaded_partitions->data_size);
|
||||||
env_set("bootargs", slot_data[0]->cmdline);
|
|
||||||
|
|
||||||
/* ... and decrement tries remaining, if applicable. */
|
/* ... and decrement tries remaining, if applicable. */
|
||||||
if (!ab_data.slots[slot_index_to_boot].successful_boot &&
|
if (!ab_data.slots[slot_index_to_boot].successful_boot &&
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue