https://github.com/chickendrop89/fastboot-oem-extractor
Extract hidden "fastboot oem" commands from firmware blobs (ABL, UEFI, LK)
https://github.com/chickendrop89/fastboot-oem-extractor
abl fastboot little-kernel lk mediatek oem qualcomm reverse-engineering uefi
Last synced: about 1 year ago
JSON representation
Extract hidden "fastboot oem" commands from firmware blobs (ABL, UEFI, LK)
- Host: GitHub
- URL: https://github.com/chickendrop89/fastboot-oem-extractor
- Owner: chickendrop89
- Created: 2025-03-22T17:21:02.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-04-01T21:16:57.000Z (about 1 year ago)
- Last Synced: 2025-04-01T22:27:51.720Z (about 1 year ago)
- Topics: abl, fastboot, little-kernel, lk, mediatek, oem, qualcomm, reverse-engineering, uefi
- Language: Python
- Homepage:
- Size: 5.86 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# fastboot-oem-extractor
Extract hidden "fastboot oem" commands from firmware blobs
## Supported firmware
These firmware blobs will be accepted by this tool
- ABL (Qualcomm)
- LK (MediaTek)
- Anything else containing UEFI PEs
- Anything else containing common bootloader magic bytes
## How to use:
1. Install python requirements
```shell
pip install -r requirements.txt
```
2. Prepare your firmware images from the internet, or by pulling them off the device with `adb`
3. Run extractor.py against the image
```shell
╰─$ ./extractor.py abl.img
(x) Reading firmware file: abl.img
(x) Found valid firmware structure at offset: 0x3000
(x) Extracting firmware...
(x) Found 1 UEFI portable executable(s)
(x) Matching 'oem *' ascii strings
oem device-info
oem disable-charger-screen
oem edl
oem enable-charger-screen
oem erase-vb-index
oem fbreason
oem getguid
oem getlog
oem lkmsg
oem lock
oem lpmsg
oem off-mode-charge
oem poweroff
oem select-display-panel
oem set-hw-fence-value
oem uart-enable
oem unlock
```
## Disclaimer:
In rare cases, this code might output some hallucinations of commands that don't exist,
or don't work after the device is sent out of factory. Keep this in mind