Contribute
Register

Elitebook 8460p Wireless Whitelist & BIOS Questions...

Status
Not open for further replies.
Joined
Jan 10, 2011
Messages
39
Motherboard
Dell Precision M4800-Clover
CPU
i7-4810MQ/QM87
Graphics
Quadro K2100M - 3200x1800
Classic Mac
  1. Power Mac
  2. PowerBook
Mobile Phone
  1. Android
Hi.

So I got a Elitebook 8460p which unfortunately came with a Intel 6205 Wifi :(

Even so, a couple of hours I received it, I had OS X 10.10 running on it (thanks nguyen for PBI!), and I started working thru the good old RJ45 cable. But the WIFI not working was killing me, so went and opened my wallet and it was pretty much empty, so the chances of me ordering a working card (that passes the whitelist and works in OS X) were (and are) kinda null.

Since I do a few computer fixes here and there and have done for the past years, I amassed quite the collection of (mostly unuseful) wifi cards so I dumpster dived into the box. Sadly, all I found were:

A handful of AR5B95's (Atheros 9285)
1 AR5B225 (Atheros 9485 + Bluetooth)
1 AR5B195 (Atheros 9285 + Bluetooth)
1 AR5B97 (Atheros 9287)

Sadly, none of these pass the whitelist, and of the list and according to this only the AR5B85, AR5B195 and the AR5B97 work on OS X with some patches.

So, I went a bit on the nerd-mode (and I guess a bit way over my head) and got Andy's Phoenix BIOS Editor to decompile F60's BIOS and extracted the WIFI Module. Opened the module on a hex editor and started searching for PCI IDs. What I found was:

Broadcom:
14E4:4353 1509103C - 0A - BCM43224 802.11a/b/g/n WMIB-275N Half-size Mini PCIe Card (Dell 1520 and Airport Extreme have same vendor/dev id but different subvendor id)
14E4:4353 1510103C - 0A - BCM43224 802.11a/b/g/n
14E4:4727 145C103C - 0A - BCM4313 802.11bgn Wireless Network Adapter

INTEL:

8086:0082 8086:1301 - 0A - Centrino Advanced-N 6205 [Taylor Peak] AGN
8086:0082 8086:1306 - 0A - Centrino Advanced-N 6205 [Taylor Peak] ABG
8086:0083 8086:1305 - 0B - Centrino Wireless-N 1000 [Condor Peak] BGN
8086:0083 8086:1306 - 0B - Centrino Wireless-N 1000 [Condor Peak] BG
8086:0084 8086:1315 - 0B - Centrino Wireless-N 1000 [Condor Peak] BGN
8086:0084 8086:1316 - 0B - Centrino Wireless-N 1000 [Condor Peak] BG
8086:0085 8086:1311 - 0A - Centrino Advanced-N 6205 [Taylor Peak] AGN
8086:0085 8086:1316 - 0A - Centrino Advanced-N 6205 [Taylor Peak] ABG
8086:422B 8086:1101 - 0B - Centrino Ultimate-N 6300 3X3 AGN
8086:4238 8086:1111 - 0B - Centrino Ultimate-N 6300 3X3 AGN

Atheros:

168C:0030 1627103C - 0F - AR5BHB112 - AR93xx Wireless Network Adapter AR9380/HB112 802.11abgn 3×3 Wi-Fi Adapter
(Same Ven/Dev ID as DWA-566 Desktop Adapter and Killer Wireless-N 1102 & 1103).

I'm guessing these are the allowed cards, but what I can't figure out is the byte next to the PCI ID. For Broadcom is was 0x0A, for the Intel crappy cards it varied between 0x0A & 0x0B and the Atheros was 0x0F. Then again I don't know how significant it might be or not.

Since none of my cards are in that list, I'm going to try and rebrand the AR9287 to the PCI ID of the AR9380 and I'll report.

If it works, I'll post how I did it, and even if it's all in vain and I do have to buy one from eBay whenever I get money, at least the post serves the purpose of listing the allowed cards in 8460p's F60 BIOS.

Also, one more question, is the F20 Bios also RSA encrypted?
 
Hi.
...
If it works, I'll post how I did it, and even if it's all in vain and I do have to buy one from eBay whenever I get money, at least the post serves the purpose of listing the allowed cards in 8460p's F60 BIOS.

It should work, but the BCM card is a better choice (better bluetooth).

You might need to use FakePCIID.kext (and custom injector).

Also, one more question, is the F20 Bios also RSA encrypted?

Yes.
 
It should work, but the BCM card is a better choice (better bluetooth).

Laptop already has Broadcom Bluetooth (Separately).

You might need to use FakePCIID.kext (and custom injector).

I have no idea on how to do that. The rebranding worked, it showed as AR9380 on Windows and passed the whitelist check on the laptop, but OS X didn't detect it. The info.plist for /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros40.kext/ already has <string>pci168c,30</string> on it so how do I go from here?

Also, I'd like to thank you for all your work on the Hackintosh-scene, and also for your replies. :)
 
...
I have no idea on how to do that. The rebranding worked, it showed as AR9380 on Windows and passed the whitelist check on the laptop, but OS X didn't detect it. The info.plist for /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros40.kext/ already has <string>pci168c,30</string> on it so how do I go from here?

Also, I'd like to thank you for all your work on the Hackintosh-scene, and also for your replies. :)

Refer to the FakePCIID readme and some of the example injectors.

The problem is your device is identifying itself as something that it is not. You need to use FakePCIID to undo the effect of the rebranding when the driver queries the PCI IDs.
 
I've read the README and I understood what I need to do. I've tried to edit the Atheros injector kext you provided on the ZIP to match mine, but the FakeProperties bit is killing me. I do not understand where you got KgAAAA== or what does it mean.

Here's my current Info.plist:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>BuildMachineOSBuild</key>
	<string>14C1510</string>
	<key>CFBundleIdentifier</key>
	<string>org.rehabman.injector.FakePCIID-AR9280-as-AR9380</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>FakePCIID_AR9280_as_AR9380</string>
	<key>CFBundlePackageType</key>
	<string>KEXT</string>
	<key>CFBundleShortVersionString</key>
	<string>1.1.1</string>
	<key>CFBundleVersion</key>
	<string>1.1.1</string>
	<key>DTCompiler</key>
	<string>com.apple.compilers.llvm.clang.1_0</string>
	<key>DTPlatformBuild</key>
	<string>6C131e</string>
	<key>DTPlatformVersion</key>
	<string>GM</string>
	<key>DTSDKBuild</key>
	<string>14A383</string>
	<key>DTSDKName</key>
	<string>macosx10.10</string>
	<key>DTXcode</key>
	<string>0620</string>
	<key>DTXcodeBuild</key>
	<string>6C131e</string>
	<key>IOKitPersonalities</key>
	<dict>
		<key>AirPort AR9280 as AR9380</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.apple.driver.AirPort.Atheros40</string>
			<key>IOClass</key>
			<string>AirPort_AtherosNewma40</string>
			<key>IOMatchCategory</key>
			<string>IODefaultMatchCategory</string>
			<key>IONameMatch</key>
			<array>
				<string>pci168c,30</string>
			</array>
			<key>IOProbeScore</key>
			<integer>600</integer>
			<key>IOProviderClass</key>
			<string>IOPCIDevice</string>
		</dict>
		<key>FakePCIID AR9280 as AR9380</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>org.rehabman.driver.FakePCIID</string>
			<key>FakeProperties</key>
			<dict>
				<key>RM,device-id</key>
				<data>
				KgAAAA==
				</data>
				<key>RM,subsystem-id</key>
				<data>
				jwAAAA==
				</data>
				<key>RM,subsystem-vendor-id</key>
				<data>
				axAAAA==
				</data>
				<key>RM,vendor-id</key>
				<data>
				jBYAAA==
				</data>
			</dict>
			<key>IOClass</key>
			<string>FakePCIID</string>
			<key>IOMatchCategory</key>
			<string>FakePCIID</string>
			<key>IOPCIPrimaryMatch</key>
			<string>0x0030168c 0x002e168c</string>
			<key>IOProviderClass</key>
			<string>IOPCIDevice</string>
			<key>RM,Build</key>
			<string>Release-RehabMan</string>
			<key>RM,Version</key>
			<string>FakePCIID_AR9280_as_AR9380 1.1.1</string>
		</dict>
	</dict>
	<key>OSBundleRequired</key>
	<string>Network-Root</string>
	<key>Source Code</key>
	<string>https://github.com/RehabMan/FakePCIID</string>
</dict>
</plist>

PCI ID 168c,30 is the ID that the card is reporting after the rebranding, and the original is 168c:2e.

Also, meanwhile a friend of mine got ahold of a BCM943228HM4L from a dead Probook 6470b but it is also blacklisted.... :(
 
I've read the README and I understood what I need to do. I've tried to edit the Atheros injector kext you provided on the ZIP to match mine, but the FakeProperties bit is killing me. I do not understand where you got KgAAAA== or what does it mean.

Here's my current Info.plist:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>BuildMachineOSBuild</key>
	<string>14C1510</string>
	<key>CFBundleIdentifier</key>
	<string>org.rehabman.injector.FakePCIID-AR9280-as-AR9380</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>FakePCIID_AR9280_as_AR9380</string>
	<key>CFBundlePackageType</key>
	<string>KEXT</string>
	<key>CFBundleShortVersionString</key>
	<string>1.1.1</string>
	<key>CFBundleVersion</key>
	<string>1.1.1</string>
	<key>DTCompiler</key>
	<string>com.apple.compilers.llvm.clang.1_0</string>
	<key>DTPlatformBuild</key>
	<string>6C131e</string>
	<key>DTPlatformVersion</key>
	<string>GM</string>
	<key>DTSDKBuild</key>
	<string>14A383</string>
	<key>DTSDKName</key>
	<string>macosx10.10</string>
	<key>DTXcode</key>
	<string>0620</string>
	<key>DTXcodeBuild</key>
	<string>6C131e</string>
	<key>IOKitPersonalities</key>
	<dict>
		<key>AirPort AR9280 as AR9380</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>com.apple.driver.AirPort.Atheros40</string>
			<key>IOClass</key>
			<string>AirPort_AtherosNewma40</string>
			<key>IOMatchCategory</key>
			<string>IODefaultMatchCategory</string>
			<key>IONameMatch</key>
			<array>
				<string>pci168c,30</string>
			</array>
			<key>IOProbeScore</key>
			<integer>600</integer>
			<key>IOProviderClass</key>
			<string>IOPCIDevice</string>
		</dict>
		<key>FakePCIID AR9280 as AR9380</key>
		<dict>
			<key>CFBundleIdentifier</key>
			<string>org.rehabman.driver.FakePCIID</string>
			<key>FakeProperties</key>
			<dict>
				<key>RM,device-id</key>
				<data>
				KgAAAA==
				</data>
				<key>RM,subsystem-id</key>
				<data>
				jwAAAA==
				</data>
				<key>RM,subsystem-vendor-id</key>
				<data>
				axAAAA==
				</data>
				<key>RM,vendor-id</key>
				<data>
				jBYAAA==
				</data>
			</dict>
			<key>IOClass</key>
			<string>FakePCIID</string>
			<key>IOMatchCategory</key>
			<string>FakePCIID</string>
			<key>IOPCIPrimaryMatch</key>
			<string>0x0030168c 0x002e168c</string>
			<key>IOProviderClass</key>
			<string>IOPCIDevice</string>
			<key>RM,Build</key>
			<string>Release-RehabMan</string>
			<key>RM,Version</key>
			<string>FakePCIID_AR9280_as_AR9380 1.1.1</string>
		</dict>
	</dict>
	<key>OSBundleRequired</key>
	<string>Network-Root</string>
	<key>Source Code</key>
	<string>https://github.com/RehabMan/FakePCIID</string>
</dict>
</plist>

PCI ID 168c,30 is the ID that the card is reporting after the rebranding, and the original is 168c:2e.

Also, meanwhile a friend of mine got ahold of a BCM943228HM4L from a dead Probook 6470b but it is also blacklisted.... :(

First, always use a plist editor (such as Xcode). The FakeProperties values will make more sense then (the values you see as text are base64 encoded).

Be sure to show Raw Values in Xcode.

You don't need the first IOKitPersonality (because your device-id 0x30 is already recognized by the native Info.plist). You just need the part that will load FakePCIID.kext (again, matching on device 168c:30).

The value you want for RM,device-id is <2e 00 00 00>.

FYI: BCM943228HM4L is not supported by OS X anyway...
 
OK, and now all I need is to drop the FakePCIID_AR9280_as_AR9380.kext and the FakePCIID.kext to Clover's kext folder? Or do I need to change something in Chameleon / DSDT?

edit: I did reboot after placing kext's in EFI Clover folder, and it worked. Many thanks RehabMan! :D

Attached is the file I used. No need to edit DSDT. Should work OOB provided you have a patched AR9287 wifi card (to report 168c:0030 aka AR9380) and a 8460p.
 

Attachments

  • FakePCIID_AR9280_as_AR9380.kext.zip
    2.9 KB · Views: 350
OK, and now all I need is to drop the FakePCIID_AR9280_as_AR9380.kext and the FakePCIID.kext to Clover's kext folder? Or do I need to change something in Chameleon / DSDT?

edit: I did reboot after placing kext's in EFI Clover folder, and it worked. Many thanks RehabMan! :D

Attached is the file I used. No need to edit DSDT. Should work OOB provided you have a patched AR9287 wifi card (to report 168c:0030 aka AR9380) and a 8460p.

Yup... that's how FakePCIID is intended to be used...
 
OK, and now all I need is to drop the FakePCIID_AR9280_as_AR9380.kext and the FakePCIID.kext to Clover's kext folder? Or do I need to change something in Chameleon / DSDT?

edit: I did reboot after placing kext's in EFI Clover folder, and it worked. Many thanks RehabMan! :D

Attached is the file I used. No need to edit DSDT. Should work OOB provided you have a patched AR9287 wifi card (to report 168c:0030 aka AR9380) and a 8460p.

could i get some help on finding a wireless pci-e card for the elitebook 8460p? i am a newb and dont understand what they mean by HP-branded Broadcom 43224HMS

how do i know vendor-id, device-id, subvendor-id, subdevice-id that works for elitebook 8460p?
 
could i get some help on finding a wireless pci-e card for the elitebook 8460p? i am a newb and dont understand what they mean by HP-branded Broadcom 43224HMS

how do i know vendor-id, device-id, subvendor-id, subdevice-id that works for elitebook 8460p?

You're overthinking this. You have the HP part#. Search ebay for one. Purchase it and try it.
 
Status
Not open for further replies.
Back
Top