From e93bde252dd29f99b13ad76e7b862a4d610162c4 Mon Sep 17 00:00:00 2001 From: Arkadiusz Bokowy Date: Sun, 9 Aug 2020 12:53:55 +0200 Subject: [PATCH 1/2] Cleanup - trim hanging spaces --- splitupdate | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/splitupdate b/splitupdate index f630fea..c00661b 100755 --- a/splitupdate +++ b/splitupdate @@ -20,7 +20,7 @@ # Comment : Added filename autodetection and improved logging # ######################################################################################### - + use strict; use warnings; @@ -28,12 +28,12 @@ my $CRC_CHECK= -e "crc" && -x _; # Turn on print flushing. $|++; - + # Unsigned integers are 4 bytes. use constant UINT_SIZE => 4; - -# If a filename wasn't specified on the commmand line then -# assume the file to be unpacked is under current directory. + +# If a filename wasn't specified on the command line then +# assume the file to be unpacked is under current directory. my $FILENAME = undef; my $matching = '.'; if (@ARGV) { @@ -42,13 +42,13 @@ if (@ARGV) { $matching = $ARGV[1]; } } - + open(INFILE, $FILENAME) or die "Cannot open $FILENAME: $!\n"; binmode INFILE; - + # Skip the first 92 bytes, they're blank. #seek(INFILE, 92, 0); - + # We'll dump the files into a folder called "output". my $fileLoc=0; my $BASEPATH = "output/"; @@ -63,7 +63,7 @@ while (!eof(INFILE)) } close INFILE; - + # Find the next file block in the main file sub find_next_file @@ -81,14 +81,14 @@ sub find_next_file return($_fileLoc + $_skipped); } - + # Unpack a file block and output the payload to a file. sub dump_file { my $buffer = undef; my $calculatedCRC = undef; my $sourceCRC = undef; my $matching = $_[0]; - + # Verify the identifier matches. read(INFILE, $buffer, UINT_SIZE); # HeaderId unless ($buffer eq "\x55\xAA\x5A\xA5") { die "Unrecognised file format. Wrong identifier.\n"; } @@ -116,11 +116,11 @@ sub dump_file { # Grab the checksum of the file read(INFILE, $buffer, $headerLength-98); $sourceCRC=slimhexdump($buffer); - + my ($fileName) = "$fileType" . ".img"; if ($fileName =~ /$matching/) { print "extracting $fileName ($fileSize)..."; - + # Dump the payload. read(INFILE, $buffer, $dataLength); open(OUTFILE, ">$BASEPATH$fileName") or die "Unable to create $fileName: $!\n"; @@ -147,16 +147,16 @@ sub dump_file { seek(INFILE, $dataLength, 1); } print " $fileType $fileSize $fileDate $fileTime"; - + print "\n"; - + # Ensure we finish on a 4 byte boundary alignment. my $remainder = UINT_SIZE - (tell(INFILE) % UINT_SIZE); if ($remainder < UINT_SIZE) { # We can ignore the remaining padding. read(INFILE, $buffer, $remainder); } - + return (tell(INFILE)); } @@ -199,7 +199,7 @@ sub hexdump () return ($ret_str); } - + sub slimhexdump () { my $i; @@ -218,11 +218,11 @@ sub slimhexdump () sub prettyBytes { my $size = $_[0]; - + foreach ('B','KB','MB','GB','TB','PB') { return sprintf("%.2f",$size)."$_" if $size < 1024; $size /= 1024; } - + } From 7a19f07cdcce5662b70bd5a075ef424af27b940a Mon Sep 17 00:00:00 2001 From: Arkadiusz Bokowy Date: Sun, 9 Aug 2020 12:51:07 +0200 Subject: [PATCH 2/2] Try to use crc32 binary from the host system --- crc | Bin 7434 -> 0 bytes splitupdate | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) delete mode 100755 crc diff --git a/crc b/crc deleted file mode 100755 index b05f7bdb58689cd7ccca7b07a5a7a863916420c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7434 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 diff --git a/splitupdate b/splitupdate index c00661b..74c8502 100755 --- a/splitupdate +++ b/splitupdate @@ -24,7 +24,7 @@ use strict; use warnings; -my $CRC_CHECK= -e "crc" && -x _; +my $CRC_CHECK = `sh -c 'command -v crc32'`; # Turn on print flushing. $|++; @@ -131,7 +131,7 @@ sub dump_file { print "\r"; print "verifying checksum for $fileType ($fileSize)..."; - $calculatedCRC=`./crc $BASEPATH$fileType.img` if $CRC_CHECK; + $calculatedCRC=`crc32 $BASEPATH$fileType.img` if $CRC_CHECK; chomp($calculatedCRC) if $CRC_CHECK; print "\r";