Skip to content

hypoxic/GoPro-Research

Repository files navigation

GoPro Research

This Repo has logs, utilities, and legally extracted assests for various GoPro Cameras. Older camera's assets are in their own unique repos within Hypoxic's Github.

Camera Teardowns

GoPro HERO13 Teardown
GoPro HERO12 Teardown
GoPro HERO11 Teardown
GoPro HERO10 Teardown
GoPro HERO9 Teardown
GoPro HERO MAX Physical Teardown
GoPro HERO8 Teardown
GoPro HERO7 Silver & White Research
GoPro HERO7 Teardown | HERO7 Repo
GoPro HERO6 Teardown
GoPro HERO (2018 Research)
GoPro HERO5 Physical Teardown | HERO5 Repo

Interfaces & Accessories

Socionext GP2 Research
Socionext GP1 / SC2000a Research
Micronesia (Security Enclave) Research
GoPro Media Mod Teardown
Anti Cloning Technology on the GoPro HEROBUS(tm) 2.0
GoPro HEROBus(tm) Research
GoPro HERO[5-9] Interfaces

GoPro Camera Database

Please create a pull request if you have any changes or additions

Camera Model # Code Name Camera FCC ID Processor Sensor Wifi/BT Notes
???? 67 Stones Might be transcoder
HERO (2024) 66 Fraction H24.03 AMFR1 Ambarella H22 Sony IMX688? BCM43456 Chicony Whitelabelled
HERO13 Black 65 Shipstern H24.01 CPSS1 Socionext GP2 Sony IMX677L BCM4381
Max2 64 Pebbles CPPB1 Socionext GP2 Sony IMX677L
HERO12 Black 62 Red Bluff H23.01 SPBL1 Socionext GP2 Sony IMX677L QCA9377
HERO11 Mini 60 Pismo H22.03 CPPM1 Socionext GP2 Sony IMX677L QCA9377
HERO11 Black 58 Sultans H22.01 SPBL1 Socionext GP2 Sony IMX677L QCA9377
HERO10 Black 57 Kongs H21.01 SPBL1 Socionext GP2 Sony IMX677 QCA9377
HERO9 Black 55 Boilers HD9.01 SPBL1 Socionext GP1 Sony IMX677 QCA9377
Max 51 Coconuts H19.03 SPCC1 Socionext GP1 Sony IMX577 QCA9377
HERO8 50 JBay HD8.01 SPJB1 Socionext GP1 Sony IMX277 QCA9377
HERO (2018) 34 Smoky H18.01 ASST1 Ambarella A9SE7 Sony IMX117 QCA9377
HERO7 Silver 33 Badger H18.03 SPTM1 Qualcomm APQ8053-Pro Sony IMX458
HERO7 White 32 Boomer H18.02 SPTM1 Qualcomm APQ8053-Lite Sony IMX458
HERO7 30 Tavarua HD7.01 SPCH1 Socionext GP1 Sony IMX277 QCA9377
HERO6 24 Chopes HD6.01 SPCH1 Socionext GP1 Sony IMX277 QCA9377
Fusion 22 Superbank FS1.04 SBDC1 Ambarella A9SE7 QCA9377
HERO5 Session 21 Margaret River HD5.03 HWMR1 Ambarella A9SE7 Sony IMX117 QCA9377
HERO5 19 Streaky HD5.02 ASST1 Ambarella A9SE7 Sony IMX117 QCA9377
HERO+ 17 Himalayas HD3.22 HWHM1
HERO4 Session 16 Rocky Point HX1.01 HWRP1 Ambarella A7 Sony IMX117 QCA6134X
HERO+ LCD 15 Haleiwa HD3.21 HWHM1
HERO 14 Bolina HD3.20 XXXXX
HERO4 Black 13 Pipe HD4.02 XXXXX Ambarella A9 Sony IMX117 QCA6134X
HERO4 Silver 12 Backdoor HD4.01 XXXXX Ambarella A9 Sony IMX117 QCA6134X
HERO3+ Black 11 Bawa HD3.11 XXXXX Ambarella A7 Sony IMX117
HERO3+ Silver 10 Uluwatu HD3.10 XXXXX Ambarella A7
HERO3 Black 4 Todos HD3.03 XXXXX Ambarella A7 Sony IMX117
HERO3 Silver 3 Blacks HD3.02 XXXXX Ambarella A5S MY9F002
HERO3 White 2 Shores HD3.01 XXXXX Ambarella A5S MT9P001
HERO2 1 NONE HD2.01 XXXXX Ambarella A5S MY9F002
HERO Ambarella A2S MT9P006I12STC

Tools

Various tools to extract data from the firmware images.

GP2

GoPro HERO 10 and up.
Tools and scripts for GP2 based cameras

GP1

Works with GoPro HERO[6-9]

  • unpackh6 - Breaks up the firmware into it's various binary blobs
  • binldr.py - IDA loader for RTOS straight from update file
  • busybox - Compiled busybox with all the components such as telnetd
  • decompress.py - used to decompress Embedded Wizard content
  • extract_read8.bin.py - Extracts the various binaries from a read image. Useful for research with variables in memory.
  • extracth8dtb.py - Extracts the Device tree from the image. Requires FdtBlobParse & glob
  • extract8rom.py - Extracts the rom files from the HERO8/MAX image
  • extractXromfs.py - Extracts the rom files from the HEROX image. Note, it's not precise as the memory size is now in code. A warning is given when the memory bounds do not match.
  • extracthbmpd - Extracts the display's bitmaps from front and back
  • gp1dropper - rewrites memory in the rtos from linux for code execution in the the rtos
  • memdump_h8 - linux based utility to read all of the RTOS memory space and dump it to a file. Useful for research with global data initialized.
  • readldr.py - IDA loader for a read in binary. Use memdump_h8 within linux os, then use this loader on resulting binary.
  • replace_rom_file.py - Replaces a rom file with an external rom file and recalculates the crcs. Must be the same size. Replace the original files with the resulting files
  • replace_section_file - Replaces an extracted section with the one passed. Usefull for patching linux to add your own hook.
  • gp1info - A tool which loads a binary from Linux into RTOS memory space and then overwrites a test command. Allows me to run my own code in the RTOS. The complimentary RTOS code allows me to run MCR's to get information on the Socionext GP1 processor. It also has some calls to inspect the eMMC prior to phyiscally removing the device.

Logs

Various public dumps, logs, and musings from our research on these various cameras.

GoPro HERO 11
GoPro HERO 10
GoPro HERO 9
GoPro MAX
GoPro HERO 8
GoPro HERO 7
GoPro HERO 5
GoPro HERO 4 Session

About

For public GoPro HERO[*] information

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages