๐Ÿ“ฆ cyrozap / mediatek-wifi-re

Notes and utilities for reverse engineering the firmware used in MediaTek's WiFi cores. This includes the cores used in PCIe/USB/SDIO-attached chips, standalone WiFi microcontrollers, and SoCs with built-in WiFi.

โ˜… 22 stars โ‘‚ 3 forks ๐Ÿ‘ 22 watching โš–๏ธ GNU General Public License v3.0
๐Ÿ“ฅ Clone https://github.com/cyrozap/mediatek-wifi-re.git
HTTPS git clone https://github.com/cyrozap/mediatek-wifi-re.git
SSH git clone git@github.com:cyrozap/mediatek-wifi-re.git
CLI gh repo clone cyrozap/mediatek-wifi-re
cyrozap cyrozap Add OpenOCD config for MT7697 bcbb3b9 2 years ago ๐Ÿ“ History
๐Ÿ“‚ master View all commits โ†’
๐Ÿ“„ .gitignore
๐Ÿ“„ COPYING.txt
๐Ÿ“„ extract_fw.py
๐Ÿ“„ Makefile
๐Ÿ“„ mt7697.cfg
๐Ÿ“„ Notes.md
๐Ÿ“„ README.md
๐Ÿ“„ README.md

MediaTek WiFi RE

Notes and utilities for reverse engineering the firmware used in MediaTek's WiFi cores. This includes the cores used in PCIe/USB/SDIO-attached chips, standalone WiFi microcontrollers, and SoCs with built-in WiFi.

Quick start

Software dependencies

Procedure

  • Install dependencies.
  • Run make to generate the parser code used by extract_fw.py.
  • Obtain the WIFI_RAM_CODE* binaries you're interested in. You can
find these on many MediaTek-based Android phones in the /system/etc/firmware directory, but if that doesn't work for you, you can also find these firmware files on the Internet--typically in the "vendor.zip" files posted by Android ROM developers. You can also find them, for example, using this GitHub search query, but you'll need to be logged in to GitHub in order for that to work.
  • Extract the code and data sections from each binary with
./extract_fw.py ..., where ... is the name of the WIFI_RAM_CODE* firmware binary.

Reverse engineering notes

See Notes.md.

License

Except where otherwise stated:

  • All software in this repository (e.g., tools for unpacking firmware, etc.) is
made available under the GNU General Public License, version 3 or later.
  • All copyrightable content that is not software (e.g., reverse engineering
notes, this README file, etc.) is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.