You need Linux for that.
- Download latest PGv1 Release Image
- Unpack xz:
xz -d adam_v2.1_PGv1.img.xz
, you'll haveadam_v2.1_PGv1.img
in the same directory - Split image into MBR, bootloader, system partition, data partition:
dd if=adam_v2.1_PGv1.img bs=512 count=1 of=mbr.bin
dd if=adam_v2.1_PGv1.img bs=512 skip=1 count=30 of=bootloader.bin
sudo losetup --show -Pf adam_v2.1_PGv1.img
mkdir m && mount /dev/loopXp1 m
, whereX
is the device number from the previouslosetup
stepsudo mv m/gcw0/* m/
- this will copy gcw0 kernel to the root of system partitionsudo umount m && sync
sudo cat /dev/loopXp1 > system.bin
, whereX
is the device number from the previouslosetup
stepsudo cat /dev/loopXp2 > data.bin
, whereX
is the device number from thelosetup
stepsudo losetup -d /dev/loopX
, whereX
is the device number from thelosetup
step
- Git clone Ingenic-boot
- Apply the following patch or it won't compile:
diff --git a/source/stage2_cmd_tool/stage2.h b/source/stage2_cmd_tool/stage2.h
index 54e6ce6..52b9caa 100644
--- a/source/stage2_cmd_tool/stage2.h
+++ b/source/stage2_cmd_tool/stage2.h
@@ -148,4 +148,11 @@ enum OPTION
/*-------------------------------------------------------------------------*/
+int sd_card_init(struct ingenic_dev *ingenic_dev);
+
+int sd_card_program(struct ingenic_dev *ingenic_dev, unsigned int addr,
+ const char *file_path, int check);
+
+int usb_ingenic_nand_ops(struct ingenic_dev *ingenic_dev, int ops);
+
#endif /*__STAGE2_CMD_TOOL_H__ */
make
- Press SELECT+POWER on the GCW Zero
- Connect GCW Zero to the PC via USB
- Run
sudo ./ingenic-boot --mbr mbr.bin --boot bootloader.bin --system system.bin --data data.bin
It takes quite some time (around 15 minutes). New firmware would be booted automatically.