Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 507bfdfc authored by Andres Morales's avatar Andres Morales Committed by Android (Google) Code Review
Browse files

Merge "mkbootimg: make mkbootimg print image cksum to stdout" into mnc-dev

parents e98bfaeb 7f9259f6
Loading
Loading
Loading
Loading
+54 −34
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@
#include <unistd.h>
#include <unistd.h>
#include <fcntl.h>
#include <fcntl.h>
#include <errno.h>
#include <errno.h>
#include <stdbool.h>


#include "mincrypt/sha.h"
#include "mincrypt/sha.h"
#include "bootimg.h"
#include "bootimg.h"
@@ -65,6 +66,7 @@ int usage(void)
            "       [ --board <boardname> ]\n"
            "       [ --board <boardname> ]\n"
            "       [ --base <address> ]\n"
            "       [ --base <address> ]\n"
            "       [ --pagesize <pagesize> ]\n"
            "       [ --pagesize <pagesize> ]\n"
            "       [ --id ]\n"
            "       -o|--output <filename>\n"
            "       -o|--output <filename>\n"
            );
            );
    return 1;
    return 1;
@@ -74,6 +76,14 @@ int usage(void)


static unsigned char padding[16384] = { 0, };
static unsigned char padding[16384] = { 0, };


static void print_id(const uint8_t *id, size_t id_len) {
    printf("0x");
    for (unsigned i = 0; i < id_len; i++) {
        printf("%02x", id[i]);
    }
    printf("\n");
}

int write_padding(int fd, unsigned pagesize, unsigned itemsize)
int write_padding(int fd, unsigned pagesize, unsigned itemsize)
{
{
    unsigned pagemask = pagesize - 1;
    unsigned pagemask = pagesize - 1;
@@ -121,12 +131,15 @@ int main(int argc, char **argv)


    memset(&hdr, 0, sizeof(hdr));
    memset(&hdr, 0, sizeof(hdr));


    bool get_id = false;
    while(argc > 0){
    while(argc > 0){
        char *arg = argv[0];
        char *arg = argv[0];
        if (!strcmp(arg, "--id")) {
            get_id = true;
            argc -= 1;
            argv += 1;
        } else if(argc >= 2) {
            char *val = argv[1];
            char *val = argv[1];
        if(argc < 2) {
            return usage();
        }
            argc -= 2;
            argc -= 2;
            argv += 2;
            argv += 2;
            if(!strcmp(arg, "--output") || !strcmp(arg, "-o")) {
            if(!strcmp(arg, "--output") || !strcmp(arg, "-o")) {
@@ -161,6 +174,9 @@ int main(int argc, char **argv)
            } else {
            } else {
                return usage();
                return usage();
            }
            }
        } else {
            return usage();
        }
    }
    }
    hdr.page_size = pagesize;
    hdr.page_size = pagesize;


@@ -261,6 +277,10 @@ int main(int argc, char **argv)
        if(write_padding(fd, pagesize, hdr.second_size)) goto fail;
        if(write_padding(fd, pagesize, hdr.second_size)) goto fail;
    }
    }


    if (get_id) {
        print_id(sha, sizeof(hdr.id));
    }

    return 0;
    return 0;


fail:
fail: