From 4c1bf1899096450937ba45117ad9e94ee43acf35 Mon Sep 17 00:00:00 2001 From: Richard Antony Burton Date: Tue, 26 Jul 2016 20:55:58 +0100 Subject: [PATCH] If user supplies full 32 digit cid (chksum included) use it as is without recalculating the checksum (unless they also want a new serial including in it). User request for a device that appears to always want a 00 checksum. --- .gitignore | 2 ++ README.md | 2 +- jni/evoplus_cid.c | 10 ++++++---- libs/.gitignore | 4 ++++ libs/armeabi/evoplus_cid | Bin 13540 -> 13708 bytes 5 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 .gitignore create mode 100644 libs/.gitignore mode change 100644 => 100755 libs/armeabi/evoplus_cid diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1282b32 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +obj + diff --git a/README.md b/README.md index 1431d3a..1b14a1e 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ device - sd card block device e.g. /dev/block/mmcblk1 cid - new cid, must be in hex (without 0x prefix) it can be 32 chars with checksum or 30 chars without, it will be updated with new serial number if supplied, the checksum is - always recalculated + (re)calculated if not supplied or new serial applied serial - optional, can be hex (0x prefixed) or decimal and will be applied to the supplied cid before writing ``` diff --git a/jni/evoplus_cid.c b/jni/evoplus_cid.c index 925f51c..c7a3935 100644 --- a/jni/evoplus_cid.c +++ b/jni/evoplus_cid.c @@ -124,7 +124,7 @@ void main(int argc, const char **argv) { printf("cid - new cid, must be in hex (without 0x prefix)\n"); printf(" it can be 32 chars with checksum or 30 chars without, it will\n"); printf(" be updated with new serial number if supplied, the checksum is\n"); - printf(" always recalculated\n"); + printf(" (re)calculated if not supplied or new serial applied\n"); printf("serial - optional, can be hex (0x prefixed) or decimal\n"); printf(" and will be applied to the supplied cid before writing\n"); printf("\n"); @@ -152,13 +152,15 @@ void main(int argc, const char **argv) { *((int*)&cid[9]) = htonl(parse_serial(argv[3])); } - // calculate checksum - cid[15] = crc7(cid, 15); + // calculate checksum if required + if (len != 32 || argc == 4) { + cid[15] = crc7(cid, 15); + } // open device fd = open(argv[1], O_RDWR); if(fd < 0){ - printf("[-] wtf\n"); + printf("Unable to open device %s\n", argv[1]); return; } diff --git a/libs/.gitignore b/libs/.gitignore new file mode 100644 index 0000000..bbbcd59 --- /dev/null +++ b/libs/.gitignore @@ -0,0 +1,4 @@ +* +!.gitignore +!armeabi + diff --git a/libs/armeabi/evoplus_cid b/libs/armeabi/evoplus_cid old mode 100644 new mode 100755 index f7908956967e506924ef3e4dfb68ab40cc806f5e..f01df77a51d4a4084b747425cc770eaadc3d8cbf GIT binary patch delta 3075 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 B;VA$B