// SPDX-License-Identifier: Apache2.0 /* * Copyright (C) 2024 Amlogic Inc. */ #include #include #include #include "bootloader_message.h" void usage() { printf("eg:urlmisc write http://xx.28.xx.53:8080/otaupdate/swupdate/software.swu\n"); printf(" urlmisc read\n"); printf(" urlmisc clean\n"); printf(" urlmisc local\n"); printf(" urlmisc setstatus\n"); printf(" urlmisc clearstatus\n"); printf(" urlmisc readstatus\n"); printf(" urlmisc readrecovery\n"); } int main(int argc, char **argv) { int ret = 0; char path_buf[256] = {0}; if ((argc != 2) && (argc != 3)) { usage(); return -1; } mtd_scan_partitions(); if (argc == 3) { if (!strcmp(argv[1], "write")) { ret = set_recovery_otapath(argv[2]); if (ret != 0) { printf("set otapath : %s failed!\n", argv[1]); return -1; } } else { usage(); return -1; } } else { if (!strcmp(argv[1], "read")) { ret = get_recovery_otapath(path_buf); if (ret != 0) { printf("get otapath failed!\n"); return -1; } } else if (!strcmp(argv[1], "clean")) { ret = clean_recovery_otapath(); if (ret != 0) { printf("clean otapath failed!\n"); return -1; } } else if (!strcmp(argv[1], "local")) { ret = set_recovery(); if (ret != 0) { printf("set local failed!\n"); return -1; } } else if (!strcmp(argv[1], "setstatus")) { ret = set_status(); if (ret != 0) { printf("set status failed!\n"); return -1; } } else if (!strcmp(argv[1], "clearstatus")) { ret = clear_status(); if (ret != 0) { printf("clean status failed!\n"); return -1; } } else if (!strcmp(argv[1], "readstatus")) { ret = read_status(); if (ret == -1) { printf("read status failed!\n"); return -1; } return ret; } else if (!strcmp(argv[1], "readrecovery")) { ret = read_recovery(); if (ret == -1) { printf("read status failed!\n"); return -1; } return ret; } else { usage(); return -1; } } return 0; }