From b130b507349952cbab2a371628891de78cc8dda2 Mon Sep 17 00:00:00 2001 From: Amaury Pouly Date: Mon, 23 Mar 2015 21:30:06 +0100 Subject: Add jz4760 tool This tool can pack/unpack a jz4760 archive (like the one used for the fiio x1/x3/x5), and can descramble/scramble (it's the same operation) a firmware file (the sys.bin file in the archive). I did my best to keep the compatibility with the leaked Fiio/Ingenic tool which has the same name. I wrote the tools from scratch, but here are some remarks: - the format used is a slightly modified IHFS used in the older JZ4640 series, I used the information on the wiki about the IHFS format - the CRC computation done was already reversed engineered by someone on the forums but I realised this later - There are a few unknown fields in the headers, see comments in the source code - The firmware scrambling was discovered by pure guess, I realised there were some repetitve sequences, some I guessed it was a rotative XOR and ran some analysis to find the most probable sequence Change-Id: Ib83735b3db8475be5de9c94231714e88668a0340 --- utils/jz4760_tools/Makefile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 utils/jz4760_tools/Makefile (limited to 'utils/jz4760_tools/Makefile') diff --git a/utils/jz4760_tools/Makefile b/utils/jz4760_tools/Makefile new file mode 100644 index 0000000000..847539e38c --- /dev/null +++ b/utils/jz4760_tools/Makefile @@ -0,0 +1,21 @@ +DEFINES= +CC?=gcc +CXX?=g++ +LD?=g++ +CFLAGS=-g -std=c99 -Wall $(DEFINES) -Ilib +CXXFLAGS=-g -Wall $(DEFINES) +LDFLAGS= +SRC=$(wildcard *.c) +SRCXX=$(wildcard *.cpp) +EXEC=$(SRC:.c=) $(SRCXX:.cpp=) + +all: $(EXEC) + +%: %.c + $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) + +%: %.cpp + $(CXX) $(CXXFLAGS) -o $@ $< $(LDFLAGS) + +clean: + rm -fr $(EXEC) -- cgit