https://github.com/farid1991/elf2vkp-go
Modern version of elf2vkp written in Go
https://github.com/farid1991/elf2vkp-go
elf elf-parser elf2vkp patch sony-ericsson vkp
Last synced: about 1 month ago
JSON representation
Modern version of elf2vkp written in Go
- Host: GitHub
- URL: https://github.com/farid1991/elf2vkp-go
- Owner: farid1991
- Created: 2026-01-27T07:46:59.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-02-02T14:02:41.000Z (2 months ago)
- Last Synced: 2026-02-03T22:11:22.608Z (2 months ago)
- Topics: elf, elf-parser, elf2vkp, patch, sony-ericsson, vkp
- Language: Go
- Homepage:
- Size: 3.91 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ELF2VKP-GO
Modern version of elf2vkp written in Go
This program:
1. Converts each .elf section into a V-Klay patch string.
2. Adds old patch data if a fullflash path is specified.
3. Supports ELF files produced by IAR and arm-none-eabi-gcc toolchains.
4. Supports BABE/CXC/RAW firmware formats.
# DOWNLOAD
- Windows: download .exe in [Releases](https://github.com/farid1991/elf2vkp-go/releases).
- Build from sources:
```sh
go install github.com/farid1991/elf2vkp-go@latest
```
# FEATURES
- Added support for BABE, CXC, and RAW firmware formats.
- Supports multiple firmware inputs and generates separate VKP outputs per firmware.
- Insert ";pAtChFiLe=/boot/.cxc" header for CXC firmware automatically.
- Fill old bytes with 0xFF for BABE firmware, 0x00 otherwise.
- Handles overlapping firmware sections correctly in emitVKP.
- Preserves user-provided headers and headers from files.
# USAGE
```sh
$ elf2vkp-go -i [options]
Options:
-i Input ELF patch (required)
-f Firmware file (BABE/CXC/RAW),
can be repeated for multiple firmwares
-b Firmware base address (default: 0)
-o Output VKP file (default: stdout)
If multiple firmwares are specified,
outputs will be split automatically per firmware file.
--header Add header line (repeatable)
--header-from-file Read header lines from a file
--section-names Show ELF section names in output
--chunk-size Number of bytes per line (default: 16)
-v, --version Show version
-h, --help Show this help message
```
## EXAMPLE
### Convert patch.elf to patch.vkp with old data (RAW Firmware)
```sh
$ elf2vkp-go -i patch.elf -o patch.vkp -f U10_R7AA071.bin -b 0x14000000
```
### Convert patch.elf to patch.vkp with old data (CXC Firmware)
```sh
$ elf2vkp-go -i patch.elf -o patch.vkp -f U10_R7AA071/phone_app.cxc
```
### Convert patch.elf to patch.vkp without old data
```sh
$ elf2vkp-go -i patch.elf -o patch.vkp
```
### Convert patch.elf to patch.vkp and print to stdout
```sh
$ elf2vkp-go -i patch.elf
```
### Convert patch.elf with multiple firmware files (automatic output split)
```sh
elf2vkp-go -i patch.elf -f phone_emp_app.cxc -f phone_app.cxc -o patch.vkp
# Outputs: patch_phone_emp.vkp and patch_phone_app.vkp
```