Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
nexmon — 基于 C 语言的 Broadcom/Cypress WiFi 芯片固件补丁框架,支持监控模式、帧注入等等。 | Kitploit
工具/GitHubGitHub/seemoo-lab/nexmon
嵌入式系统安全数据包嗅探与分析Wi-Fi审计逆向工程信息收集无线安全硬件黑客硬件与物联网安全固件分析
GitHubseemoo-lab/nexmon

nexmon

基于 C 语言的 Broadcom/Cypress WiFi 芯片固件补丁框架,支持监控模式、帧注入等等。

2.9k5051个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

NexMon logo

nexmon 是什么?

Nexmon 是我们基于 C 语言的固件补丁框架,适用于 Broadcom/Cypress WiFi 芯片, 它使你能够编写自己的固件补丁,例如启用带 radiotap 头的监控模式和帧注入。

下面,你可以看到 nexmon 能够实现的功能概览。本仓库主要专注于在多种芯片上启用监控模式和帧注入。如果你想要更多功能,以下项目可能会让你感兴趣:

  • http://nexmon.org/jammer: 一个真正的 Wi-Fi 干扰器,可以用任意干扰信号覆盖正在进行的帧传输。
    • 它使用 Wi-Fi 芯片作为软件定义无线电来生成干扰信号
    • 它允许使用非标准信道,例如 2.4 GHz 频段中的 80 MHz 带宽
    • 它允许设置任意发射功率
    • 它允许修补 D11 内核的实时 MAC 实现
  • http://nexmon.org/csi: 适用于多种 Wi-Fi 芯片的信道状态信息提取器
    • 它允许提取 80 MHz 带宽下最高 4x4 MIMO 传输的 CSI
  • http://nexmon.org/debugger: 在无 JTAG 访问权限的情况下调试 ARM 微控制器
    • 它允许低层访问调试寄存器以设置断点和观察点,并允许单步执行
  • http://nexmon.org/covert_channel: 将信息隐藏在 Wi-Fi 信号中的隐蔽信道
    • 比干扰器更先进的软件定义无线电功能
    • 信道状态信息提取的示例应用
  • http://nexmon.org/sdr: 将你的 Wi-Fi 芯片用作软件定义无线电
    • 目前仅在 2.4 和 5 GHz Wi-Fi 频段中支持传输

NexMon logo

警告

我们的软件可能会损坏你的硬件,并可能导致你的硬件保修失效!你使用我们的工具需要自担风险和责任!如果你不喜欢这些条款,请不要使用 nexmon!

支持的设备

目前我们的 nexmon 固件补丁支持以下设备。

1 bcm43430a1 过去被错误地标记为 bcm43438。

2 使用 LD_PRELOAD=libnexmon.so 而不是 LD_PRELOAD=libfakeioctl.so 来通过 ioctls 注入帧

3 flash 补丁需要为 8 字节长,并按 8 字节边界对齐

4 来自首款 60 GHz Wi-Fi 路由器 Talon AD7200 的 802.11ad Wi-Fi 芯片。使用 nexmon-arc 修补你的固件,并使用我们的自定义 LEDE 镜像 lede-ad7200 运行它

5 已在区域 1 上禁用执行保护(称为 Execute Never),因为它会干扰 nexmon 代码(Section 上的权限错误)

6 要使用 nexutil,你需要停用 SELinux 或将其设置为 permissive

7 有关使用 Pico SDK 与 nexmon 的示例应用,请参阅 pico-nexmon。

8 flash 补丁需要为 16 字节长,并按 16 字节边界对齐。

9 使用 Magisk 模块来安装固件、nexutil 并设置 SELinux 策略。

图例

  • M = 监控模式
  • RT = 带 RadioTap 头的监控模式
  • I = 帧注入
  • FP = Flash 补丁
  • UC = Ucode 压缩
  • CT = c't 文章支持(如需持续支持,请使用我们的 ct-artikel 分支)

创建你自己的固件补丁的步骤

使用运行 Linux 的 x86 计算机(例如 Ubuntu 16.04)为 bcm4330、bcm4339 和 bcm4358 构建补丁

  • 安装一些依赖项:sudo apt-get install git gawk qpdf adb flex bison
  • 仅 x86_64 系统需要,安装 i386 库: ``` sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
    root@kitploit:~
  • 克隆我们的仓库:git clone https://github.com/seemoo-lab/nexmon.git
  • 在仓库的根目录中:cd nexmon
    • 设置构建环境:source setup_env.sh
    • 编译一些构建工具并从原始固件文件中提取 ucode 和 flashpatches:make
  • 进入目标设备的 patches 文件夹(例如 Nexus 5 的 bcm4339):cd patches/bcm4339/6_37_34_43/nexmon/
    • 编译修补后的固件:make
    • 生成原始固件文件的备份:make backup-firmware
    • 在智能手机上安装修补后的固件:make install-firmware(请确保你的智能手机事先已连接到你的机器)

使用监控模式补丁

  • 至少从我们的工具中安装 nexutil 和 libfakeioctl。最简单的方法是使用这个应用:https://nexmon.org/app。但你也可以通过在 utilties 文件夹中执行 make 来从源码构建它(注意:为此你需要正确安装 Android NDK)。
  • 使用 ADB 工具连接到你的 Android 手机:adb shell
  • 确保你 没有 连接到任何接入点
  • 使用 nexutil 启用监控模式:nexutil -m2
  • 此时监控模式已激活。无需调用 airmon-ng。
  • 重要: 大多数工具需要 Radiotap 接口才能正常工作。libfakeioctl 会为你模拟这种类型的接口,因此,在调用你常用的工具(例如 tcpdump 或 airodump-ng)时,请使用 LD_PRELOAD 加载此库:LD_PRELOAD=libfakeioctl.so tcpdump -i wlan0
  • 未经测试的提示: 感谢 XDA 成员 ruleh,有一个 bcmdhd 驱动程序补丁可以激活原生监控模式,参见:https://github.com/ruleh/misc/tree/master/monitor

在 Nexus 5 上通过 UDP 使用 nexutil

为了在没有 root 权限的情况下与固件通信,我们创建了一个可通过 libnexio 访问的 UDP 接口,nexutil 也使用该接口。你首先需要通过设置安全 cookie 向固件证明你具有 root 权限。然后你就可以将其用于基于 UDP 的连接。你的 wlan0 接口还需要一个 192.168.222.0/24 范围内的 IP 地址,否则你必须更改 nexutil 默认的 broadcast-ip:

  • 设置 wlan0 接口的 IP 地址:ifconfig wlan0 192.168.222.1 netmask 255.255.255.0
  • 以 root 身份设置安全 cookie:nexutil -x<cookie (uint)>
  • 启动 UDP 连接,例如激活监控模式:nexutil -X<cookie> -m1

使用 Raspbian/Raspberry Pi OS 为 RPI3/Zero W 上的 bcm43430a1、RPI3+/RPI4 上的 bcm434355c0 或 RPI Zero 2W 上的 bcm43436b0 构建补丁(推荐)

注意: 我们目前支持内核版本 4.4(已弃用)、4.9、4.14、4.19、5.4、5.10 和 5.15。Raspbian 包含适用于 bcm43455c0 的固件版本 7.45.154。我们还支持来自 Cypress 的较新固件版本 7.45.189。Raspberry Pi OS 包含固件版本 7.45.206。请尝试找出最适合你的版本。

  • 确保以下命令以 root 身份执行:sudo su

  • 升级你的 Raspbian 安装:apt-get update && apt-get upgrade

  • 安装用于构建驱动程序的内核头文件和一些依赖项:sudo apt install raspberrypi-kernel-headers git libgmp3-dev gawk qpdf bison flex make autoconf libtool texinfo

  • 克隆我们的仓库:git clone https://github.com/seemoo-lab/nexmon.git

  • 进入我们仓库的根目录:cd nexmon

  • 在 32 位 Raspbian/Raspberry Pi OS 上

    • 检查 /usr/lib/arm-linux-gnueabihf/libisl.so.10 是否存在,如果不存在,则从源码编译它:
    • cd buildtools/isl-0.10, ./configure, make, make install,

使用监控模式补丁

  • 感谢 Mame82 之前的贡献,你可以通过执行以下命令来设置一个新的监控模式接口:iw phy `iw dev wlan0 info | gawk '/wiphy/ {printf "phy" $2}'` interface add mon0 type monitor
  • To activate monitor mode in the firmware, simply set the interface up: ifconfig mon0 up.
  • At this point, monitor mode is active. There is no need to call airmon-ng.
  • The interface already set the Radiotap header, therefore, tools like tcpdump or airodump-ng can be used out of the box: tcpdump -i mon0
  • Optional: To make the RPI3 load the modified driver after reboot:
    • Find the path of the default driver at reboot: modinfo brcmfmac #the first line should be the full path
    • Backup the original driver: mv "<PATH TO THE DRIVER>/brcmfmac.ko" "<PATH TO THE DRIVER>/brcmfmac.ko.orig"
    • Copy the modified driver (Kernel 4.9): cp /home/pi/nexmon/patches/bcm43430a1/7_45_41_46/nexmon/brcmfmac_kernel49/brcmfmac.ko "<PATH TO THE DRIVER>/"
    • Copy the modified driver (Kernel 4.14): cp /home/pi/nexmon/patches/bcm43430a1/7_45_41_46/nexmon/brcmfmac_4.14.y-nexmon/brcmfmac.ko "<PATH TO THE DRIVER>/"
    • Probe all modules and generate new dependency: depmod -a

How to build the utilities

To build the utilities such as nexmon or dhdutil for Android, you need to download the old NDK version 11c, extract it and export the environment variable NDK_ROOT pointing to the directory where you extracted the NDK files.

How to extract the ROM

The Wi-Fi firmware consists of a read-only part stored in the ROM of every Wi-Fi chip and another part that is loaded by the driver into the RAM. To analyze the whole firmware, one needs to extract the ROM. There are two options to do this. Either you write a firmware patch that simply copies the contents of the ROM to RAM and then you dump the RAM, or you directly dump the ROM after loading the regular firmware into the RAM. Even though, the second option is easier, it only works, if the ROM can be directly accessed by the driver, which is not always the case. Additionally, the firmware loaded into RAM can contain ROM patches that overlay the data stored in ROM. By dumping the ROM after loading the original RAM firmware, it contains flash patches. Hence, the ROM needs to be dumped again for every RAM firmware update to be consistent. As a conclusion, we prefer to dump the clean ROM after copying it to RAM.

Dumping the ROM directly

To dump the ROM directly, you need to know, where to find it and how large it is. On chips with Cortex-M3 it is usually at upper addresses such as 0x800000, while on chips with Cortex-R4 it is likely at 0x0. Run dhdutil to perform the dump:

root@kitploit:~
dhdutil membytes -r 0x0 0xA0000 > rom.bin```

## Dumping a clean ROM after copying to RAM
For the BCM4339 and BCM4358, we created `rom_extraction` projects that load a firmware patch that copies ROM to 
RAM and them dumps it using dhdutil. To dump the ROM simply execute the following in the project directory:

make dump-rom```

After ROM extraction, the rom.bin file will be copies to the corresponding firmwares subdirectory. To apply the flash patches of a specific RAM firmware version, enter its directory and execute:

root@kitploit:~
make rom.bin```



# Structure of this repository
* `buildtools`: Contains compilers and other tools to build the firmware
* `firmwares`
  * `<chip version>`
    * `<firmware version>`
      * `<firmware file>`: The original firmware that will be loaded into the RAM of the WiFi Chip
      * `definitions.mk`: Contains mainly firmware specific addresses
      * `structs.h`: Structures only valid for this firmware version
      * `Makefile`: Used to extract flashpatches and ucode
      * `flashpatches.c` (generated by Makefile): Contains flashpatches
      * `ucode.bin` (extracted by Makefile): Contains uncompressed Ucode
    * `structs.common.h`: Structures that are common between firmware versions
* `patches`
  * `<chip version>`
    * `<firmware version>`
      * `nexmon`
        * `Makefile`: Used to build the firmware
        * `patch.ld`: Linker file
        * `src`
          * `patch.c`: General patches to the firmware
          * `injection.c`: Code related to frame injection
          * `monitormode.c`: Code related to monitor mode with radiotap headers
          * `ioctl.c`: Handling of custom IOCTLs
          * ...
        * `obj` (generated by Makefile): Object files created from C files
        * `log` (generated by Makefile): Logs written during compilation
        * `gen` (generated by Makefile): Files generated during the build process
          * `nexmon.pre` (generated by gcc plugin): Extracted at-attributes and targetregion-pragmas
          * `nexmon.ld` (generated from nexmon.pre): Linker file use to place patch code at defined addresses in the firmware
          * `nexmon.mk` (generated from nexmon.pre): Make file used take code from patch.elf and place it into firmware
          * `flashpatches.ld` (generated from nexmon.pre): Linker file that places flashpatches at target locations in firmware ROM
          * `flashpatches.mk` (generated from nexmon.pre): Make file used to insert flashpatch config and data structures into firmware
          * `patch.elf` (generated from object files and linker scripts): contains the newly compiled code placed at predefined addresses
    * `common`
      * `wrapper.c`: Wrappers for functions that already exist in the firmware
      * `ucode_compression.c`: [tinflate](http://achurch.org/tinflate.c) based ucode decompression
      * `radiotap.c`: RadioTap header parser
      * `helper.c`: Helpful utility functions
    * `driver`: Patched brcmfmac driver
    * `include`: Common include files
      * `firmware_version.h`: Definitions of chip and firmware versions
      * `patcher.h`: Macros use to perform patching for existing firmware code (e.g., BPatch patches a branch instruction)
      * `capabilities.h`: Allows to indicate capabilities (such as, monitor mode and frame injection)
      * `nexioctl.h`: Defines custom IOCTL numbers

# Related projects
* [bcmon](https://bcmon.blogspot.de/): Monitor Mode and Frame Injection for the bcm4329 and bcm4330
* [monmob](https://github.com/tuter/monmob): Monitor Mode and Frame Injection for the bcm4325, bcm4329 and bcm4330
* [P4wnP1](https://github.com/mame82/P4wnP1): Highly customizable attack platform, based on Raspberry Pi Zero W and Nexmon
* [kali Nethunter OS](https://github.com/nethunteros): ROM that brings Kali Linux to smartphones with Nexmon support
* [dustcloud-nexmon](https://github.com/dgiese/dustcloud-nexmon): Nexmon for Xiaomi IoT devices (ARM based)
* [InternalBlue](https://github.com/seemoo-lab/internalblue): Bluetooth experimentation framework based on Reverse Engineering of Broadcom Bluetooth Controllers

# Interesting articles on firmware hacks
If you know more projects that use nexmon or perform similar firmware hacks, let us know and we will add a link.

* [Project Zero](https://googleprojectzero.blogspot.de/2017/09/over-air-vol-2-pt-1-exploiting-wi-fi.html): Over The Air - Vol. 2, Pt. 1: Exploiting The Wi-Fi Stack on Apple Devices
* [broadpwn](https://blog.exodusintel.com/2017/07/26/broadpwn/): Remotely Compromising Android and IOS via a Bug in Broadcom's Wi-Fi Chipsets
* [Project Zero](https://googleprojectzero.blogspot.de/2017/04/over-air-exploiting-broadcoms-wi-fi_4.html): Over The Air: Exploiting Broadcom's Wi-Fi Stack (Part 1)
* [Project Zero](https://googleprojectzero.blogspot.de/2017/04/over-air-exploiting-broadcoms-wi-fi_11.html): Over The Air: Exploiting Broadcom's Wi-Fi Stack (Part 2) 

# Read my PhD thesis
* Matthias Schulz. [**Teaching Your Wireless Card New Tricks: Smartphone Performance and Security Enhancements through Wi-Fi Firmware Modifications**](http://tuprints.ulb.tu-darmstadt.de/7243/). Dr.-Ing. thesis, Technische Universität Darmstadt, Germany, February 2018. [pdf](http://tuprints.ulb.tu-darmstadt.de/7243/7/dissertation_2018_matthias_thomas_schulz.pdf)

# Read our papers
* F. Gringoli, M. Schulz, J. Link, and M. Hollick. [**Free Your CSI: A Channel State Information Extraction Platform For Modern Wi-Fi Chipsets**](https://doi.org/10.1145/3349623.3355477). Accepted to appear in *Proceedings of the 13th Workshop on Wireless Network Testbeds, Experimental evaluation & CHaracterization (WiNTECH 2019)*, October 2019. [code](https://nexmon.org/csi)
* D. Mantz, J. Classen, M. Schulz, and M. Hollick. [**InternalBlue - Bluetooth Binary Patching and Experimentation Framework**](https://dl.acm.org/citation.cfm?id=3326089). *In Proceedings of the 17th Annual International Conference on Mobile Systems, Applications, and Services (MobiSys '19)*. June 2019.
* M. Schuß, C. A. Boano, M. Weber, M. Schulz, M. Hollick, K. Römer. [**JamLab-NG: Benchmarking Low-Power Wireless Protocols under Controlable and Repeatable Wi-Fi Interference**](https://dl.acm.org/citation.cfm?id=3324331). *Proceedings of the 2019 International Conference on Embedded Wireless Systems and Networks (EWSN 2019)*, February 2019.
* M. Schulz, D. Wegemer, and M. Hollick. [**The Nexmon Firmware Analysis and Modification Framework: Empowering Researchers to Enhance Wi-Fi Devices**](https://doi.org/10.1016/j.comcom.2018.05.015). *Elsevier Computer Communications (COMCOM) Journal*. 2018.
* M. Schulz, J. Link, F. Gringoli, and M. Hollick. [**Shadow Wi-Fi: Teaching Smart- phones to Transmit Raw Signals and to Extract Channel State Information to Implement Practical Covert Channels over Wi-Fi**](https://dl.acm.org/citation.cfm?id=3210333). Accepted to appear in *Proceedings of the 16th ACM International Conference on Mobile Systems, Applications, and Services*, MobiSys 2018, June 2018.
* D. Steinmetzer, D. Wegemer, M. Schulz, J. Widmer, M. Hollick. [**Compressive Millimeter-Wave Sector Selection in Off-the-Shelf IEEE 802.11ad Devices**](https://dl.acm.org/citation.cfm?id=3143384). *Proceedings of the 13th International Conference on emerging Networking EXperiments and Technologies*, CoNEXT 2017, December 2017.
* M. Schulz, D. Wegemer, M. Hollick. [**Nexmon: Build Your Own Wi-Fi Testbeds With Low-Level MAC and PHY-Access Using Firmware Patches on Off-the-Shelf Mobile Devices**](https://dl.acm.org/citation.cfm?id=3131476). *Proceedings of the 11th ACM International Workshop on Wireless Network Testbeds, Experimental Evaluation & Characterization (WiNTECH 2017)*, October 2017. [pdf](https://www.seemoo.tu-darmstadt.de/mschulz/wintech2017) [video](https://youtu.be/m5Zrk4n4hoE)
* M. Schulz, F. Knapp, E. Deligeorgopoulos, D. Wegemer, F. Gringoli, M. Hollick. [**DEMO: Nexmon in Action: Advanced Applications Powered by the Nexmon Firmware Patching Framework**](https://dl.acm.org/citation.cfm?id=3133333), Accepted for publication in *Proceedings of the 11th ACM International Workshop on Wireless Network Testbeds, Experimental Evaluation & Characterization (WiNTECH 2017)*, October 2017. [pdf](https://www.seemoo.tu-darmstadt.de/mschulz/wintech2017demo)
* M. Schulz, F. Gringoli, D. Steinmetzer, M. Koch and M. Hollick. [**Massive Reactive Smartphone-Based Jamming using Arbitrary Waveforms and Adaptive Power Control**](https://dl.acm.org/citation.cfm?id=3098253). Proceedings of the *10th ACM Conference on Security and Privacy in Wireless and Mobile Networks (WiSec 2017)*, July 2017. [pdf](https://www.seemoo.tu-darmstadt.de/mschulz/wisec2017) [video](https://youtu.be/S2XPBK0KdiQ)
* M. Schulz, E. Deligeorgopoulos, M. Hollick and F. Gringoli. [**DEMO: Demonstrating Reactive Smartphone-Based Jamming**](https://dl.acm.org/citation.cfm?id=3106022). Proceedings of the *10th ACM Conference on Security and Privacy in Wireless and Mobile Networks (WiSec 2017)*, July 2017. [pdf](https://www.seemoo.tu-darmstadt.de/mschulz/wisec2017demo)
* M. Schulz. [**Nexmon - Wie man die eigene WLAN-Firmware hackt**](http://heise.de/-3538660), 
c't 26/2016, S. 168, Heise Verlag, 2016.
* M. Schulz, D. Wegemer, M. Hollick. [**DEMO: Using NexMon, the C-based WiFi 
firmware modification framework**](https://dl.acm.org/citation.cfm?id=2942419), 
Proceedings of the *9th ACM Conference on Security and Privacy in Wireless and 
Mobile Networks (WiSec 2016)*, July 2016. [pdf](https://www.seemoo.tu-darmstadt.de/mschulz/wisec2016demo1)
* M. Schulz, D. Wegemer and M. Hollick. [**NexMon: A Cookbook for Firmware 
Modifications on Smartphones to Enable Monitor Mode**](http://arxiv.org/abs/1601.07077), 
CoRR, vol. abs/1601.07077, December 2015. 
[bibtex](http://dblp.uni-trier.de/rec/bibtex/journals/corr/SchulzWH16)

[Get references as bibtex file](https://nexmon.org/bib)

# Reference our project
Any use of this project which results in an academic publication or other publication which includes a bibliography should include a citation to the Nexmon project and probably one of our papers depending on the code you use. Find all references in our [bibtex file](https://github.com/seemoo-lab/nexmon/blob/HEAD/nexmon.bib). Here is the reference for the project only:

@electronic{nexmon:project, author = {Schulz, Matthias and Wegemer, Daniel and Hollick, Matthias}, title = {Nexmon: The C-based Firmware Patching Framework}, url = {https://nexmon.org}, year = {2017} }```

Contact

  • Matthias Schulz [email protected]
  • Daniel Wegemer [email protected]

Powered By

Secure Mobile Networking Lab (SEEMOO)

SEEMOO logo

Networked Infrastructureless Cooperation for Emergency Response (NICER)

NICER logo

Multi-Mechanisms Adaptation for the Future Internet (MAKI)

MAKI logo

Technische Universität Darmstadt

TU Darmstadt logo

下载工具
WiFi 芯片固件版本用于操作系统MRTIFPUCCT
bcm43305_90_100_41_staSamsung Galaxy S2Cyanogenmod 13.0XXXXO
bcm4335b06.30.171.1_staSamsung Galaxy S4LineageOS 14.1XXXXO
bcm43396_37_34_43Nexus 5Android 6 StockXXXXXO
bcm43430a117_45_41_26      Raspberry Pi 3 and Zero WRaspbian 8          XXXXXO
bcm43430a117_45_41_46      Raspberry Pi 3 and Zero WRaspbian Stretch    XXXXXO
bcm43439a077_95_49 (2271bb6 CY)Raspberry Pi Pico WPico SDK  XXXX
bcm43451b17_63_43_0iPhone 6iOS 10.1.1 (14B100)XX
bcm434557_45_77_0_hwHuawei P9Android 7 StockXXXXX
bcm434557_120_5_1_sta_C0Galaxy J7 2017?XX
bcm434557_45_77_0_hw(8-2017)Huawei P9Android 7 StockXXXXX
bcm4345557_46_77_11_hwHuawei P9Android 8 China StockXXXXX
bcm434557_45_59_16Sony Xperia Z5 CompactLineageOS 14.1XXXXX
bcm43455c07_45_154Raspberry Pi B3+/B4Raspbian Kernel 4.9/14/19XXXX
bcm43455c07_45_189Raspberry Pi B3+/B4Raspbian Kernel 4.14/19, 5.4XXXX
bcm43455c07_45_206Raspberry Pi B3+/B4Raspberry Pi OS Kernel 5.4XXXXX
bcm43455c07_45_234 (4ca95bb CY)Raspberry Pi B3+/B4/5Raspberry Pi OSXX
bcm43436b039_88_4_65Raspberry Pi Zero 2 WRaspberry Pi OS Kernel 5.10XXXXX
bcm43567_35_101_5_staNexus 6Android 7.1.2XXXXO
bcm43587_112_200_17_staNexus 6PAndroid 7 StockXXXXO
bcm43587_112_201_3_staNexus 6PAndroid 7.1.2 StockXXXXO
bcm435827_112_300_14_staNexus 6PAndroid 8.0.0 StockXXXXXO
bcm43596a039_75_155_45_sta_c0Samsung Galaxy S7Android 7 StockXOX
bcm43596a03,29_96_4_sta_c0Samsung Galaxy S7LineageOS 14.1XXXOX
bcm4375b13,5,618_38_18_staSamsung Galaxy S10Rooted + disabled SELinuxXXXOX
bcm4375b13,5,618_41_8_9_staSamsung Galaxy S20Rooted + disabled SELinuxXXXOX
bcm4389c15,8,920_82_42_sta (r994653)Samsung Galaxy S22 PlusAndroid 14, Rooted with MagiskXX
bcm4389c15,8,920_101_36_2 (r994653)Google Pixel 7 and 7 ProRooted with MagiskXX
bcm4389c15,8,920_101_57 (r1035009)Google Pixel 7 and 7 ProRooted with MagiskXX
bcm4398d05,8,924_671_6_9 (r1031525)Google Pixel 8Rooted with MagiskXX
bcm6715b0517_10_188_6401 (r808804)Asus RT-AX86U ProStock firmware 3.0.0.4_388.23565/X
qca950044-1-0_55TP-Link Talon AD7200Custom LEDE Image
ln -s /usr/local/lib/libisl.so /usr/lib/arm-linux-gnueabihf/libisl.so.10
  • 检查 /usr/lib/arm-linux-gnueabihf/libmpfr.so.4 是否存在,如果不存在,则从源码编译它:
  • cd buildtools/mpfr-3.1.4, autoreconf -f -i, ./configure, make, make install, ln -s /usr/local/lib/libmpfr.so /usr/lib/arm-linux-gnueabihf/libmpfr.so.4
  • 在 64 位 Raspberry Pi OS 上

    • sudo dpkg --add-architecture armhf
    • sudo apt-get update
    • sudo apt-get install libc6:armhf libisl23:armhf libmpfr6:armhf libmpc3:armhf libstdc++6:armhf
    • sudo ln -s /usr/lib/arm-linux-gnueabihf/libisl.so.23.0.0 /usr/lib/arm-linux-gnueabihf/libisl.so.10
    • sudo ln -s /usr/lib/arm-linux-gnueabihf/libmpfr.so.6.1.0 /usr/lib/arm-linux-gnueabihf/libmpfr.so.4
  • 然后你可以设置用于编译固件补丁的构建环境

    • 设置构建环境:source setup_env.sh
    • 编译一些构建工具并从原始固件文件中提取 ucode 和 flashpatches:make
  • 进入适用于 bcm43430a1/bcm43455c0/bcm43436b0 芯片组的 patches 文件夹:cd patches/bcm43430a1/7_45_41_46/nexmon/ / patches/bcm43455c0/<7_45_154 or 7_45_189>/nexmon/ / cd patches/bcm43436b0/9_88_4_65/nexmon/

    • 编译修补后的固件:make
    • 生成原始固件文件的备份:make backup-firmware
    • 在你的 RPI3 上安装修补后的固件:make install-firmware
  • 安装 nexutil:从我们仓库的根目录切换到 nexutil 文件夹:cd utilities/nexutil/。编译并安装 nexutil:make && make install。

  • 可选:移除 wpa_supplicant 以获得对 WiFi 接口更好的控制:apt-get remove wpasupplicant
    另外,禁用省电功能(iw dev wlan0 set power_save off)有助于防止固件崩溃。

  • 注意: 要连接到常规接入点,你必须先执行 nexutil -m0

  • The new driver should be loaded by default after reboot: reboot  * Note: It is possible to connect to an access point or run your own access point in parallel to the monitor mode interface on the wlan0 interface.