From bf11095f92c9278cb794a5336e1cce264f9b734d Mon Sep 17 00:00:00 2001 From: Badhri Jagan Sridharan Date: Fri, 15 May 2015 16:43:47 -0700 Subject: [PATCH] fastboot: Add support for fastboot flashing commands Commands added: fastboot flashing lock - Prevents flashing partitions fastboot flashing unlock - Enable user to flashing partitions fastboot flashing lock_critical - Prevents flashing bootloader related paritions fastboot flashing unlock_critical - Enables user to flash bootloader related partitions fastboot flashing get_unlock_ability - Query bootloader to check if device is locked. Change-Id: Id6db16ba32f7a2b1c3f041a76bd3bdf2d3ab471e --- fastboot/fastboot.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/fastboot/fastboot.cpp b/fastboot/fastboot.cpp index e139bcd25..7acfd6ee1 100644 --- a/fastboot/fastboot.cpp +++ b/fastboot/fastboot.cpp @@ -280,6 +280,17 @@ void usage(void) " flashall flash boot, system, vendor and if found,\n" " recovery\n" " flash [ ] write a file to a flash partition\n" + " flashing lock locks the device. Prevents flashing" + " partitions\n" + " flashing unlock unlocks the device. Allows user to" + " flash any partition except the ones" + " that are related to bootloader\n" + " flashing lock_critical Prevents flashing bootloader related" + " partitions\n" + " flashing unlock_critical Enables flashing bootloader related" + " partitions\n" + " flashing get_unlock_ability Queries bootloader to see if the" + " device is unlocked\n" " erase erase a flash partition\n" " format[:[][:[]] format a flash partition.\n" " Can override the fs type and/or\n" @@ -1201,6 +1212,16 @@ int main(int argc, char **argv) wants_reboot = 1; } else if(!strcmp(*argv, "oem")) { argc = do_oem_command(argc, argv); + } else if(!strcmp(*argv, "flashing") && argc == 2) { + if(!strcmp(*(argv+1), "unlock") || !strcmp(*(argv+1), "lock") + || !strcmp(*(argv+1), "unlock_critical") + || !strcmp(*(argv+1), "lock_critical") + || !strcmp(*(argv+1), "get_unlock_ability")) { + argc = do_oem_command(argc, argv); + } else { + usage(); + return 1; + } } else { usage(); return 1;