diff options
| author | 2013-09-27 13:08:09 +0200 | |
|---|---|---|
| committer | 2013-09-27 13:08:09 +0200 | |
| commit | 303c7f937c0fa161eabb13487336db30f8cbf493 (patch) | |
| tree | 7e57f94ab84854498cb2f34332d19e2a6ac224c1 /tools | |
| parent | fa2bbf32e424ffcb4f66cf5a92274032b88605fe (diff) | |
| download | libirecovery-303c7f937c0fa161eabb13487336db30f8cbf493.tar.gz libirecovery-303c7f937c0fa161eabb13487336db30f8cbf493.tar.bz2 | |
irecovery: Show mode on /ideviceinfo command and add mode_to_str() helper
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/irecovery.c | 46 |
1 files changed, 28 insertions, 18 deletions
diff --git a/tools/irecovery.c b/tools/irecovery.c index bb6afea..950379a 100644 --- a/tools/irecovery.c +++ b/tools/irecovery.c | |||
| @@ -64,6 +64,26 @@ static void shell_usage() { | |||
| 64 | printf("\t/exit\t\tExit interactive shell.\n"); | 64 | printf("\t/exit\t\tExit interactive shell.\n"); |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | static const char* mode_to_str(int mode) { | ||
| 68 | switch (mode) { | ||
| 69 | case IRECV_K_RECOVERY_MODE_1: | ||
| 70 | case IRECV_K_RECOVERY_MODE_2: | ||
| 71 | case IRECV_K_RECOVERY_MODE_3: | ||
| 72 | case IRECV_K_RECOVERY_MODE_4: | ||
| 73 | return "Recovery"; | ||
| 74 | break; | ||
| 75 | case IRECV_K_DFU_MODE: | ||
| 76 | return "DFU"; | ||
| 77 | break; | ||
| 78 | case IRECV_K_WTF_MODE: | ||
| 79 | return "WTF"; | ||
| 80 | break; | ||
| 81 | default: | ||
| 82 | return "Unknown"; | ||
| 83 | break; | ||
| 84 | } | ||
| 85 | } | ||
| 86 | |||
| 67 | static void buffer_read_from_filename(const char *filename, char **buffer, uint64_t *length) { | 87 | static void buffer_read_from_filename(const char *filename, char **buffer, uint64_t *length) { |
| 68 | FILE *f; | 88 | FILE *f; |
| 69 | uint64_t size; | 89 | uint64_t size; |
| @@ -106,7 +126,7 @@ static void parse_command(irecv_client_t client, unsigned char* command, unsigne | |||
| 106 | irecv_send_file(client, filename, 0); | 126 | irecv_send_file(client, filename, 0); |
| 107 | } | 127 | } |
| 108 | } else if (!strcmp(cmd, "/deviceinfo")) { | 128 | } else if (!strcmp(cmd, "/deviceinfo")) { |
| 109 | int ret; | 129 | int ret, mode; |
| 110 | unsigned int cpid, bdid; | 130 | unsigned int cpid, bdid; |
| 111 | unsigned long long ecid; | 131 | unsigned long long ecid; |
| 112 | char srnm[12], imei[15]; | 132 | char srnm[12], imei[15]; |
| @@ -135,6 +155,12 @@ static void parse_command(irecv_client_t client, unsigned char* command, unsigne | |||
| 135 | if(ret == IRECV_E_SUCCESS) { | 155 | if(ret == IRECV_E_SUCCESS) { |
| 136 | printf("IMEI: %s\n", imei); | 156 | printf("IMEI: %s\n", imei); |
| 137 | } | 157 | } |
| 158 | |||
| 159 | ret = irecv_get_mode(client, &mode); | ||
| 160 | if (ret == IRECV_E_SUCCESS) { | ||
| 161 | printf("MODE: %s\n", mode_to_str(mode)); | ||
| 162 | } | ||
| 163 | |||
| 138 | } else if (!strcmp(cmd, "/exploit")) { | 164 | } else if (!strcmp(cmd, "/exploit")) { |
| 139 | char* filename = strtok(NULL, " "); | 165 | char* filename = strtok(NULL, " "); |
| 140 | debug("Sending exploit %s\n", filename); | 166 | debug("Sending exploit %s\n", filename); |
| @@ -471,23 +497,7 @@ int main(int argc, char* argv[]) { | |||
| 471 | 497 | ||
| 472 | case kShowMode: | 498 | case kShowMode: |
| 473 | irecv_get_mode(client, &mode); | 499 | irecv_get_mode(client, &mode); |
| 474 | switch (mode) { | 500 | printf("%s Mode\n", mode_to_str(mode)); |
| 475 | case IRECV_K_RECOVERY_MODE_1: | ||
| 476 | case IRECV_K_RECOVERY_MODE_2: | ||
| 477 | case IRECV_K_RECOVERY_MODE_3: | ||
| 478 | case IRECV_K_RECOVERY_MODE_4: | ||
| 479 | printf("Recovery Mode\n"); | ||
| 480 | break; | ||
| 481 | case IRECV_K_DFU_MODE: | ||
| 482 | printf("DFU Mode\n"); | ||
| 483 | break; | ||
| 484 | case IRECV_K_WTF_MODE: | ||
| 485 | printf("WTF Mode\n"); | ||
| 486 | break; | ||
| 487 | default: | ||
| 488 | printf("Unknown Mode\n"); | ||
| 489 | break; | ||
| 490 | } | ||
| 491 | break; | 501 | break; |
| 492 | 502 | ||
| 493 | case kRebootToNormalMode: | 503 | case kRebootToNormalMode: |
