Jump to content
  • Announcements

    • Allan

      Forum Rules   04/13/2018

      Hello folks! As some things are being fixed, we'll keep you updated. Per hour the Forum Rules don't have a dedicated "Tab", so here is the place that we have our Rules back. New Users Lounge > [READ] - InsanelyMac Forum Rules - The InsanelyMac Staff Team. 
Zenith432

Patched AppleUSBXHCI from OS 10.8.2

146 posts in this topic

Recommended Posts

Changed again in 10.9.4 (13E16)

<dict>
    <key>Comment</key>
    <string>Disable Intel & Fresco USB3.0 controllers</string>
    <key>Find</key>
    <data>
    dTpIiw==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    6zpIiw==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Disable XHCI 1.0</string>
    <key>Find</key>
    <data>
    Zj0AAQ==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    Zj0AAA==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Patch MSI or pin interrupts</string>
    <key>Find</key>
    <data>
    gUkIAABAAA==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    gUkIAAAAAA==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Patch MSI or pin interrupts 2</string>
    <key>Find</key>
    <data>
    AABAADE=
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    AAAAADE=
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Disable sleep code</string>
    <key>Find</key>
    <data>
    xoDIAAAAAQ==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    xoDIAAAAAA==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Enable PCI power management</string>
    <key>Find</key>
    <data>
    dU1Ii7voAQAA
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    601Ii7voAQAA
    </data>
</dict>

Share this post


Link to post
Share on other sites
Advertisement

Updated for 10.9.3

 

Guys, try to use my new binary patch for "Disable Intel & Fresco Logic USB3.0 controllers check."

 

Does this work on VIA VL800 chip.

And how to patch on Clover this kext on Yosemite?

Thanks in advanced.

Share this post


Link to post
Share on other sites

Is there a Clover patch for Yosemite DP4/Beta?

Share this post


Link to post
Share on other sites

 

Changed again in 10.9.4 (13E16)

<dict>
    <key>Comment</key>
    <string>Disable Intel & Fresco USB3.0 controllers</string>
    <key>Find</key>
    <data>
    dTpIiw==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    6zpIiw==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Disable XHCI 1.0</string>
    <key>Find</key>
    <data>
    Zj0AAQ==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    Zj0AAA==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Patch MSI or pin interrupts</string>
    <key>Find</key>
    <data>
    gUkIAABAAA==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    gUkIAAAAAA==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Patch MSI or pin interrupts 2</string>
    <key>Find</key>
    <data>
    AABAADE=
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    AAAAADE=
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Disable sleep code</string>
    <key>Find</key>
    <data>
    xoDIAAAAAQ==
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    xoDIAAAAAA==
    </data>
</dict>
<dict>
    <key>Comment</key>
    <string>Enable PCI power management</string>
    <key>Find</key>
    <data>
    dU1Ii7voAQAA
    </data>
    <key>Name</key>
    <string>AppleUSBXHCI</string>
    <key>Replace</key>
    <data>
    601Ii7voAQAA
    </data>
</dict>

 

 

@maniac10 Please kext  to patch on Yosemite?

Share this post


Link to post
Share on other sites

You need to convert the hex data posted by shiecldk to base64 (here's an online converter). If you use PlistEditPro you don't even have to do that, just input the "data" posted by shiecldk and it will handle the conversion itself.
post-158318-0-48585000-1416606740_thumb.png

<key>KernelAndKextPatches</key>
<dict>
    <key>KextsToPatch</key>
	<array>
		<dict>
			<key>Comment</key>
			<string>Disable XHCI 1.0 check</string>
			<key>Find</key>
			<data>
			QbzHAgDgPQABAAA=
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			QbzHAgDgPQAAAAA=
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Enable PCI power management</string>
			<key>Find</key>
			<data>
			dU1Ii7voAQAA
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			601Ii7voAQAA
			</data>
		</dict>
                <dict>
                        <key>Comment</key>
                        <string>Patch MSI or pin interrupts 1</string>
                        <key>Find</key>
                        <data>
                        gUkIAABAAA==
                        </data>
                        <key>Name</key>
                        <string>AppleUSBXHCI</string>
                        <key>Replace</key>
                        <data>
                        gUkIAAAAAA==
                        </data>
                </dict>
		<dict>
			<key>Comment</key>
			<string>Patch MSI or pin interrupts 2</string>
			<key>Find</key>
			<data>
			QcdHCAAAQAA=
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			QcdHCAAAAAA=
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Disable Intel & Fresco USB3.0</string>
			<key>Find</key>
		        <data>
			9oDUAAAAgHU0
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			9oDUAAAAgOs0
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Disable sleep code</string>
			<key>Find</key>
			<data>
			xoDIAAAAAQ==
			</data>
			<key>Name</key>
		        <string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			xoDIAAAAAA==
			</data>
		</dict>
	</array>
</dict>

Share this post


Link to post
Share on other sites

 

You need to convert the hex data posted by shiecldk to base64 (here's an online converter). If you use PlistEditPro you don't even have to do that, just input the "data" posted by shiecldk and it will handle the conversion itself.

attachicon.gifplisteditpro.png

<key>KernelAndKextPatches</key>
<dict>
    <key>KextsToPatch</key>
	<array>
		<dict>
			<key>Comment</key>
			<string>Disable XHCI 1.0 check</string>
			<key>Find</key>
			<data>
			QbzHAgDgPQABAAA=
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			QbzHAgDgPQAAAAA=
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Enable PCI power management</string>
			<key>Find</key>
			<data>
			dU1Ii7voAQAA
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			601Ii7voAQAA
			</data>
		</dict>
                <dict>
                        <key>Comment</key>
                        <string>Patch MSI or pin interrupts 1</string>
                        <key>Find</key>
                        <data>
                        gUkIAABAAA==
                        </data>
                        <key>Name</key>
                        <string>AppleUSBXHCI</string>
                        <key>Replace</key>
                        <data>
                        gUkIAAAAAA==
                        </data>
                </dict>
		<dict>
			<key>Comment</key>
			<string>Patch MSI or pin interrupts 2</string>
			<key>Find</key>
			<data>
			QcdHCAAAQAA=
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			QcdHCAAAAAA=
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Disable Intel & Fresco USB3.0</string>
			<key>Find</key>
		        <data>
			9oDUAAAAgHU0
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			9oDUAAAAgOs0
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Disable sleep code</string>
			<key>Find</key>
			<data>
			xoDIAAAAAQ==
			</data>
			<key>Name</key>
		        <string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			xoDIAAAAAA==
			</data>
		</dict>
	</array>
</dict>

Thank you very much!!!!

Share this post


Link to post
Share on other sites

I've just updated my file;)

 

 

Hello, can you plz guide me

 

I am gonna patch AppleUSBXHCI for osx 10.10 ,the file i took from S\L\E\IOUSBFamily.kext\Contents\PlugIns\AppleUSBXHCI.kext\Contents\MacOS\AppleUSBXHCI, Am i right??

 

i m unable to find this 000000000000ffc4 jne 0x10000

F6 80 D4 00 00 00 80 75 34

in particular file.

 

 

attaching screenshot plz help.

 

 

i am using chamilion wizard,trying to replace binary using hex editor.

 

 

NOTE:-patching for TUSB73x0,VenID=104c,DevId=8241

post-1114305-0-82905300-1423479513_thumb.png

Share this post


Link to post
Share on other sites

Hello, can you plz guide me

 

I am gonna patch AppleUSBXHCI for osx 10.10 ,the file i took from S\L\E\IOUSBFamily.kext\Contents\PlugIns\AppleUSBXHCI.kext\Contents\MacOS\AppleUSBXHCI, Am i right??

 

i m unable to find this 000000000000ffc4 jne 0x10000

F6 80 D4 00 00 00 80 75 34

in particular file.

 

 

attaching screenshot plz help.

 

 

i am using chamilion wizard,trying to replace binary using hex editor.

 

 

NOTE:-patching for TUSB73x0,VenID=104c,DevId=8241

Simply find "F6 80 D4 00 00 00 80 75 34" and replace it with "F6 80 D4 00 00 00 80 EB 34", and so on.

"000000000000ffc4 jne 0x10000" is the assembly code derived from otool, where you don't need it if you are just attempting to patch yours.

Share this post


Link to post
Share on other sites

Simply find "F6 80 D4 00 00 00 80 75 34" and replace it with "F6 80 D4 00 00 00 80 EB 34", and so on.

"000000000000ffc4 jne 0x10000" is the assembly code derived from otool, where you don't need it if you are just attempting to patch yours.

 

 

hello thnx for help after posting,

 

I have patched AppleUSBXHCI fresh vanila with that all patches which was mentioned here,rebuilded cache repaired permission all done,but the port is still not working.

 

Please check my binary attachment

AppleUSBXHCI.zip

Share this post


Link to post
Share on other sites

Hi,

 

I've applied all the patches for OS X 10.10.2, yet I can't use my Intel 7-Series USB3 port...

Any help? :)

Share this post


Link to post
Share on other sites

 

You need to convert the hex data posted by shiecldk to base64 (here's an online converter). If you use PlistEditPro you don't even have to do that, just input the "data" posted by shiecldk and it will handle the conversion itself.

attachicon.gifplisteditpro.png

<key>KernelAndKextPatches</key>
<dict>
    <key>KextsToPatch</key>
	<array>
		<dict>
			<key>Comment</key>
			<string>Disable XHCI 1.0 check</string>
			<key>Find</key>
			<data>
			QbzHAgDgPQABAAA=
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			QbzHAgDgPQAAAAA=
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Enable PCI power management</string>
			<key>Find</key>
			<data>
			dU1Ii7voAQAA
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			601Ii7voAQAA
			</data>
		</dict>
                <dict>
                        <key>Comment</key>
                        <string>Patch MSI or pin interrupts 1</string>
                        <key>Find</key>
                        <data>
                        gUkIAABAAA==
                        </data>
                        <key>Name</key>
                        <string>AppleUSBXHCI</string>
                        <key>Replace</key>
                        <data>
                        gUkIAAAAAA==
                        </data>
                </dict>
		<dict>
			<key>Comment</key>
			<string>Patch MSI or pin interrupts 2</string>
			<key>Find</key>
			<data>
			QcdHCAAAQAA=
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			QcdHCAAAAAA=
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Disable Intel & Fresco USB3.0</string>
			<key>Find</key>
		        <data>
			9oDUAAAAgHU0
			</data>
			<key>Name</key>
			<string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			9oDUAAAAgOs0
			</data>
		</dict>
		<dict>
			<key>Comment</key>
			<string>Disable sleep code</string>
			<key>Find</key>
			<data>
			xoDIAAAAAQ==
			</data>
			<key>Name</key>
		        <string>AppleUSBXHCI</string>
			<key>Replace</key>
			<data>
			xoDIAAAAAA==
			</data>
		</dict>
	</array>
</dict>

 

Hey Maniac10, this patch still works in 10.9.5?

Share this post


Link to post
Share on other sites

I jumped to Yosemite right away so I can't confirm if that same patch works, but here are the supposedly updated binary patches for both Mavericks and Yosemite. At first glance it looks like a couple of patches have changed though.

Share this post


Link to post
Share on other sites

 

Description of patches and what they're good for
  • (5520) Eliminates a check that xhci chip is either Intel Panther Point or Fresco Logic. If you have either of these, use original unpatched AppleUSBXHCI. This patch has the exact same effect as adding AllowAnyXHCI=true in Info.plist. If you feel more comfortable with Info.plist, go ahead.
  • (5624) Eliminates a check that xhci version >= 1.0. If your xhci version is already >= 1.0, you don't need this. For uPD720200, it's reported as 0.96 which is why I added it.
  • (6d65, 7ceb, 7fd1) Set of three patches to make the driver use a single interrupter to resolve problems with use of MSI or pin interrupts.
  • (10014) This patch disables the sleep code that leaves the controller in non-working state after wake. Instead, IOUSBFamily will turn the controller off and restart after wake. Any connected drives will disconnect during sleep, but will be reattached after wake and return to function. Use this patch only if wake after sleep leaves your ports in unusable state.
  • (10056) I added this to enable PCI power management in cases where the xhci controller is not listed in DSDT. For boards in which xhci is in DSDT, this isn't needed.

 

First of All, Thanks for the Patches, work OK with

04:00.0 USB controller [0c03]: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller [1912:0014] (rev 03) (subsys 1912:0014)

OS X Mavericks 10,9,5
1) I used AllowAnyXHCI=true and xhci version >= 1.0 so I do not need first two patches
2) Patches 3,4,5 do their job, with some modifications for newer kext
3) I want to ask, if i can make it better? and avoid problems with ejected devices after sleep?
Maybe it is possible to control PCI slot power management with DSDT? need Your advice, Thanks again

and more, there is a possibility to change some settings in NEC's firmware

[usePPON]

1
; When set to '0', the uPD720201 and uPD720202 force the Port Power Control (PPC)
; bit to '0b' in the HCCPARAMS register. When VBUS is not controlled by the PPON
; pin, this bit should be set to '0b'. Default value is '1'
 
[DisablePortCount]
0
;uPD720201
;0 : All ports are enabled.
;1 : Port 4 and Port 8 are disabled
;2 : Port 3,4,7 and 8 are disabled.
;3 : Port 2,3,4,6,7 and 8 are disabled.
;uPD720202
;0 : All ports are enabled.
;1 : Port 2 and 4 are disabled,
 
[PSEL]
1
;When set to '1', the default value of the Active State Power Management Control
;fields in the PCI Express Link Control Register is 00b. 
;When this bit is '0', the default value is 11b.
 
[AUXDET]
1
;Auxiliary Power Detect. When the system supports remote wakeup from D3cold, 
;this bit should be set to '1'.
 
[EnableClockRequest]
1
; Set to '0', if you want to disable the CLKREQ#(ClockRequest). 
; There exist PCs which has problem in its CLKREQ# function for ExpressCard slot.
; It is recommended to disable CLKREQ# function, if the product is ExpressCard.
; Default value is "1". 
 
is it useful for described problem?

Share this post


Link to post
Share on other sites

PS

 


  • (6d65, 7ceb, 7fd1) Set of three patches to make the driver use a single interrupter to resolve problems with use of MSI or pin interrupts.
  • (10014) This patch disables the sleep code that leaves the controller in non-working state after wake. Instead, IOUSBFamily will turn the controller off and restart after wake. Any connected drives will disconnect during sleep, but will be reattached after wake and return to function. Use this patch only if wake after sleep leaves your ports in unusable state.

these two are necessary

  • (10056) I added this to enable PCI power management in cases where the xhci controller is not listed in DSDT. For boards in which xhci is in DSDT, this isn't needed.

and this produces no visible effect in my case

Share this post


Link to post
Share on other sites

Does this work with El Capitan? Does anyone have any experience with that?

 

There is no AppleUSBXHCI.kext in El Capitan
it is called AppleUSBXHCIPCI and it is different from this

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.



×