
C-based фреймворк для патчинга прошивок WiFi-чипов Broadcom/Cypress, который обеспечивает режим монитора, инъекцию кадров и многое другое

Nexmon — это наш фреймворк на C для патчинга прошивок WiFi-чипов Broadcom/Cypress, который позволяет писать собственные патчи прошивки, например, для включения режима монитора с заголовками radiotap и инжекции кадров.
Ниже приведён обзор того, что возможно с помощью nexmon. Этот репозиторий в основном сосредоточен на включении режима монитора и инжекции кадров на многих чипах. Если вам нужны дополнительные возможности, вам могут быть интересны следующие проекты:
Наше программное обеспечение может повредить ваше оборудование и аннулировать гарантию на него! Вы используете наши инструменты на свой страх и риск! Если вам не нравятся эти условия, не используйте nexmon!
Следующие устройства в настоящее время поддерживаются нашим патчем прошивки nexmon.
| WiFi-чип | Версия прошивки | Устройство | Операционная система | M | RT | I | FP | UC | CT |
|---|---|---|---|---|---|---|---|---|---|
| bcm4330 | 5_90_100_41_sta | Samsung Galaxy S2 | Cyanogenmod 13.0 | X | X | X | X | O | |
| bcm4335b0 | 6.30.171.1_sta | Samsung Galaxy S4 | LineageOS 14.1 | X | X | X | X | O | |
| bcm4339 | 6_37_34_43 | Nexus 5 | Android 6 сток | X | X | X | X | X | O |
| bcm43430a11 | 7_45_41_26 | Raspberry Pi 3 и Zero W | Raspbian 8 | X | X | X | X | X | O |
| bcm43430a11 | 7_45_41_46 | Raspberry Pi 3 и Zero W | Raspbian Stretch | X | X | X | X | X | O |
| bcm43439a07 | 7_95_49 (2271bb6 CY) | Raspberry Pi Pico W | Pico SDK | X | X | X | X | ||
| bcm43451b1 | 7_63_43_0 | iPhone 6 | iOS 10.1.1 (14B100) | X | X | ||||
| bcm43455 | 7_45_77_0_hw | Huawei P9 | Android 7 сток | X | X | X | X | X | |
| bcm43455 | 7_120_5_1_sta_C0 | Galaxy J7 2017 | ? | X | X | ||||
| bcm43455 | 7_45_77_0_hw(8-2017) | Huawei P9 | Android 7 сток | X | X | X | X | X | |
| bcm434555 | 7_46_77_11_hw | Huawei P9 | Android 8 China сток | X | X | X | X | X | |
| bcm43455 | 7_45_59_16 | Sony Xperia Z5 Compact | LineageOS 14.1 | X | X | X | X | X | |
| bcm43455c0 | 7_45_154 | Raspberry Pi B3+/B4 | Raspbian (ядро 4.9/14/19) | X | X | X | X | ||
| bcm43455c0 | 7_45_189 | Raspberry Pi B3+/B4 | Raspbian (ядро 4.14/19, 5.4) | X | X | X | X | ||
| bcm43455c0 | 7_45_206 | Raspberry Pi B3+/B4 | Raspberry Pi OS (ядро 5.4) | X | X | X | X | X | |
| bcm43455c0 | 7_45_234 (4ca95bb CY) | Raspberry Pi B3+/B4/5 | Raspberry Pi OS | X | X | ||||
| bcm43436b03 | 9_88_4_65 | Raspberry Pi Zero 2 W | Raspberry Pi OS (ядро 5.10) | X | X | X | X | X | |
| bcm4356 | 7_35_101_5_sta | Nexus 6 | Android 7.1.2 | X | X | X | X | O | |
| bcm4358 | 7_112_200_17_sta | Nexus 6P | Android 7 сток | X | X | X | X | O | |
| bcm4358 | 7_112_201_3_sta | Nexus 6P | Android 7.1.2 сток | X | X | X | X | O | |
| bcm43582 | 7_112_300_14_sta | Nexus 6P | Android 8.0.0 сток | X | X | X | X | X | O |
| bcm43596a03 | 9_75_155_45_sta_c0 | Samsung Galaxy S7 | Android 7 сток | X | O | X | |||
| bcm43596a03,2 | 9_96_4_sta_c0 | Samsung Galaxy S7 | LineageOS 14.1 | X | X | X | O | X | |
| bcm4375b13,5,6 | 18_38_18_sta | Samsung Galaxy S10 | Root + отключённый SELinux | X | X | X | O | X | |
| bcm4375b13,5,6 | 18_41_8_9_sta | Samsung Galaxy S20 | Root + отключённый SELinux | X | X | X | O | X | |
| bcm4389c15,8,9 | 20_82_42_sta (r994653) | Samsung Galaxy S22 Plus | Android 14, с root-доступом через Magisk | X | X | ||||
| bcm4389c15,8,9 | 20_101_36_2 (r994653) | Google Pixel 7 и 7 Pro | С root-доступом через Magisk | X | X | ||||
| bcm4389c15,8,9 | 20_101_57 (r1035009) | Google Pixel 7 и 7 Pro | С root-доступом через Magisk | X | X | ||||
| bcm4398d05,8,9 | 24_671_6_9 (r1031525) | Google Pixel 8 | С root-доступом через Magisk | X | X | ||||
| bcm6715b05 | 17_10_188_6401 (r808804) | Asus RT-AX86U Pro | Стоковая прошивка 3.0.0.4_388.23565 | / | X | ||||
| qca95004 | 4-1-0_55 | TP-Link Talon AD7200 | Кастомный образ LEDE |
1 В прошлом bcm43430a1 ошибочно обозначался как bcm43438.
2 используйте LD_PRELOAD=libnexmon.so вместо LD_PRELOAD=libfakeioctl.so для инжекции кадров через ioctl
3 флеш-патчи должны быть длиной 8 байт и выровнены по границе 8 байт
4 Wi-Fi чип 802.11ad из первого Wi-Fi-роутера Talon AD7200 с частотой 60 ГГц. Пропатчьте прошивку с помощью nexmon-arc и запустите её с нашим кастомным образом LEDE lede-ad7200
5 Отключена защита выполнения (так называемый Execute Never) в области 1, поскольку она мешает коду nexmon (Permission fault on Section)
6 Чтобы использовать nexutil, необходимо отключить SELinux или перевести его в permissive-режим
7 Примеры приложений, использующих Pico SDK с nexmon, см. в pico-nexmon.
8 флеш-патчи должны быть длиной 16 байт и выровнены по границе 16 байт.
9 Используется модуль Magisk для установки прошивки, nexutil и настройки политик SELinux.