seemoo-lab / nexmon

The C-based Firmware Patching Framework for Broadcom/Cypress WiFi Chips that enables Monitor Mode, Frame Injection and much more
GNU General Public License v3.0
2.39k stars 449 forks source link

BCM43455 LG G5 new firmware version #284

Open darkalexpp opened 5 years ago

darkalexpp commented 5 years ago

Hi, @matthiasseemoo I have a LG g5 device (bcm43455) and tried with all the firmware versions that exist here, but none of them worked, so I want to create my own firmware patched in this version 7_45_88_10 (Thu 2017-09-14).

I had read an issue related to this topic but it is not clear to me yet, because I am not creating support for a new IC I want to apply to a newer version of the firmware.

How can I start?

darkalexpp commented 5 years ago

I dump rom.bin from dhdutil membytes. Start with the creation of folders, firmware files (fw_bcmdhd.bin (RAM)), and calculating and replacing the definitions.mk offset. Then in patches, I add the new firmware in include / firmware_version.h. I analyze the rom.bin + ram.bin for wrapper.c (matches bcm43455), I create patch.c in nexmon / src, I correct the Hook offset the call to wlc_ucode_write

darkalexpp commented 5 years ago

I try to load the firmware, with different modifications but I always get this error message from the dhd module:

[ 259.023801 / 02-21 14:38:23.764][2] DHD Runtime PM Enabled [ 264.149696 / 02-21 14:38:28.884][2] dhdpcie_readshared: address (0xfe3901c6) of pciedev_shared invalid [ 264.149732 / 02-21 14:38:28.894][2] dhd_bus_init :Shared area read failed [ 264.149737 / 02-21 14:38:28.894][2] dhd_bus_start, dhd_bus_init failed -1