(My question is for either
geteng666 or
RehabMan)
And before I start, thanks RehabMan for your work, I see your contributions everywhere.
I have the same bluetooth hardware as
geteng666, but I’m absolutely stuck trying to follow the instructions for extracting/injecting from the windows drivers. I’ve tried to word this post in a way that hopefully others who are stuck can follow. I'm running Sierra, which means I've installed BrcmPatchRAM2, BrcmFirmwareRepo, and BrcmNonPatchRAM2.
Confusion point 1:
“using the included zlib.pl script”
I have the hex file,
but I don’t see a zlib.pl script in the GitHub repo or in any folder in the GitHub repo.
This step was optional, so I skipped it and did the next step:
put the .hex file from the window on my desktop, opened up terminal, went to Desktop and ran:
xxd -ps BCM20702B0_002.001.014.0527.0557.hex|tr '\n' ' ' > BCM20702B0_002.001.014.0527.0557.dmp
(and successfully got the .dmp file)
Confusion point 2:
"under the BcmFirmwareStore/Firmwares dictionary."
nandor690 also asked about this, but I’m still not sure what the answer is.
I open the Info.plist in BrcmFirmwareRepo.kext with a text editor,
I find (CMD+f) the “BrcmFirmwareStore” key
But there is no “Firmwares” key/dict inside of the BrcmFirmwareStore dict
<key>IOKitPersonalities</key>
<dict>
<key>BrcmFirmwareStore</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.no-one.BrcmFirmwareStore</string>
<key>IOClass</key>
<string>BrcmFirmwareStore</string>
<key>IOMatchCategory</key>
<string>BrcmFirmwareStore</string>
<key>IOProviderClass</key>
<string>disabled_IOResources</string>
</dict>
</dict>
Confusion point 3:
"create a new firmware key"
Lets say I had found the “
Firmwares” dict
Then I’m supposed to add something like the following to the Firmwares dict right?
<key>*MyFirmwareKey*</key>
<string>*AllTheFirmwareData*</string>
I think *AllTheFirmwareData* is just supposed to be copied and pasted from the .dmp file
But where do I get *MyFirmwareKey*?
Is it just the name of the hex BCM20702B0_002.001.014.0527.0557?
Is it the “c14 v4626”? (Obviously without the quotes)
or is it something else?
Confusion point 4:
“After configuring a key under BcmFirmwareStore/Firmwares, add your device ID as a new device for BrcmPatchRAM”
I can guess to add something to the “IOKitPersonalities” dict inside of the Info.plist in BrcmPatchRAM.kext
I think I should add something like:
<key>*DeviceKey*</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.iokit.BroadcomBluetoothHostControllerUSBTransport</string>
<key>IOClass</key>
<string>BroadcomBluetoothHostControllerUSBTransport</string>
<key>IOProviderClass</key>
<string>IOUSBHostDevice</string>
<key>idProduct</key>
<integer>*ProductIdInDecimalForm*</integer>
<key>idVendor</key>
<integer>*VendorIdInDecimalForm*</integer>
</dict>
My Vendor ID: 19ff
My Product ID: 0239
So *ProductIdInDecimalForm* should be replaced with 569
*VendorIdInDecimalForm* should be replaced with 6655
But should my *DeviceKey* be “19ff_239 native” or “19ff_0239 native” or “19ff_239 no firmware”?
Sorry if these are really elementary questions. Even though I have some android/linux/windows hacking experience I’m new to hackintosh stuff.