GSOC official firmware - mdubinko/gsoc-contrib GitHub Wiki
Official firmware updates can be examined (as of v1.3) as follows.
Unpacking the firmware (requires Linux)
% sudo fdisk -l sdcard.img
=>
Disk sdcard.img: 811 MiB, 850395136 bytes, 1660928 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type
sdcard.img1 * 2048 22527 20480 10M c W95 FAT32 (LBA)
sdcard.img2 22528 841727 819200 400M 83 Linux
sdcard.img3 841728 1660927 819200 400M c W95 FAT32 (LBA)
To mount the first/third partition: (replace 2048 below with the appropriate Start sector and 20480 with total Sectors)
sudo mount -t vfat -o loop,ro,offset=$((2048 * 512)),sizelimit=$((20480 * 512)) sdcard.img /mnt/disk1
And for the second one: (again, substitute in the appropriate Start sector)
sudo mount -t ext4 -o loop,ro,offset=$((22528 * 512)),sizelimit=$((819200 * 512)) sdcard.img /mnt/disk2
Partition 1 contains boot files, based on the ARM U-Boot system
Partition 3 contains a a single file rootfs.tar, which unpacks to a complete Linux filesystem including binaries and config files. Depending on how your your OS mounts the SD card, this may be what you see if you insert the SD card into your computer.
Partition 2, which requires the ability to mount an ext4 filesystem, seems to be an exact copy (already unpacked) of partition 3.
Partition 2 is operative when booting from the SD card (in other words, during the firmware update process) while the unpacked and copied filesystem from Partition 3 is operative from main eMMC storage during normal GSOC operation.