From 9ad8ba21b31cebc66dccdd341798357f54c64b87 Mon Sep 17 00:00:00 2001 From: Brandon Bennett Date: Sat, 7 May 2011 23:42:58 -0600 Subject: [PATCH] Allow per device unsafe-to-format partition list The change switches is_safe_to_format() from a hard coded list to a list that can be overwritten by system property. Change-Id: Ie536044a912c3e88462831851d288a60fdc30e2b --- extendedcommands.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/extendedcommands.c b/extendedcommands.c index e5daa5a..2e3fa51 100644 --- a/extendedcommands.c +++ b/extendedcommands.c @@ -490,8 +490,19 @@ typedef struct { int is_safe_to_format(char* name) { - return !(strcmp(name, "/misc") == 0 || strcmp(name, "/radio") == 0 - || strcmp(name, "/bootloader") == 0 || strcmp(name, "/recovery") == 0); + char str[255]; + char* partition; + property_get("ro.recovery.format_ignore_partitions", str, "/misc,/radio,/bootloader,/recovery"); + + partition = strtok(str, ", "); + while (partition != NULL) { + if (strcmp(name, partition) == 0) { + return 0; + } + partition = strtok(NULL, ", "); + } + + return 1; } void show_partition_menu()