Ambarella firmware patching [A7Tool]

Status
Not open for further replies.

Tobi@s

Well-Known Member
App Developer
Joined
Nov 12, 2013
Messages
1,376
Reaction score
842
Location
Remote
Country
Germany
Dash Cam
none
Hello guys,
I just implemented full Ambarella firmware patch support in A7Tool (http://dashcamtalk.com/forum/threads/app-a7tool-v0-6-ambarella-a2-a7-firmware-tool.6029/ ).

Huh?! What are firmware patches?
Firmware patches are small files which contain replacement-data for binaries. They can add functions or change something. They are interpreted by software (in this case A7Tool) and then get applied to the binary.

How to apply them (using A7Tool):
  1. File > Open A* Firmware
  2. Sections > Export All
  3. Now you can modify the sections or rfs or just proceed with step 4
  4. Tools > Firmware patcher
  5. Load > Patch
  6. Select an .ap patch which fits to your firmware version and press "open"
  7. Repeat step 6 with all patches you want to apply
  8. "Apply all patches"
  9. Close Firmware Patcher
  10. Build > Firmware binary
  11. Thats is :D

How to create firmware patches? (for devs)

Template:
Code:
;Device
;Firmware Version (ex: 20140617)
;Device configuration (ex: GPS 1CARD)
;Patch section (valid: BST, BLD, PRI, HAL, RFS, DSP)
;Description of the patch
;Author
ADDRESS:PAYLOAD (ex: 291CBA:ABBABBAA)
Then save it as text file with this extension: .ap

Example:
This is a functional example patch:
Code:
;MINI0801 X24
;20140617
;GPS 1CARD
;PRI
;Change vbr to 18MBit/s
;Tobi@s
2918c0:00008040000080400000804000008041
2918d0:00008041000080410000804100008041
2918e0:00008041000080410000804100008041
2918f0:0000c0400000a0400000804000008041
291900:00008041000080410000804100008041
291910:00008041000080410000804100008041
291920:00008041000080410000c04000008041
291930:0000c04000008040000000410000c040
291940:00008040000080400000404000000040
291950:3333333f9a99193f0000003f00000041
291960:0000c040000080400000a04000008040
291970:00004040000080400000404000000040
291980:3333333f9a99193f0000003f00004041
291990:00008041000080410000804100008041
2919a0:00008041000080410000804100008041
2919b0:00008041000080410000804100008041
2919c0:000080410000c040000080410000c040
2919d0:00008040000080400000404000000040
2919e0:3333333f9a99193f0000003f3333333f
2919f0:9a99193f0000003f0000804000004040
291a00:000000400000a0400000804000004040
291a10:0000c0400000a0400000804001000000

To make this feature useful there need to be a few guys with knowledge who want to create thse patches :D I'll start with 0801 and 0803. Happy about everyone who wants to contribute.
 
Last edited by a moderator:
Status
Not open for further replies.
Top