Jump to content
Drovosek

Trying using .dfu firmware to enable bluetooth in macOS

Recommended Posts

Hello.

I have system unit Dell Vostro 3267 (i5-6400, Skylake). Information in signature.

 

In this system block module installed Atheros AR9565 802.11 b/g/n Wireless Network Adapter, which, as I understand it, combines Wi-Fi - Atheros AR9565 and Bluetooth Qualcomm QCA9565.

 

I managed to get working Wifi with kext from chunnann.

https://www.insanelymac.com/forum/topic/312045-atheros-wireless-driver-os-x-101112-for-unsupported-cards/?page=17&tab=comments#comment-2509900

https://www.insanelymac.com/forum/topic/328426-qualcomm-atheros-ar9565-wireless-for-os-x-108-1014/

 

Bluetooth works only if you first boot into Windows and then reboot into macOS from it. At the same time, you need to install drivers for bluetooth in Windows from the official Dell website, because the original drivers that Windows downloaded and installed itself - did not allow the bluetooth module to work even in Windows.

 

In bluetooth settings, the power button was inactive and there was an eternal search for devices (if macOS was loaded immediately after the PC started). Enable button disable I cured just by adding the folder /kexts/Other kext BrcmBluetoothInjector by writing inside it in the Info.the plist file corresponds to the VendorID and ProductID of my bluetooth (which are displayed in the system report). BrcmBluetoothInjector_Mod.kext.zip

 

I am disappointed that Windows is able to automatically download the firmware to the bluetooth module during the download, and Hackintosh macOS has not yet done such a kext.

 

In the search for solutions to the problem I came across here are the options for the text:

 

IOath3kfrmw (OS-X-Atheros-3k-Firmware)

https://bitbucket.org/RehabMan/os-x-atheros-3k-firmware/downloads/

https://github.com/RehabMan/OS-X-Atheros-3k-Firmware

https://github.com/headkaze/OS-X-Atheros-3k-Firmware

 

OS-X-BrcmPatchRAM

https://github.com/the-darkvoid/BrcmPatchRAM

https://github.com/RehabMan/OS-X-BrcmPatchRAM

https://bitbucket.org/RehabMan/os-x-brcmpatchram/downloads/

https://bitbucket.org/anonymous_writer/os-x-brcmpatchram-catalina/downloads/

https://github.com/headkaze/OS-X-BrcmPatchRAM

 

BTFirmwareUploader (as I understand it, this is an improved IOath3kfrmwr)

https://osxlatitude.com/forums/topic/2925-bluetooth-firmware-uploader/

 

And here's a way - to use a virtual machine to the OS from it to download the firmware to the bluetooth module

https://osxlatitude.com/forums/topic/10127-updated-nov-2017-fix-btfirmwareuploader-in-macos-high-sierra/

 

Unfortunately, not one of these options did not help me to ensure that bluetooth worked when "cold" start the PC in macOS.

 

1.

I started to read more about kexts. In texte BrcmPatchRAM says that it is possible to add support for their bluetooth module in this kext. I downloaded the drivers for my bluetooth from the official site and extracted from .exe installer driver files themselves (This is easily done using 7-zip in Windows or using Keka in macOS). There were more files .dfu than others. As I found out .dfu files are compiled firmware files that the driver loads into the bluetooth module. In the instructions to BrcmPatchRAM States only .hex firmware files for Broadcom.

I started looking for information on the Internet and found out that .hex files are the original "text" of the firmware as well .dfu is compiled .hex files.

 

I immediately started looking for converters/decompilers/disassemblers from .in dfu .hex, but found only what's out .hex does .dfu file:

https://github.com/pjsg/hex2dfu

https://github.com/plietar/dfuse-tool

https://github.com/kuro68k/ihex2dfu

https://github.com/vpelletier/python-dfu

 

As well as console utilities "dfu-tool" and "dfu-util" in Linux. I found out that dfu-util can be installed in macOS using Homebrew or use this option (it differs in functionality) https://github.com/the-darkvoid/dfu-util-osx

 

2.

I also learned that .dfu files are used in macOS /System/Library/Extensions/IOBluetoothFamily.kext/Contents/PlugIns/IOBluetoothUSBDFU.kext/Contents/Resources

I think we should try to replace all of them on that file that Windows loads the bluetooth module (I think if you try to do so, you need to make several copies of this file and rename it to the original ones .dfu files to be deleted).

 

3.

As is the idea is just mine .dfu file rename to file .zhx and add it to the kext OS-X-BrcmPatchRAM (in BrcmFirmwareRepo.kext). But there is a problem - first, I don't know which one .dfu files are downloaded to my bluetooth, maybe even a few, because there are 3 files > 40 KB IN size and a lot of files ~ 2 KB in size.

 

4.

In "dfu-tool" and "dfu-util" I saw commands that extract firmware from the device. Maybe it will be possible to boot into Linux and if bluetooth starts working there, then try to extract the firmware from bluetooth with these utilities, and then add this firmware to kexts somehow.

 

5.

In the file BTFirmwareUploader.kex/Contents/MacOS/BTFirmwareUploader inside already have a list of firmwares, but they are in .hex format. Maybe there's a way to replace them with the contents .dfu file?

 

I will continue to describe the ideas and results of the experiments. If you have any ideas or you can help to solve this problem, do not hesitate to write.

 

Screenshots:

1.jpg.4fc5e3491c7ea3fef8c3bbaff7bf24a4.jpg

2.thumb.jpg.8916b64d2f3a4ebe85d1160390769944.jpg

 

Links to download drivers:

https://www.dell.com/support/home/us/en/19/drivers/driversdetails?driverid=g66t8&oscode=wt64a&productcode=vostro-3267-desktop&lwp=rt

Extracted bluetooth drivers:

https://yadi.sk/d/cYGax0NEdoCF3w

QCA9565 Bluetooth-Driver.7z

 

https://www.acer.com/ac/en/US/content/support-product/5977?b=1&pn=NX.MVGER.002

https://global-download.acer.com/GDFiles/Driver/Bluetooth/Bluetooth_Atheros_10.0.1.0_W10x64_A.zip?acerid=635736531919697771&Step1=NOTEBOOK&Step2=ASPIRE&Step3=ASPIRE E5-573G&OS=ALL&LC=ru&BC=ACER&SC=EMEA_23

BrcmBluetoothInjector_Mod.kext.zip

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.





×
  • Create New...