Giter Site home page Giter Site logo

seemoo-lab / nexmon Goto Github PK

View Code? Open in Web Editor NEW
2.4K 151.0 445.0 376.77 MB

The C-based Firmware Patching Framework for Broadcom/Cypress WiFi Chips that enables Monitor Mode, Frame Injection and much more

License: GNU General Public License v3.0

Makefile 3.45% C 77.92% Shell 1.46% Yacc 0.07% Lex 0.06% Assembly 1.09% Python 0.79% Pawn 0.05% C++ 8.15% Objective-C 0.01% Logos 0.01% XC 0.01% XS 0.01% HTML 5.65% Awk 0.01% C# 0.08% CSS 0.01% CMake 0.20% Perl 0.84% Go 0.15%
nexmon broadcom firmware patching framework smartphone rpi

nexmon's Introduction

NexMon logo

What is nexmon?

Nexmon is our C-based firmware patching framework for Broadcom/Cypress WiFi chips that enables you to write your own firmware patches, for example, to enable monitor mode with radiotap headers and frame injection.

Below, you find an overview what is possible with nexmon. This repository mainly focuses on enabling monitor mode and frame injection on many chips. If you want additional features, the following projects might be interesting for you:

  • http://nexmon.org/jammer: A real Wi-Fi jammer that allows to overlay ongoing frame transmissions with an arbitrary jamming signal.
    • It uses the Wi-Fi chip as a Software-defined Radio to generate jamming signals
    • It allows using non-standard channels such as 80 MHz bandwidth in the 2.4 GHz bands
    • It allows to set arbitrary transmission powers
    • It allows patching the D11 core's real-time MAC implementation
  • http://nexmon.org/csi: Channel State Information extractor for various Wi-Fi chips
    • It allows to extract CSI of up to 4x4 MIMO transmissions at 80 MHz bandwidth
  • http://nexmon.org/debugger: Debugging ARM microcontrollers without JTAG access
    • It allows low-level access to debugging registers to set breakpoints and watchpoints and allows single stepping
  • http://nexmon.org/covert_channel: Covert Channel that hides information in Wi-Fi signals
    • More advanced Software-defined Radio capabilities than the jammer
    • Example application for channel state information extraction
  • http://nexmon.org/sdr: Use your Wi-Fi chip as Software-defined Radio
    • Currently only transmissions are working in both 2.4 and 5 GHz Wi-Fi bands

NexMon logo

WARNING

Our software may damage your hardware and may void your hardware’s warranty! You use our tools at your own risk and responsibility! If you don't like these terms, don't use nexmon!

Supported Devices

The following devices are currently supported by our nexmon firmware patch.

WiFi Chip Firmware Version Used in Operating System 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 Stock X X X X X O
bcm43430a11 7_45_41_26       Raspberry Pi 3 and Zero W Raspbian 8           X X X X X O
bcm43430a11 7_45_41_46       Raspberry Pi 3 and 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 Stock 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 Stock X X X X X
bcm434555 7_46_77_11_hw Huawei P9 Android 8 China Stock 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 Kernel 4.9/14/19 X X X X
bcm43455c0 7_45_189 Raspberry Pi B3+/B4 Raspbian Kernel 4.14/19, 5.4 X X X X
bcm43455c0 7_45_206 Raspberry Pi B3+/B4 Raspberry Pi OS Kernel 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 Kernel 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 Stock X X X X O
bcm4358 7_112_201_3_sta Nexus 6P Android 7.1.2 Stock X X X X O
bcm43582 7_112_300_14_sta Nexus 6P Android 8.0.0 Stock X X X X X O
bcm43596a03 9_75_155_45_sta_c0 Samsung Galaxy S7 Android 7 Stock 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 Rooted + disabled SELinux X X X O X
bcm4375b13,5,6 18_41_8_9_sta Samsung Galaxy S20 Rooted + disabled SELinux X X X O X
bcm4389c15,8,9 20_82_42_sta (r994653) Samsung Galaxy S22 Plus Android 14, Rooted with Magisk X X
bcm4389c15,8,9 20_101_36_2 (r994653) Google Pixel 7 and 7 Pro Rooted with Magisk X X
bcm4389c15,8,9 20_101_57 (r1035009) Google Pixel 7 and 7 Pro Rooted with Magisk X X
bcm4398d05,8,9 24_671_6_9 (r1031525) Google Pixel 8 Rooted with Magisk X X
bcm6715b05 17_10_188_6401 (r808804) Asus RT-AX86U Pro Stock firmware 3.0.0.4_388.23565 / X
qca95004 4-1-0_55 TP-Link Talon AD7200 Custom LEDE Image

1 bcm43430a1 was wrongly labeled bcm43438 in the past.

2 use LD_PRELOAD=libnexmon.so instead of LD_PRELOAD=libfakeioctl.so to inject frames through ioctls

3 flash patches need to be 8 bytes long and aligned on an 8 byte boundary

4 802.11ad Wi-Fi chip from first 60 GHz Wi-Fi router Talon AD7200. Patch your firmware using nexmon-arc and run it with our custom LEDE image lede-ad7200

5 Disabled the execution protection (called Execute Never) on region 1, because it interferes with the nexmon code (Permission fault on Section)

6 To use nexutil, you need to deactivate SELinux or set it to permissive

7 See pico-nexmon for example applications using Pico SDK with nexmon.

8 flash patches need to be 16 bytes long and aligned on a 16 byte boundary.

9 Uses Magisk module to install firmware, nexutil, and set SELinux policies.

Legend

  • M = Monitor Mode
  • RT = Monitor Mode with RadioTap headers
  • I = Frame Injection
  • FP = Flash Patching
  • UC = Ucode Compression
  • CT = c't Article Support (for consistent support, use our ct-artikel branch)

Steps to create your own firmware patches

Build patches for bcm4330, bcm4339 and bcm4358 using a x86 computer running Linux (e.g. Ubuntu 16.04)

  • Install some dependencies: sudo apt-get install git gawk qpdf adb flex bison

  • Only necessary for x86_64 systems, install i386 libs:

    sudo dpkg --add-architecture i386
    sudo apt-get update
    sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
    
  • Clone our repository: git clone https://github.com/seemoo-lab/nexmon.git

  • In the root directory of the repository: cd nexmon

    • Setup the build environment: source setup_env.sh
    • Compile some build tools and extract the ucode and flashpatches from the original firmware files: make
  • Go to the patches folder of your target device (e.g. bcm4339 for the Nexus 5): cd patches/bcm4339/6_37_34_43/nexmon/

    • Compile a patched firmware: make
    • Generate a backup of your original firmware file: make backup-firmware
    • Install the patched firmware on your smartphone: make install-firmware (make sure your smartphone is connected to your machine beforehand)

Using the Monitor Mode patch

  • Install at least nexutil and libfakeioctl from our utilities. The easiest way to do this is by using this app: https://nexmon.org/app. But you can also build it from the source by executing make in the utilties folder (Note: you will need the Android NDK properly installed for this).
  • Connect to your Android phone using the ADB tools: adb shell
  • Make sure you are not connected to an access point
  • Use nexutil to enable monitor mode: nexutil -m2
  • At this point the monitor mode is active. There is no need to call airmon-ng.
  • Important: Most tools need a Radiotap interface to work properly. libfakeioctl emulates this type of interface for you, therefore, use LD_PRELOAD to load this library when you call the favourite tool (e.g. tcpdump or airodump-ng): LD_PRELOAD=libfakeioctl.so tcpdump -i wlan0
  • untested hint: Thanks to XDA member ruleh, there is a bcmdhd driver patch to activate native monitor mode, see: https://github.com/ruleh/misc/tree/master/monitor

Using nexutil over UDP on Nexus 5

To be able to communicate with the firmware without root priviledges, we created a UDP interface accessible through the libnexio, which is also used by nexutil. You first have to prove to the firmware that you generally have root priviledges by setting a security cookie. Then you can use it for UDP based connections. Your wlan0 interface also needs an IP address in the 192.168.222.0/24 range or you have to change the default nexutil broadcast-ip:

  • Set the IP address of the wlan0 interface: ifconfig wlan0 192.168.222.1 netmask 255.255.255.0
  • Set the security cookie as root: nexutil -x<cookie (uint)>
  • Start a UDP connection for example to activate monitor mode: nexutil -X<cookie> -m1

Build patches for bcm43430a1 on the RPI3/Zero W or bcm434355c0 on the RPI3+/RPI4 or bcm43436b0 on the RPI Zero 2W using Raspbian/Raspberry Pi OS (recommended)

Note: We currently support Kernel Version 4.4 (deprecated), 4.9, 4.14, 4.19, 5.4, 5.10 and 5.15. Raspbian contains firmware version 7.45.154 for the bcm43455c0. We also support the newer firmware release 7.45.189 from Cypress. Raspberry Pi OS contains firmware version 7.45.206. Please, try which works best for you.

  • Make sure the following commands are executed as root: sudo su

  • Upgrade your Raspbian installation: apt-get update && apt-get upgrade

  • Install the kernel headers to build the driver and some dependencies: sudo apt install raspberrypi-kernel-headers git libgmp3-dev gawk qpdf bison flex make autoconf libtool texinfo

  • Clone our repository: git clone https://github.com/seemoo-lab/nexmon.git

  • Go into the root directory of our repository: cd nexmon

  • On 32bit Raspbian/Raspberry Pi OS

    • Check if /usr/lib/arm-linux-gnueabihf/libisl.so.10 exists, if not, compile it from source:
    • cd buildtools/isl-0.10, ./configure, make, make install, ln -s /usr/local/lib/libisl.so /usr/lib/arm-linux-gnueabihf/libisl.so.10
    • Check if /usr/lib/arm-linux-gnueabihf/libmpfr.so.4 exists, if not, compile it from source:
    • 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
  • On 64bit 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
  • Then you can setup the build environment for compiling firmware patches

    • Setup the build environment: source setup_env.sh
    • Compile some build tools and extract the ucode and flashpatches from the original firmware files: make
  • Go to the patches folder for the bcm43430a1/bcm43455c0/bcm43436b0 chipset: 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/

    • Compile a patched firmware: make
    • Generate a backup of your original firmware file: make backup-firmware
    • Install the patched firmware on your RPI3: make install-firmware
  • Install nexutil: from the root directory of our repository switch to the nexutil folder: cd utilities/nexutil/. Compile and install nexutil: make && make install.

  • Optional: remove wpa_supplicant for better control over the WiFi interface: apt-get remove wpasupplicant
    Also, disabling power saving features (iw dev wlan0 set power_save off) can help prevent firmware crashes.

  • Note: To connect to regular access points you have to execute nexutil -m0 first

Using the Monitor Mode patch

  • Thanks to the prior work of Mame82, you can setup a new monitor mode interface by executing: 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
    • 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.

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:

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:

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 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: Monitor Mode and Frame Injection for the bcm4329 and bcm4330
  • monmob: Monitor Mode and Frame Injection for the bcm4325, bcm4329 and bcm4330
  • P4wnP1: Highly customizable attack platform, based on Raspberry Pi Zero W and Nexmon
  • kali Nethunter OS: ROM that brings Kali Linux to smartphones with Nexmon support
  • dustcloud-nexmon: Nexmon for Xiaomi IoT devices (ARM based)
  • 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: Over The Air - Vol. 2, Pt. 1: Exploiting The Wi-Fi Stack on Apple Devices
  • broadpwn: Remotely Compromising Android and IOS via a Bug in Broadcom's Wi-Fi Chipsets
  • Project Zero: Over The Air: Exploiting Broadcom's Wi-Fi Stack (Part 1)
  • Project Zero: Over The Air: Exploiting Broadcom's Wi-Fi Stack (Part 2)

Read my PhD thesis

Read our papers

Get references as bibtex file

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. 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

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

nexmon's People

Contributors

aagallag avatar awan avatar baselsayeh avatar bsdblack avatar chrisdroid avatar danielaw avatar dariotrombello avatar drschottky avatar e2002e avatar fput avatar imshara avatar jlinktu avatar mame82 avatar matthiasseemoo avatar rdlgrmpf avatar silverleo avatar thesourcerer8 avatar vollkorntomate avatar y0username avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nexmon's Issues

RPi3 /usr/bin/ld: cannot find -lnexio

Hello, in this step

Install nexutil: from the root directory of our repository switch to the nexutil folder: cd utilities/nexutil/. Compile and install nexutil: make && make install.

i receive this error

root@raspberrypi:/home/pi/tools/nexmon/utilities/nexutil# make gcc -static -o nexutil nexutil.c -DBUILD_ON_RPI -DVERSION=\"IT_VERSION\" -DUSE_NETLINK -I. -I../../patches/include -I../libnexio -L../libnexio/ -lnexio -I../libargp /usr/bin/ld: impossibile trovare -lnexio collect2: error: ld returned 1 exit status Makefile:15: set di istruzioni per l'obiettivo "nexutil" non riuscito make: *** [nexutil] Errore 1 root@raspberrypi:/home/pi/tools/nexmon/utilities/nexutil#

what i do?

thk

Raspberry Pi Model 3 B - make error on install nexutil command not found

I have a build script that runs the instructions from README.md to make nexutil for Raspberry Pi. The script ends with the splash screen semo presents nexmon but then it says:

CREATING DIRECTORIES obj, gen, log
COMPILING src/version.c => obj/version.o (details: log/compiler.log)
<snip>
BUILDING driver brcmfmac/brcmfmac.ko (details: log/driver.log)
make: ** No rule to make target 'install'. Stop.
pi@raspberrypi: ~/$ nexutil
-bash: nexutil: command not found

Any idea what's going wrong?

I think this is an error at the final step:
make && make install

Commercial support / Project

DanielAW,

I'm looking to patch a specific firmware, but want to pay for it to speed up our development process.
What is your contact?

My e-mail is [email protected] and Skype is grabberbr

Thanks!

Best,
Luiz.

Too many errors on RPi build

pi@raspberrypi:/Desktop/nexmon $ source setup_env.sh
pi@raspberrypi:
/Desktop/nexmon $ cd patches/bcm43438/7_45_41_26/nexmon/
pi@raspberrypi:~/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon $ make

      ###########   ###########   ##########    ##########           
     ############  ############  ############  ############          
     ##            ##            ##   ##   ##  ##        ##          
     ##            ##            ##   ##   ##  ##        ##          
     ###########   ####  ######  ##   ##   ##  ##    ######          
      ###########  ####  #       ##   ##   ##  ##    #    #          
               ##  ##    ######  ##   ##   ##  ##    #    #          
               ##  ##    #       ##   ##   ##  ##    #    #          
     ############  ##### ######  ##   ##   ##  ##### ######          
     ###########    ###########  ##   ##   ##   ##########           

        S E C U R E   M O B I L E   N E T W O R K I N G               


                           presents:                                  

          # ###   ###  #   # # ###  ###   ###  # ###                  
          ##   # #   #  # #  ##   ##   # #   # ##   #                 
          #    # #####   #   #    #    # #   # #    #                 
          #    # #      # #  #    #    # #   # #    #                 
          #    #  #### #   # #    #    #  ###  #    #                 

            The C-based Firmware Patching Framework                   


                       !!! WARNING !!!                                
Our software may damage your hardware and may void your hardware’s    
 warranty! You use our tools at your own risk and responsibility      

CREATING DIRECTORIES obj, gen, log
COMPILING src/version.c => obj/version.o (details: log/compiler.log)
GENERATING LINKER FILE gen/nexmon.pre => gen/nexmon.ld
GENERATING LINKER FILE gen/nexmon.pre => gen/flashpatches.ld
LINKING OBJECTS => gen/patch.elf (details: log/linker.log, log/linker.err)
GENERATING MAKE FILE gen/nexmon.pre => gen/nexmon.mk
GENERATING MAKE FILE gen/nexmon.pre => gen/flashpatches.mk
APPLYING FLASHPATCHES gen/flashpatches.mk => brcmfmac43430-sdio.bin (details: log/flashpatches.log)
APPLYING PATCHES gen/nexmon.mk => brcmfmac43430-sdio.bin (details: log/patches.log)
BUILDING DRIVER brcmfmac/brcmfmac.ko (details: log/driver.log)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:136:12: error: ‘IEEE80211_BAND_2GHZ’ undeclared here (not in a function)
.band = IEEE80211_BAND_2GHZ,
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:154:2: note: in expansion of macro ‘CHAN2G’
CHAN2G(1, 2412), CHAN2G(2, 2417), CHAN2G(3, 2422), CHAN2G(4, 2427),
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:145:12: error: ‘IEEE80211_BAND_5GHZ’ undeclared here (not in a function)
.band = IEEE80211_BAND_5GHZ,
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:161:2: note: in expansion of macro ‘CHAN5G’
CHAN5G(34), CHAN5G(36), CHAN5G(38), CHAN5G(40), CHAN5G(42),
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:161:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:161:2: error: (near initialization for ‘__wl_5ghz_channels[0].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:161:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:161:2: error: (near initialization for ‘__wl_5ghz_channels[1].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:161:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:161:2: error: (near initialization for ‘__wl_5ghz_channels[2].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:161:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:161:2: error: (near initialization for ‘__wl_5ghz_channels[3].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:161:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:161:2: error: (near initialization for ‘__wl_5ghz_channels[4].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:162:2: error: initializer element is not constant
CHAN5G(44), CHAN5G(46), CHAN5G(48), CHAN5G(52), CHAN5G(56),
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:162:2: error: (near initialization for ‘__wl_5ghz_channels[5].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:162:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:162:2: error: (near initialization for ‘__wl_5ghz_channels[6].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:162:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:162:2: error: (near initialization for ‘__wl_5ghz_channels[7].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:162:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:162:2: error: (near initialization for ‘__wl_5ghz_channels[8].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:162:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:162:2: error: (near initialization for ‘__wl_5ghz_channels[9].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:163:2: error: initializer element is not constant
CHAN5G(60), CHAN5G(64), CHAN5G(100), CHAN5G(104), CHAN5G(108),
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:163:2: error: (near initialization for ‘__wl_5ghz_channels[10].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:163:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:163:2: error: (near initialization for ‘__wl_5ghz_channels[11].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:163:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:163:2: error: (near initialization for ‘__wl_5ghz_channels[12].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:163:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:163:2: error: (near initialization for ‘__wl_5ghz_channels[13].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:163:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:163:2: error: (near initialization for ‘__wl_5ghz_channels[14].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:164:2: error: initializer element is not constant
CHAN5G(112), CHAN5G(116), CHAN5G(120), CHAN5G(124), CHAN5G(128),
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:164:2: error: (near initialization for ‘__wl_5ghz_channels[15].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:164:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:164:2: error: (near initialization for ‘__wl_5ghz_channels[16].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:164:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:164:2: error: (near initialization for ‘__wl_5ghz_channels[17].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:164:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:164:2: error: (near initialization for ‘__wl_5ghz_channels[18].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:164:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:164:2: error: (near initialization for ‘__wl_5ghz_channels[19].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:165:2: error: initializer element is not constant
CHAN5G(132), CHAN5G(136), CHAN5G(140), CHAN5G(144), CHAN5G(149),
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:165:2: error: (near initialization for ‘__wl_5ghz_channels[20].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:165:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:165:2: error: (near initialization for ‘__wl_5ghz_channels[21].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:165:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:165:2: error: (near initialization for ‘__wl_5ghz_channels[22].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:165:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:165:2: error: (near initialization for ‘__wl_5ghz_channels[23].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:165:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:165:2: error: (near initialization for ‘__wl_5ghz_channels[24].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:166:2: error: initializer element is not constant
CHAN5G(153), CHAN5G(157), CHAN5G(161), CHAN5G(165)
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:166:2: error: (near initialization for ‘__wl_5ghz_channels[25].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:166:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:166:2: error: (near initialization for ‘__wl_5ghz_channels[26].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:166:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:166:2: error: (near initialization for ‘__wl_5ghz_channels[27].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:166:2: error: initializer element is not constant
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:166:2: error: (near initialization for ‘__wl_5ghz_channels[28].band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:173:2: error: initializer element is not constant
.band = IEEE80211_BAND_2GHZ,
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:173:2: error: (near initialization for ‘__wl_band_2ghz.band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:179:2: error: initializer element is not constant
.band = IEEE80211_BAND_5GHZ,
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:179:2: error: (near initialization for ‘__wl_band_5ghz.band’)
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘chandef_to_chanspec’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:291:7: error: ‘IEEE80211_BAND_60GHZ’ undeclared (first use in this function)
case IEEE80211_BAND_60GHZ:
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:291:7: note: each undeclared identifier is reported only once for each function it appears in
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘brcmf_notify_escan_complete’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:746:3: error: incompatible type for argument 2 of ‘cfg80211_scan_done’
cfg80211_scan_done(scan_request, aborted);
^
In file included from /home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:23:0:
./include/net/cfg80211.h:4304:6: note: expected ‘struct cfg80211_scan_info *’ but argument is of type ‘bool’
void cfg80211_scan_done(struct cfg80211_scan_request *request,
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:746:3: warning: statement with no effect [-Wunused-value]
cfg80211_scan_done(scan_request, aborted);
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘brcmf_inform_single_bss’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:2661:22: error: array subscript is not an integer
band = wiphy->bands[IEEE80211_BAND_2GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:2661:8: warning: assignment from incompatible pointer type
band = wiphy->bands[IEEE80211_BAND_2GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:2663:22: error: array subscript is not an integer
band = wiphy->bands[IEEE80211_BAND_5GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:2663:8: warning: assignment from incompatible pointer type
band = wiphy->bands[IEEE80211_BAND_5GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘brcmf_inform_ibss’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:2770:22: error: array subscript is not an integer
band = wiphy->bands[IEEE80211_BAND_2GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:2770:8: warning: assignment from incompatible pointer type
band = wiphy->bands[IEEE80211_BAND_2GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:2772:22: error: array subscript is not an integer
band = wiphy->bands[IEEE80211_BAND_5GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:2772:8: warning: assignment from incompatible pointer type
band = wiphy->bands[IEEE80211_BAND_5GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘brcmf_bss_roaming_done’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:4938:22: error: array subscript is not an integer
band = wiphy->bands[IEEE80211_BAND_2GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:4938:8: warning: assignment from incompatible pointer type
band = wiphy->bands[IEEE80211_BAND_2GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:4940:22: error: array subscript is not an integer
band = wiphy->bands[IEEE80211_BAND_5GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:4940:8: warning: assignment from incompatible pointer type
band = wiphy->bands[IEEE80211_BAND_5GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘brcmf_construct_chaninfo’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5434:21: error: array subscript is not an integer
band = wiphy->bands[IEEE80211_BAND_2GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5434:7: warning: assignment from incompatible pointer type
band = wiphy->bands[IEEE80211_BAND_2GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5438:21: error: array subscript is not an integer
band = wiphy->bands[IEEE80211_BAND_5GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5438:7: warning: assignment from incompatible pointer type
band = wiphy->bands[IEEE80211_BAND_5GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5449:23: error: array subscript is not an integer
band = wiphy->bands[IEEE80211_BAND_2GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5449:9: warning: assignment from incompatible pointer type
band = wiphy->bands[IEEE80211_BAND_2GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5451:23: error: array subscript is not an integer
band = wiphy->bands[IEEE80211_BAND_5GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5451:9: warning: assignment from incompatible pointer type
band = wiphy->bands[IEEE80211_BAND_5GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘brcmf_enable_bw40_2g’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5566:34: error: array subscript is not an integer
band = cfg_to_wiphy(cfg)->bands[IEEE80211_BAND_2GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5566:8: warning: assignment from incompatible pointer type
band = cfg_to_wiphy(cfg)->bands[IEEE80211_BAND_2GHZ];
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘brcmf_get_bwcap’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5598:9: error: array subscript is not an integer
bw_cap[IEEE80211_BAND_2GHZ] = band;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5598:3: warning: statement with no effect [-Wunused-value]
bw_cap[IEEE80211_BAND_2GHZ] = band;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5602:10: error: array subscript is not an integer
bw_cap[IEEE80211_BAND_5GHZ] = band;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5602:4: warning: statement with no effect [-Wunused-value]
bw_cap[IEEE80211_BAND_5GHZ] = band;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5617:9: error: array subscript is not an integer
bw_cap[IEEE80211_BAND_2GHZ] |= WLC_BW_40MHZ_BIT;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5617:3: warning: statement with no effect [-Wunused-value]
bw_cap[IEEE80211_BAND_2GHZ] |= WLC_BW_40MHZ_BIT;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5620:9: error: array subscript is not an integer
bw_cap[IEEE80211_BAND_5GHZ] |= WLC_BW_40MHZ_BIT;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5620:3: warning: statement with no effect [-Wunused-value]
bw_cap[IEEE80211_BAND_5GHZ] |= WLC_BW_40MHZ_BIT;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5623:9: error: array subscript is not an integer
bw_cap[IEEE80211_BAND_2GHZ] |= WLC_BW_20MHZ_BIT;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5623:3: warning: statement with no effect [-Wunused-value]
bw_cap[IEEE80211_BAND_2GHZ] |= WLC_BW_20MHZ_BIT;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5624:9: error: array subscript is not an integer
bw_cap[IEEE80211_BAND_5GHZ] |= WLC_BW_20MHZ_BIT;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5624:3: warning: statement with no effect [-Wunused-value]
bw_cap[IEEE80211_BAND_5GHZ] |= WLC_BW_20MHZ_BIT;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘brcmf_update_vht_cap’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5664:17: warning: comparison between pointer and integer
if (band->band == IEEE80211_BAND_2GHZ)
^
In file included from ./include/linux/kernel.h:13:0,
from /home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:19:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘brcmf_setup_wiphybands’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5701:27: error: array subscript is not an integer
nmode, vhtmode, bw_cap[IEEE80211_BAND_2GHZ],
^
./include/linux/printk.h:121:18: note: in definition of macro ‘no_printk’
printk(fmt, ##VA_ARGS);
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5700:2: note: in expansion of macro ‘brcmf_dbg’
brcmf_dbg(INFO, "nmode=%d, vhtmode=%d, bw_cap=(%d, %d)\n",
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5702:11: error: array subscript is not an integer
bw_cap[IEEE80211_BAND_5GHZ]);
^
./include/linux/printk.h:121:18: note: in definition of macro ‘no_printk’
printk(fmt, ##VA_ARGS);
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5700:2: note: in expansion of macro ‘brcmf_dbg’
brcmf_dbg(INFO, "nmode=%d, vhtmode=%d, bw_cap=(%d, %d)\n",
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5700:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘struct ieee80211_channel *’ [-Wformat=]
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:5700:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘struct ieee80211_channel *’ [-Wformat=]
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘brcmf_setup_wiphy’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6002:16: error: array subscript is not an integer
wiphy->bands[IEEE80211_BAND_2GHZ] = band;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6002:4: warning: statement with no effect [-Wunused-value]
wiphy->bands[IEEE80211_BAND_2GHZ] = band;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6019:16: error: array subscript is not an integer
wiphy->bands[IEEE80211_BAND_5GHZ] = band;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6019:4: warning: statement with no effect [-Wunused-value]
wiphy->bands[IEEE80211_BAND_5GHZ] = band;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘brcmf_free_wiphy’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6232:18: error: array subscript is not an integer
if (wiphy->bands[IEEE80211_BAND_2GHZ]) {
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6233:21: error: array subscript is not an integer
kfree(wiphy->bands[IEEE80211_BAND_2GHZ]->channels);
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6233:42: error: ‘struct ieee80211_channel’ has no member named ‘channels’
kfree(wiphy->bands[IEEE80211_BAND_2GHZ]->channels);
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6234:21: error: array subscript is not an integer
kfree(wiphy->bands[IEEE80211_BAND_2GHZ]);
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6236:18: error: array subscript is not an integer
if (wiphy->bands[IEEE80211_BAND_5GHZ]) {
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6237:21: error: array subscript is not an integer
kfree(wiphy->bands[IEEE80211_BAND_5GHZ]->channels);
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6237:42: error: ‘struct ieee80211_channel’ has no member named ‘channels’
kfree(wiphy->bands[IEEE80211_BAND_5GHZ]->channels);
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6238:21: error: array subscript is not an integer
kfree(wiphy->bands[IEEE80211_BAND_5GHZ]);
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c: In function ‘brcmf_cfg80211_attach’:
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6315:18: error: array subscript is not an integer
if (wiphy->bands[IEEE80211_BAND_2GHZ]) {
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6316:22: error: array subscript is not an integer
cap = &wiphy->bands[IEEE80211_BAND_2GHZ]->ht_cap.cap;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6316:43: error: ‘struct ieee80211_channel’ has no member named ‘ht_cap’
cap = &wiphy->bands[IEEE80211_BAND_2GHZ]->ht_cap.cap;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6316:51: error: request for member ‘cap’ in something not a structure or union
cap = &wiphy->bands[IEEE80211_BAND_2GHZ]->ht_cap.cap;
^
/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.c:6316:7: warning: assignment from incompatible pointer type
cap = &wiphy->bands[IEEE80211_BAND_2GHZ]->ht_cap.cap;
^
make[2]: *** [/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac/cfg80211.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [module/home/pi/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon/brcmfmac] Error 2
Makefile:41: recipe for target 'brcmfmac.ko' failed
make: *** [brcmfmac.ko] Error 2
pi@raspberrypi:~/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon $

RPI3: WLC always down

Whenever I try to send a frame using nexmon on the rpi3 wlc is down

first of, when inserting the driver:
000000.056 wl0: wlc_enable_probe_req: state down, deferring setting of host flags

secondly when calling sendframe, with your beacon example:
000044.020 ERR: wlc down

I am not sure if this has anything to do with the stuff I fixed to get the whole thing to compile, as it did not do so from the beginning, see #34 ... To try out if I broke something I used the current commit and started with your CT guide from there, but the result was the same

Raspberry Pi 3 Model B - going back to original firmware?

In README.md you say:

Note: It is not possible to connect to an access point anymore using our modified driver and firmware, if you whant to go back to the default behaviour you will need to load the original driver and firmware.

How do we load the original driver and firmware? Are the directions from https://github.com/seemoo-lab/bcm-rpi3 still accurate?

Original firmware and driver

  • Optional: remove the monitor mode driver rmmod brcmfmac
  • cp /root/brcmfmac43430-sdio.orig.bin /lib/firmware/brcm/brcmfmac43430-sdio.bin
  • use modprobe brcmfmac to load the unmodified driver and firmware

I do not want to brick my Pi's wlan0 by mistake! Thank you!

Reaver and wifite not working properly

So i've been testing those tools on my ao but it seems that they don't work at all, it keeps prompting me that it failed to associate or request timeout and wifite the same and it stuck on 0/0 and does not show any progress, and deauth packets can't deauthenticate, I could do it only once, please help me because I couldn't find any solution for this, I'm using a rpi3.thank you

Building for/on a PiZero W

The Pi Zero W uses the same wifi chip as the Pi3B so it should work and I changed all the uname references looking for armv7l and changing them to armv6l but i've not managed to get the results of the build working yet. Has anyone managed to get Nexmon working on a Pi Zero W yet?

Android NDK version?

I tried to compile the utilities on ubuntu, but I get compilation errors...

With r11c (the one you suggested on bcm-public to use) I get:
././../wireshark/wsutil/adler32.c:27:18: fatal error: glib.h: No such file or directory

and with r13b (latest) I get:
././../libnexio/local/armeabi/libnexio.a: error adding symbols: File in wrong format

What version are you using?

Edit: That's with make in /utilities.

Rooting the device

Hello,
I am working on Android emulator (Nexus5 API) and when I launch the app it asks me to root the device, I tried installing the app on the device itself too, it says "we need root to proceed", but you mentioned in the description that it doesn't need rooting, why am I getting this?

Failure building on the RPI3

I'm unable to build on the RPI3 following the instructions in the readme.
I've installed a fresh copy of Raspbian Lite using NOOBS.

Then I follow the instructions from nexmon as super user by first running sudo su.
The error arises during the Compile a patched firmware: make step.

BUILDING DRIVER brcmfmac/brcmfmac.ko (details: log/driver.log)
Make[1]: *** /lib/modules/4.4.34-v7+/build: No such file or directory. Stop.
Makefile:31: recipe for target 'brcmfmac.ko' failed
make: *** [brcmfmac.ko] Error 2

I've tried the same approach without running the instructions as root but that leads to the same error.

Alternatively I tried restoring the image from the old repo, https://github.com/seemoo-lab/bcm-rpi3/releases/download/0.3/nexmon_rpi_12-10-2016.tar.gz, but booting the Pi lead to kernel panic. Same with the Kali image from here: #20. Also kernel panic when booting.

What am I doing wrong?

Kali Linux

Hello,
How to compile it on kali? Because I can't use:
apt-get install raspberrypi-kernel-headers.

Nexus 5x support

Can you please add support for the Nexus 5x ?
The Nexus 6P is supported, I would expect it's little brother to also be.

Use with tshark

Hi,

I may still be doing something wrong, but it's less obvious now!

I'm trying to use the firmware with tshark (so I can use FIND-LF https://github.com/schollz/find-lf) but tshark says it doesn't support monitor mode.

I think it comes down to the following:

16:51:05 ioctl(3, SIOCGIFINDEX, {ifr_name="lo", ifr_index=1}) = 0
16:51:05 ioctl(3, SIOCGIWNAME, 0x7eb83054) = 0
16:51:05 ioctl(3, SIOCGIWPRIV, 0x7eb83034) = -1 EOPNOTSUPP (Operation not supported)
16:51:05 ioctl(3, SIOCGIWMODE, 0x7eb83034) = 0
16:51:05 ioctl(3, SIOCGIFFLAGS, {ifr_name="wlan0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_MULTICAST}) = 0
16:51:05 ioctl(3, SIOCSIFFLAGS, {ifr_name="wlan0", ifr_flags=IFF_BROADCAST|IFF_MULTICAST}) = 0
16:51:05 ioctl(3, SIOCSIWMODE, 0x7eb83034) = -1 EOPNOTSUPP (Operation not supported)
16:51:05 ioctl(3, SIOCSIFFLAGS, {ifr_name="wlan0", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_MULTICAST}) = 0
16:51:05 close(3)                       = 0

I'm wondering if this is related to you mentioning that it's not necessary to explicitly set it to monitor mode?

Wondering how easy it would be to allow the SIOCSIWMODE to get further...

Is there an easy way to test that it's "working"? tcpdump -i wlan0 gets me some data...

RPI3 make nexutil get error

In my RPI3
root@pi3Debian:~/nexmon/utilities/nexutil# uname -a Linux pi3Debian 4.4.48-v7+ #964 SMP Mon Feb 13 16:57:51 GMT 2017 armv7l GNU/Linux
when i make nexutil:
root@pi3Debian:~/nexmon/utilities/nexutil# make gcc -static -o nexutil nexutil.c -DBUILD_ON_RPI -DVERSION=\"IT_VERSION\" -DUSE_NETLINK -I. -I../../patches/include -I../libnexio - L../libnexio/ -lnexio -I../libargp /usr/bin/ld: cannot find -lnexio collect2: error: ld returned 1 exit status Makefile:15: recipe for target 'nexutil' failed make: *** [nexutil] Error 1

Now, what can I do?

Raspberry Pi Model 3 B - How to turn monitor mode off?

I have successfully built nexmon and used nexutil -m2 to get into monitor mode. How do I get out of monitor mode back into managed mode?

I tried nexutil -m0 and then sudo ifconfig wlan0 down and sudo ifconfig wlan0 up but i still can't connect.

edit: iwconfig tells me wlan0 is in Mode:Managed but ifconfig lists wlan0 as UP BROADCAST NOTRAILERS RUNNING PROMISC ALLMULTI

edit2: can confirm that rebooting the Raspberry Pi resolves the issue. ifconfig lists wlan0 as UP BROADCAST RUNNING MULTICAST after a reboot.

is there any way to solve this without a reboot?

edit3: after rebooting i can't run nexutil any more. trying nexutil gives the following error:

nex_init_netlink: socket error (93: Protocol not supported)
nex_init_netlink: socket error (93: Protocol not supported)
nex_init_netlink: bind error (9: Bad file descriptor)
nex_init_netlink: connect error (9: Bad file descriptor)

rpi-kernel-headers does not create the build directory for make

I'm reinstalling Raspbian at the moment but yesterday when I tried to build this I was getting an error saying that
/lib/something/something/4.4.7v+?/build was not found
I'm assuming this is installed with sudo apt-get install rpi-kernel-headers but it was installed, and it still did not make this directory after I reinstalled it. I've had this problem before on Ubuntu distros where the kernel headers package was not creating the build folder. I am not sure if this is a distro problem, lack of more instructions for building, or just an invalid build process. Any help would be appreciated.

nexus 6p

any chance to support firmware version 7.112.201.1 for the nexus 6p?

Unable to build backup firmware for Nexus 5

I've been attempting to build and install the firmware patch for a Nexus 5 for a few weeks now; unfortunately, I can't get past the backup step. When I run make backup-firmware, I get the following error:
image
I'm using the newest version of the repository and am running x64 Ubuntu 16.04 (in a VM) to a stock Nexus 5 on 6.0.1 with the bootloader unlocked. Could anyone point me towards where my issue may be?

Thanks in advance!

New RPi3 Kernel, 4.4.38

Are you planning support for the above kernel? Is it relatively easy to add in support myself?

NexMon with Nexus 5 not working

I saw with a new update that NexMon says that the firmware is incompatible with my cm14.1 nexus 5. I can prove this is false, as in previous versions, the app would install it, and it would work in chroot.

Build error on Pi3

When I try to make nexutil I get an unknown type error.
Is an include missing somewhere?
This is whet I get:

pi@raspberrypi:~/git/nexmon/utilities/nexutil $ make

cd ../libnexio && make
make[1]: Entering directory '/home/pi/git/nexmon/utilities/libnexio'
gcc -c libnexio.c -o libnexio.o -DBUILD_ON_RPI -DVERSION="IT_VERSION" -I../../patches/include
ar rcs libnexio.a libnexio.o
make[1]: Leaving directory '/home/pi/git/nexmon/utilities/libnexio'
gcc -static -o nexutil nexutil.c bcmwifi_channels.c -DBUILD_ON_RPI -DVERSION="IT_VERSION" -DUSE_NETLINK -I. -I../../patches/include -I../libnexio -L../libnexio/ -lnexio -I../libargp
In file included from ./typedefs.h:343:0,
from nexutil.c:61:
./bcmdefs.h:195:2: error: unknown type name ‘uint’
uint origsize; /* Size of the virtual packet */
^
./bcmdefs.h:196:2: error: unknown type name ‘uint’
uint nsegs;
^
In file included from nexutil.c:62:0:
./bcmwifi_channels.h:454:27: error: unknown type name ‘uint’
extern int wf_mhz2channel(uint freq, uint start_factor);
^
./bcmwifi_channels.h:454:38: error: unknown type name ‘uint’
extern int wf_mhz2channel(uint freq, uint start_factor);
^
./bcmwifi_channels.h:482:27: error: unknown type name ‘uint’
extern int wf_channel2mhz(uint channel, uint start_factor);
^
./bcmwifi_channels.h:482:41: error: unknown type name ‘uint’
extern int wf_channel2mhz(uint channel, uint start_factor);
^
./bcmwifi_channels.h:493:33: error: unknown type name ‘uint’
extern uint16 wf_channel2chspec(uint ctl_ch, uint bw);
^
./bcmwifi_channels.h:493:46: error: unknown type name ‘uint’
extern uint16 wf_channel2chspec(uint ctl_ch, uint bw);
^
./bcmwifi_channels.h:495:8: error: unknown type name ‘uint’
extern uint wf_channel2freq(uint channel);
^
./bcmwifi_channels.h:495:29: error: unknown type name ‘uint’
extern uint wf_channel2freq(uint channel);
^
./bcmwifi_channels.h:496:8: error: unknown type name ‘uint’
extern uint wf_freq2channel(uint freq);
^
./bcmwifi_channels.h:496:29: error: unknown type name ‘uint’
extern uint wf_freq2channel(uint freq);
^
Makefile:15: recipe for target 'nexutil' failed
make: *** [nexutil] Error 1
pi@raspberrypi:~/git/nexmon/utilities/nexutil $

make install-firmware failing on RPi

I cloned the repo to desktop, and ran through all the instructions to install the firmware for bcm43438 onto the RPi. Everything was successful until the final step - make install-firmware when

pi@raspberrypi:~/Desktop/nexmon/patches/bcm43438/7_45_41_26/nexmon $ sudo make install-firmware
Makefile:2: /firmwares/bcm43438/7_45_41_26/definitions.mk: No such file or directory
make: *** No rule to make target '/firmwares/bcm43438/7_45_41_26/definitions.mk'. Stop.

I'm not really sure where to go from here. Am I doing something wrong?

definitions.mk missing?

Following instructions from here: https://github.com/seemoo-lab/nexmon

Raspbian 8 on RPI3 Model B.

pi@pi:~/nexmon/patches/bcm43438/7_45_41_26/nexmon $ sudo make
Makefile:4: /firmwares/bcm43438/7_45_41_26/definitions.mk: No such file or directory
make: *** No rule to make target '/firmwares/bcm43438/7_45_41_26/definitions.mk'. Stop.

Thoughts?

bcm43438 nexmon firmware not working

I'm unsure if this is just me having this issue but previous repo (bcm-rpi3) firmware works fine but firmware built from this repo doesn't work on my pi3. It shows monitor mode in iwconfig and switches channels in airodump but it's not receiving any SSIDs.

For now I'm just using previous repo but I would like to know if this is an issue on my part or if anyone has tested bcm43438 built from this repo and had it work. (This is tested on kali linux only)

brcmfmac: nexmon_ioctl_handling: NEXMON: nexmon_ioctl_handling: error on copy ifr_data

Hi,

after loading Nexmon on Kali (on a Raspberry Pi 3) and successfully getting packets in monitor mode, I noticed the system seems to get the following message in dmesg when just running airmon-ng without any parameters (Aircrack-ng 1.2rc4):

[ 2271.750875] brcmfmac: nexmon_ioctl_handling: NEXMON: nexmon_ioctl_handling enter
[ 2271.750903] brcmfmac: nexmon_ioctl_handling: NEXMON: nexmon_ioctl_handling: error on copy ifr_data
[ 2271.750980] brcmfmac: nexmon_ioctl_handling: NEXMON: nexmon_ioctl_handling enter
[ 2271.752901] brcmfmac: nexmon_ioctl_handling: NEXMON: nexmon_ioctl_handling enter
[ 2271.752927] brcmfmac: nexmon_ioctl_handling: NEXMON: nexmon_ioctl_handling: error on copy ifr_data

I believe one of them is a leftover debug message and the other one is the actual error (even though I don't see any error output in airmon-ng.

uname -a:

Linux kali 4.4.39-v7_Re4son-Kali-Pi-TFT+ #1 SMP Fri Dec 30 09:58:20 CST 2016 armv7l GNU/Linux

Can I use it for LG G3 cat6(LG-F460S which use bcm4339 chip)?

I followed the steps for Nexus 5(bcm4339 chip).
I used Nexmon app through the Google Play.
I also install the tools and firmware, however, since then, my phone has restarted after the rooting within few minutes(?) seconds(?). (I am using KingRoot for temporal rooting.)

Could you give me some advice for me? Should I install the permanent rooting program?

setup_env.sh error

I am running Ubuntu 16.04 on vm workstation with a Intel Core i7. When I try to run setup_env.sh I get a platform not supported. I have looked at the bash script and even tried changing the hostname from Linux to ubuntu.

Nexmon directory typo

When attempting to compile/make, I get:

/buildtools/ucode_extractor/ucodeext -r bcmdhd_sta.bin -b 0x2D830 -l 0x8B82 -o ucode.bin
make[3]: /buildtools/ucode_extractor/ucodeext: Command not found

The build command should be:

./buildtools/ucode_extractor/ucodeext -r bcmdhd_sta.bin -b 0x2D830 -l 0x8B82 -o ucode.bin
^
(Period goes there)

Raspberry Pi 3 Model B - stuck at channel 1

I followed the instructions and successfully executed 'tcpdump -i wlan0' and 'airodump-ng wlan0'. However, I don't get data from channels other than 1.

  • changing the channel manually with 'iwconfig wlan0 channel 11' returns

    Error for wireless request "Set Frequency" (8B04) :
    SET failed on device wlan0 ; Device or resource busy.

  • I already removed all references to wlan0 in /etc/network/interfaces.

  • I uninstalled wpa-supplicant ('apt-get remove wpasupplicant')

  • I killed processes that may interfere ('airmon-ng check kill')

Did I miss anything?

PI zero w support

Hi it looks as though the arch is hardcoded for ARMV7l is there a reason for this or would it be possible to allow support for the pi zero w that is a ARMV6L device?

Ubuntu MATE + RPi3

I am currently looking for a way to use Raspberry Pi 3 Mobel B with the built-in Broadcom wifi chip in promiscuous mode. I HAVE to use Ubuntu MATE (not raspbian), as I will be using some tools that only work on that OS. Before I venture myself on testing nexmon, I'd like to know if any of you have tried it before. Or any idea if it might work or not?

Thank you

LD_PRELOAD problem

All times when I try to use LD_PRELOAD I get

ERROR: ld.so: object 'libfakeioctl.so' from LD_PRELOAD cannor be preloaded (cannot open shared object file): ignored.

I get this error everywhere including when try to copy example.

Also I get error nexutil: command not found, but I have fw_bcmdhd.bin in vendor folder . I make all step by step as in instruction, but looks like I forget something? (Nexus5 Nethunter)

build failure on Raspberry Pi 3

The instructions fail to list a dependency, qpdf. This causes failure thusly:

  COMPRESSING UCODE gen/ucode.bin => gen/ucode_compressed.bin
/bin/bash: zlib-flate: command not found
Makefile:135: recipe for target 'gen/ucode_compressed.bin' failed
make: *** [gen/ucode_compressed.bin] Error 127

However, a 2nd bug also exists. Attempting to re-run make succeeds! This is due to zero-length (and thus useless) ucode_compressed.bin.

Raspbian 8 build /bin/sh: 1: ccobjcopy: not found

I builded patches for bcm43438 on the RPI3 using Raspbian 8.
after:
cd patches/bcm43438/7_45_41_26/nexmon/
make

I got an error: Makefile:99: recipe for target 'brcmfmac43430-sdio.bin' failed
and log/flashpatches.log

make[1]: Entering directory '/home/pi/Downloads/nexmon/patches/bcm43438/7_45_41_26/nexmon'
ccobjcopy -O binary -j .text.bl_flash_patch_179 gen/patch.elf gen/section.bin && dd if=gen/section.bin of=brcmfmac43430-sdio.bin bs=1 conv=notrunc seek=$((0x00001000 - 0x00000000))
/bin/sh: 1: ccobjcopy: not found
gen/flashpatches.mk:2: recipe for target 'brcmfmac43430-sdio.bin' failed
make[1]: *** [brcmfmac43430-sdio.bin] Error 127
make[1]: Leaving directory '/home/pi/Downloads/nexmon/patches/bcm43438/7_45_41_26/nexmon'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.