Jump to content

Patch for using NVMe under macOS Sierra is ready.


1,381 posts in this topic

Recommended Posts

could anyone please post original "IONVMeFamily.kext" from installed OS X 10.11.5 for me? I just updated to 10.11.6 beta 4 and i need to make some tests. Thank you...

keep us updated

Got news here:

 

the patch you will find in Post#16 is only for users, who already use OS X 10.11.6 beta 4 !!!!

 

The patch for people, who are still running on OS X 10.11.5 will have to patch their CLOVER config.plist with the following code snippets:

            <dict>
                <key>Comment</key>
                <string>NVMe SSD IONameMatch</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>InfoPlistPatch</key>
                <true/>
                <key>Find</key>
                <data>PHN0cmluZz5wY2kxNDRkLGE4MDQ8L3N0cmluZz4=</data>
                <key>Replace</key>
                <data>PHN0cmluZz5wY2kxNDRkLGE4MDI8L3N0cmluZz4=</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>IONVMeFamily Pike R. Alpha Patch#01</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>Find</key>
                <data>SYnGTYX2dGFBwecMSWP/viAAAAA=</data>
                <key>Replace</key>
                <data>SYnGTYX2dGFBwecJSWP/viAAAAA=</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>IONVMeFamily Pike R. Alpha Patch#02-03</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>Find</key>
                <data>toyIggAAAIP5DHVYQceGpAAAAAAQAABIi0gISYmOqAA=</data>
                <key>Replace</key>
                <data>toyIggAAAIP5CXVYQceGpAAAAAACAABIi0gISYmOqAA=</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>IONVMeFamily Pike R. Alpha Patch#04</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>Find</key>
                <data>SI2G/w8AAEjB6AwPtw+B4f8PAAA=</data>
                <key>Replace</key>
                <data>SI2G/w8AAEjB6AkPtw+B4f8PAAA=</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>IONVMeFamily Pike R. Alpha Patch#05 - 06</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>Find</key>
                <data>6EiJxkiB5v8PAABIAdZIgf7/DwAAdzxIjTUCsQ==</data>
                <key>Replace</key>
                <data>6EiJxkiB5v8BAABIAdZIgf7/AQAAdzxIjTUCsQ==</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>IONVMeFamily Pike R. Alpha Patch#07</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>Find</key>
                <data>SYHG/w8AAEnB7gxJi00ASInLSIE=</data>
                <key>Replace</key>
                <data>SYHG/w8AAEnB7glJi00ASInLSIE=</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>IONVMeFamily Pike R. Alpha Patch#08 - 09</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>Find</key>
                <data>Ag+FuAAAAEyNoQAQAABMieBIJQDw//9JiY8iAQAASYmHKgEAAEG+ABAAAEkp3kiNHXOvAA==</data>
                <key>Replace</key>
                <data>Ag+FuAAAAEyNoQACAABMieBIJQDw//9JiY8iAQAASYmHKgEAAEG+AAIAAEkp3kiNHXOvAA==</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>IONVMeFamily Pike R. Alpha Patch#10</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>Find</key>
                <data>AABJiYcqAQAAugAQAABIKdpMjRU=</data>
                <key>Replace</key>
                <data>AABJiYcqAQAAugACAABIKdpMjRU=</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>IONVMeFamily Pike R. Alpha Patch#11</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>Find</key>
                <data>i6fQAAAASSnUuAAQAABNi20ASQE=</data>
                <key>Replace</key>
                <data>i6fQAAAASSnUuAACAABNi20ASQE=</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>IONVMeFamily Pike R. Alpha Patch#12 - 13 - 14</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>Find</key>
                <data>gEAVBk2J17oAEAAARTHJSIne6AAAAABNifpMi33QSYuHYAEAAEyJbNj4SYHFABAAAEmBxADw//9I/8NBOd4PhTn///8xwEiDxBhbQVxBXUFeQV9dw5BVSInlQVdBVlNIg+wYSYn2SYn/SYsGSInBSIHh/w8AALsAEAAASCnLSYuPyAAAAEgB2UiJTeBJiYciAQAASI0N2qwAAPYBBHQqSIsNHmMAAPcB9////3QbSYnAScHoIInBv4BAFQYx9kUxyUiJ2ugAAAAASYuP0AAAADHASDnLc0RJiwZIAcNJiZ9wAQAASIHB/w8AAEjB6Qxmqf8PD5XAD7Y=</data>
                <key>Replace</key>
                <data>gEAVBk2J17oAAgAARTHJSIne6AAAAABNifpMi33QSYuHYAEAAEyJbNj4SYHFAAIAAEmBxADw//9I/8NBOd4PhTn///8xwEiDxBhbQVxBXUFeQV9dw5BVSInlQVdBVlNIg+wYSYn2SYn/SYsGSInBSIHh/w8AALsAEAAASCnLSYuPyAAAAEgB2UiJTeBJiYciAQAASI0N2qwAAPYBBHQqSIsNHmMAAPcB9////3QbSYnAScHoIInBv4BAFQYx9kUxyUiJ2ugAAAAASYuP0AAAADHASDnLc0RJiwZIAcNJiZ9wAQAASIHB/w8AAEjB6Qlmqf8PD5XAD7Y=</data>
            </dict>
            <dict>
                <key>Comment</key>
                <string>IONVMeFamily Pike R. Alpha Patch#15 - 16 - 17 - 18 - 19</string>
                <key>Disabled</key>
                <false/>
                <key>Name</key>
                <string>IONVMeFamily</string>
                <key>Find</key>
                <data>RQ+2wEGD+Ad3bUSKVRBED7efsAAAAEHB4xAPtoe2AAAAg+AIweAKRAnYg8gCiYcKAQAAibcOAQAASImXMgEAAIqHtgAAACQCD7bAweAdCciJhzoBAABBweAIQQ+2wUQJwInBgckAEAAARYTSD0TIiY8+AQAAMcBdw5BVSInlU7jCAgDg</data>
                <key>Replace</key>
                <data>RQ+2wEGD+Ad3bUQPtlUQRA+3n7AAAABBweMQD7aHtgAAAIPgCMHgCkQJ2IPIAomHCgEAAIm3DgEAAEiJlzIBAACKh7YAAAAkAg+2wMHgHQnIiYc6AQAAQcHgCEEPtsHB4AmQkJCQkJCQRAnARAnQiYc+AQAAMcBdw5BVSInlU7jCAgDg</data>
            </dict>

So once again: this patch here is for OS X 10.11.5

 

The patch posted in Post#16 is for OS X 10.11.6beta4

 

That was because i already update my EL CAPITAN to 10.11.6 beta and was using the IONVMeFamily.kext of OS X 10.11.6 beta 4 to make the patch for EL CAPITAN.

The patch for CLOVER you will see in this post here is the right one for OS X 10.11.5 now.

 

Sorry folks, but i thought nothing was changed in the IONVMeFamily.kext between 10.11.5 and 10.11.6 beta 4

  • Like 1

Now you should highlight well what patches for 11.5 and 11.6 with different colors ... yesterday I applied that of the post 16 ... I see a bit of confusion in the topic now .... My point of reflection

For those of you who might get confused:

 

Patch in Post#8 within this thread/topic is SIERRA only

 

Patch in Post#16 within this thread/topic is EL CAPITAN 10.11.6beta4 only

 

Patch in Post#33 within this thread/topic is EL CAPITAN 10.11.5 only

 

All patches to be applied on CLOVER config.plist KernelAndKextPatches section.

 

Hope, this is clear enough.

  • Like 1

Works fine. The drive is displayed as "external". This patch does not fix it, unfortunately:

 

<dict>

    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#External</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>NDg4NUMwNzQwNzgwOEIwMDAxMDAwMDEw</data>
    <key>Replace</key>
    <data>OTA5MDkwOTA5MDgwOEIwMDAxMDAwMDEw</data>
</dict>

For those of you who might get confused:

 

Patch in Post#8 within this thread/topic is SIERRA only

 

Patch in Post#16 within this thread/topic is EL CAPITAN 10.11.6beta4 only

 

Patch in Post#33 within this thread/topic is EL CAPITAN 10.11.5 only

 

All patches to be applied on CLOVER config.plist KernelAndKextPatches section.

 

Hope, this is clear enough.

Note that the patches for 10.11.6beta4 will work for 10.11.5 although the last two patches don't apply.

 

Works fine. The drive is displayed as "external". This patch does not fix it, unfortunately:

 

<dict>

    <key>Comment</key>
    <string>IONVMeFamily Pike R. Alpha Patch#External</string>
    <key>Disabled</key>
    <false/>
    <key>Name</key>
    <string>IONVMeFamily</string>
    <key>Find</key>
    <data>NDg4NUMwNzQwNzgwOEIwMDAxMDAwMDEw</data>
    <key>Replace</key>
    <data>OTA5MDkwOTA5MDgwOEIwMDAxMDAwMDEw</data>
</dict>

 

 

Same here.

 

Thnx for your work Marc. All ok so it seems.

 

t2m

post-1317959-0-28839200-1467484397_thumb.png

so the patch 11.6 beta it is the same ?

Not the same, but 10.11.6 patches are compatible with 10.11.5 (likely a superset). I haven't received a 10.11.6 patched kext from Pike, so no way to verify the patches for 10.11.6 -- final verification/testing/patch can/should probably wait until 10.11.6 is released.

 

Although I'm generally a fan of Clover KextsToPatch, in this case I do not think it is the appropriate solution. In the normal case of a failed KextsToPatch, the kext in question just doesn't load, doesn't work, or causes panic. In the case of a failed KextsToPatch in this case, the result could be a partially patched kext, which could cause data loss. I will be installing a patched kext on my system instead of using Clover patches. The problem is the danger is great if only a portion of the patches apply to an updated system kext. In that case, the kext may load... and appear to work, but corrupt the volume due to the patch being incomplete (because of changes in the update). In that case, it would be better to use the old patched kext until a new patched kext can be created. The way I'm doing it on my system, I rename the class and bundle identifier (with additional patches) such that the patched kext can be installed alongside (in /L/E or /S/L/E, or injected) the unpatched vanilla kext. Details will follow later after I have more time for testing adequately.

  • Like 1

Not the same, but 10.11.6 patches are compatible with 10.11.5 (likely a superset). I haven't received a 10.11.6 patched kext from Pike, so no way to verify the patches for 10.11.6 -- final verification/testing/patch can/should probably wait until 10.11.6 is released.

 

Although I'm generally a fan of Clover KextsToPatch, in this case I do not think it is the appropriate solution. In the normal case of a failed KextsToPatch, the kext in question just doesn't load, doesn't work, or causes panic. In the case of a failed KextsToPatch in this case, the result could be a partially patched kext, which could cause data loss. I will be installing a patched kext on my system instead of using Clover patches. The problem is the danger is great if only a portion of the patches apply to an updated system kext. In that case, the kext may load... and appear to work, but corrupt the volume due to the patch being incomplete (because of changes in the update). In that case, it would be better to use the old patched kext until a new patched kext can be created. The way I'm doing it on my system, I rename the class and bundle identifier (with additional patches) such that the patched kext can be installed alongside (in /L/E or /S/L/E, or injected) the unpatched vanilla kext. Details will follow later after I have more time for testing adequately.

we look forward to your news

Note that the patches for 10.11.6beta4 will work for 10.11.5 although the last two patches don't apply.

I saw many people who have the desktop confirm that the 10.11.6dp4 patch works on 10.11.5

 

But my laptop just could not boot via that patch and the new corresponding patch did the trick.

 

And thanks again to Mork and Pike for the amazing work!

I saw many people who have the desktop confirm that the 10.11.6dp4 patch works on 10.11.5

 

But my laptop just could not boot via that patch and the new corresponding patch did the trick.

 

And thanks again to Mork and Pike for the amazing work!

The results of the 10.11.6 patch and the 10.11.5 patch when applied to the 10.11.5 kext are the same.

SM951

This computer doesn't contain any NVMExpress devices. If you installed NVMExpress devices, make sure they are connected properly and powered on.

Any Idia to enable  fix this Error or unsupported hardware?

post-413859-0-52079500-1467561461_thumb.png

Although I'm generally a fan of Clover KextsToPatch, in this case I do not think it is the appropriate solution. In the normal case of a failed KextsToPatch, the kext in question just doesn't load, doesn't work, or causes panic. In the case of a failed KextsToPatch in this case, the result could be a partially patched kext, which could cause data loss. I will be installing a patched kext on my system instead of using Clover patches. The problem is the danger is great if only a portion of the patches apply to an updated system kext. In that case, the kext may load... and appear to work, but corrupt the volume due to the patch being incomplete (because of changes in the update). In that case, it would be better to use the old patched kext until a new patched kext can be created. The way I'm doing it on my system, I rename the class and bundle identifier (with additional patches) such that the patched kext can be installed alongside (in /L/E or /S/L/E, or injected) the unpatched vanilla kext. Details will follow later after I have more time for testing adequately.

Attached is the script (and supporting files) to create a patched kext that can be used without modifying or deleting existing vanilla IONVMeFamily.kext.

 

Contents:

binpatch: pre-built utility to patch binary files using a simple command line.

binpatch.c: source for binpatch binary

NVMe_patches_10_11_5.plist: KextsToPatch content as provided by Mork vom Ork, post #33 this thread.

NVMe_patches_10_11_6_beta4.plist: KextsToPatch content as provided by Mork vom Ork, post #16 this thread.

NVMe_patches_10_12_dp1.plist: KextsToPatch content as provided by Mork vom Ork, post #8 this thread.

patch_nvme.sh: main patching script

 

Usage:

- extract patch_nvme.zip archive

- cd to the extracted location

- execute patch_nvme.sh with argument that corresponds to the plist you wish to patch with

- the script creates the patched kext in the current directory

- you must run the script with the parameter that corresponds to the version of OS X you are running

- /System/Library/Extensions/IONVMeFamily.kext must be vanilla

 

For example, if you are running 10.11.5, to create a patched 10.11.5 kext:

# assuming downloaded and extracted to ~/Downloads/patch_nvme
cd ~/Downloads/patch_nvme
./patch_nvme.sh 10_11_5
The result is HackrNVMeFamily-10_11_5.kext. You can install it to /S/L/E, /L/E, or use Clover kext injection with it. It will not interfere with IONVMeFamily.kext and system updates will not change it.

 

Similarly, you would use './patch_nvme.sh 10_12_dp1' or './patch_nvme.sh 10_11_6_beta4' to patch based on the other plist files. Of course, you need to be running the version of OS X that corresponds to the plist you're patching with as the script relies on getting vanilla IONVMeFamily.kext from /S/L/E.

 

You should also make sure you have no patches for IONVMeFamily.kext in your config.plist before trying to use the patched kext.

 

patch_nvme.zip

 

Note: The patch assumes Samsung 950 Pro NVMe. You will see the device-id coded in the script... Change it to match the device-id of your NVMe controller.

 

Note 2: The original attachment found here is the first version. Since then, I've moved the script and supporting files to github. The new version at github uses IOPCIClassMatch to match against the well-known NVMe PCI class code, so it is not necessary to supply the vendor/device-id for IONameMatch.

 

github repo: https://github.com/RehabMan/patch-nvme

  • Like 7

Attached is the script (and supporting files) to create a patched kext that can be used without modifying or deleting existing vanilla IONVMeFamily.kext.

 

Contents:

binpatch: pre-built utility to patch binary files using a simple command line.

binpatch.c: source for binpatch binary

NVMe_patches_10_11_5.plist: KextsToPatch content as provided by Mork vom Ork, post #33 this thread.

NVMe_patches_10_11_6_beta4.plist: KextsToPatch content as provided by Mork vom Ork, post #16 this thread.

NVMe_patches_10_12_dp1.plist: KextsToPatch content as provided by Mork vom Ork, post #8 this thread.

patch_nvme.sh: main patching script

 

Usage:

- extract patch_nvme.zip archive

- cd to the extracted location

- execute patch_nvme.sh with argument that corresponds to the plist you wish to patch with

- the script creates the patched kext in the current directory

- you must run the script with the parameter that corresponds to the version of OS X you are running

- /System/Library/Extensions/IONVMeFamily.kext must be vanilla

 

For example, if you are running 10.11.5, to create a patched 10.11.5 kext:

 

# assuming downloaded and extracted to ~/Downloads/patch_nvme
cd ~/Downloads/patch_nvme
./patch_nvme.sh 10_11_5
The result is HackrNVMeFamily-10_11_5.kext. You can install it to /S/L/E, /L/E, or use Clover kext injection with it. It will not interfere with IONVMeFamily.kext and system updates will not change it.

 

Similarly, you would use './patch_nvme.sh 10_12_dp1' or './patch_nvme.sh 10_11_6_beta4' to patch based on the other plist files. Of course, you need to be running the version of OS X that corresponds to the plist you're patching with as the script relies on getting vanilla IONVMeFamily.kext from /S/L/E.

 

You should also make sure you have no patches for IONVMeFamily.kext in your config.plist before trying to use the patched kext.

 

patch_nvme.zip

 

Note: The patch assumes Samsung 950 Pro NVMe. You will see the device-id coded in the script... Change it to match the device-id of your NVMe controller.

omg...fantastic job ...thank you mr reahb

hi rehab 

Please what is this error 

 

 

Last login: Sun Jul  3 22:58:26 on ttys000

Airdimagnifico:~ magnifico$ cd /Users/magnifico/Desktop/patch_nvme 

Airdimagnifico:patch_nvme magnifico$ /Users/magnifico/Desktop/patch_nvme/patch_nvme.sh 10_11_5

Creating patched HackrNVMeFamily-10_11_5.kext

Comment: IONVMeFamily Pike R. Alpha Patch#01

find: '4989c64d85f6746141c1e70c4963ffbe20000000'

repl: '4989c64d85f6746141c1e7094963ffbe20000000'

patching offset: 21780

Comment: IONVMeFamily Pike R. Alpha Patch#02-03

find: 'b68c888200000083f90c755841c786a400000000100000488b480849898ea800'

repl: 'b68c888200000083f909755841c786a400000000020000488b480849898ea800'

patching offset: 37268

Comment: IONVMeFamily Pike R. Alpha Patch#04

find: '488d86ff0f000048c1e80c0fb70f81e1ff0f0000'

repl: '488d86ff0f000048c1e8090fb70f81e1ff0f0000'

patching offset: 55024

Comment: IONVMeFamily Pike R. Alpha Patch#05 - 06

find: 'e84889c64881e6ff0f00004801d64881feff0f0000773c488d3502b1'

repl: 'e84889c64881e6ff0100004801d64881feff010000773c488d3502b1'

patching offset: 55688

Comment: IONVMeFamily Pike R. Alpha Patch#07

find: '4981c6ff0f000049c1ee0c498b4d004889cb4881'

repl: '4981c6ff0f000049c1ee09498b4d004889cb4881'

patching offset: 56028

Comment: IONVMeFamily Pike R. Alpha Patch#08 - 09

find: '020f85b80000004c8da1001000004c89e0482500f0ffff49898f220100004989872a01000041be001000004929de488d1d73af00'

repl: '020f85b80000004c8da1000200004c89e0482500f0ffff49898f220100004989872a01000041be000200004929de488d1d73af00'

patching offset: 56064

Comment: IONVMeFamily Pike R. Alpha Patch#10

find: '00004989872a010000ba001000004829da4c8d15'

repl: '00004989872a010000ba000200004829da4c8d15'

patching offset: 56356

Comment: IONVMeFamily Pike R. Alpha Patch#11

find: '8ba7d00000004929d4b8001000004d8b6d004901'

repl: '8ba7d00000004929d4b8000200004d8b6d004901'

patching offset: 56452

Comment: IONVMeFamily Pike R. Alpha Patch#12 - 13 - 14

find: '804015064d89d7ba001000004531c94889dee8000000004d89fa4c8b7dd0498b87600100004c896cd8f84981c5001000004981c400f0ffff48ffc34139de0f8539ffffff31c04883c4185b415c415d415e415f5dc390554889e541574156534883ec184989f64989ff498b064889c14881e1ff0f0000bb001000004829cb498b8fc80000004801d948894de049898722010000488d0ddaac0000f60104742a488b0d1e630000f701f7ffffff741b4989c049c1e82089c1bf8040150631f64531c94889dae800000000498b8fd000000031c04839cb7344498b064801c349899f700100004881c1ff0f000048c1e90c66a9ff0f0f95c00fb6'

repl: '804015064d89d7ba000200004531c94889dee8000000004d89fa4c8b7dd0498b87600100004c896cd8f84981c5000200004981c400f0ffff48ffc34139de0f8539ffffff31c04883c4185b415c415d415e415f5dc390554889e541574156534883ec184989f64989ff498b064889c14881e1ff0f0000bb001000004829cb498b8fc80000004801d948894de049898722010000488d0ddaac0000f60104742a488b0d1e630000f701f7ffffff741b4989c049c1e82089c1bf8040150631f64531c94889dae800000000498b8fd000000031c04839cb7344498b064801c349899f700100004881c1ff0f000048c1e90966a9ff0f0f95c00fb6'

patching offset: 56628

Comment: IONVMeFamily Pike R. Alpha Patch#15 - 16 - 17 - 18 - 19

find: '450fb6c04183f807776d448a5510440fb79fb000000041c1e3100fb687b600000083e008c1e00a4409d883c80289870a01000089b70e010000488997320100008a87b600000024020fb6c0c1e01d09c889873a01000041c1e008410fb6c14409c089c181c9001000004584d20f44c8898f3e01000031c05dc390554889e553b8c20200e0'

repl: '450fb6c04183f807776d440fb65510440fb79fb000000041c1e3100fb687b600000083e008c1e00a4409d883c80289870a01000089b70e010000488997320100008a87b600000024020fb6c0c1e01d09c889873a01000041c1e008410fb6c1c1e009909090909090904409c04409d089873e01000031c05dc390554889e553b8c20200e0'

patching offset: 58156

md5 HackrNVMeFamily-10_11_5.kext/Contents/MacOS/HackrNVMeFamily: 0321befd9cda33edfe50c789d3f310a4

Rename class from AppleNVMeController to HackrNVMeController

find: '004170706c654e564d65436f6e74726f6c6c657200'

repl: '004861636b724e564d65436f6e74726f6c6c657200'

patching offset: 69785

md5 HackrNVMeFamily-10_11_5.kext/Contents/MacOS/HackrNVMeFamily: 040b01cd4bfb18b8df793b96998810b7

Delete: Entry, ":IOKitPersonalities:AppleS1XController", Does Not Exist

Delete: Entry, ":IOKitPersonalities:AppleS3ELabController", Does Not Exist

Delete: Entry, ":IOKitPersonalities:AppleS3XController", Does Not Exist

Airdimagnifico:patch_nvme magnifico$

hi rehab 

Please what is this error 

 

 

Last login: Sun Jul  3 22:58:26 on ttys000

Airdimagnifico:~ magnifico$ cd /Users/magnifico/Desktop/patch_nvme 

Airdimagnifico:patch_nvme magnifico$ /Users/magnifico/Desktop/patch_nvme/patch_nvme.sh 10_11_5

Creating patched HackrNVMeFamily-10_11_5.kext

Comment: IONVMeFamily Pike R. Alpha Patch#01

find: '4989c64d85f6746141c1e70c4963ffbe20000000'

repl: '4989c64d85f6746141c1e7094963ffbe20000000'

patching offset: 21780

Comment: IONVMeFamily Pike R. Alpha Patch#02-03

find: 'b68c888200000083f90c755841c786a400000000100000488b480849898ea800'

repl: 'b68c888200000083f909755841c786a400000000020000488b480849898ea800'

patching offset: 37268

Comment: IONVMeFamily Pike R. Alpha Patch#04

find: '488d86ff0f000048c1e80c0fb70f81e1ff0f0000'

repl: '488d86ff0f000048c1e8090fb70f81e1ff0f0000'

patching offset: 55024

Comment: IONVMeFamily Pike R. Alpha Patch#05 - 06

find: 'e84889c64881e6ff0f00004801d64881feff0f0000773c488d3502b1'

repl: 'e84889c64881e6ff0100004801d64881feff010000773c488d3502b1'

patching offset: 55688

Comment: IONVMeFamily Pike R. Alpha Patch#07

find: '4981c6ff0f000049c1ee0c498b4d004889cb4881'

repl: '4981c6ff0f000049c1ee09498b4d004889cb4881'

patching offset: 56028

Comment: IONVMeFamily Pike R. Alpha Patch#08 - 09

find: '020f85b80000004c8da1001000004c89e0482500f0ffff49898f220100004989872a01000041be001000004929de488d1d73af00'

repl: '020f85b80000004c8da1000200004c89e0482500f0ffff49898f220100004989872a01000041be000200004929de488d1d73af00'

patching offset: 56064

Comment: IONVMeFamily Pike R. Alpha Patch#10

find: '00004989872a010000ba001000004829da4c8d15'

repl: '00004989872a010000ba000200004829da4c8d15'

patching offset: 56356

Comment: IONVMeFamily Pike R. Alpha Patch#11

find: '8ba7d00000004929d4b8001000004d8b6d004901'

repl: '8ba7d00000004929d4b8000200004d8b6d004901'

patching offset: 56452

Comment: IONVMeFamily Pike R. Alpha Patch#12 - 13 - 14

find: '804015064d89d7ba001000004531c94889dee8000000004d89fa4c8b7dd0498b87600100004c896cd8f84981c5001000004981c400f0ffff48ffc34139de0f8539ffffff31c04883c4185b415c415d415e415f5dc390554889e541574156534883ec184989f64989ff498b064889c14881e1ff0f0000bb001000004829cb498b8fc80000004801d948894de049898722010000488d0ddaac0000f60104742a488b0d1e630000f701f7ffffff741b4989c049c1e82089c1bf8040150631f64531c94889dae800000000498b8fd000000031c04839cb7344498b064801c349899f700100004881c1ff0f000048c1e90c66a9ff0f0f95c00fb6'

repl: '804015064d89d7ba000200004531c94889dee8000000004d89fa4c8b7dd0498b87600100004c896cd8f84981c5000200004981c400f0ffff48ffc34139de0f8539ffffff31c04883c4185b415c415d415e415f5dc390554889e541574156534883ec184989f64989ff498b064889c14881e1ff0f0000bb001000004829cb498b8fc80000004801d948894de049898722010000488d0ddaac0000f60104742a488b0d1e630000f701f7ffffff741b4989c049c1e82089c1bf8040150631f64531c94889dae800000000498b8fd000000031c04839cb7344498b064801c349899f700100004881c1ff0f000048c1e90966a9ff0f0f95c00fb6'

patching offset: 56628

Comment: IONVMeFamily Pike R. Alpha Patch#15 - 16 - 17 - 18 - 19

find: '450fb6c04183f807776d448a5510440fb79fb000000041c1e3100fb687b600000083e008c1e00a4409d883c80289870a01000089b70e010000488997320100008a87b600000024020fb6c0c1e01d09c889873a01000041c1e008410fb6c14409c089c181c9001000004584d20f44c8898f3e01000031c05dc390554889e553b8c20200e0'

repl: '450fb6c04183f807776d440fb65510440fb79fb000000041c1e3100fb687b600000083e008c1e00a4409d883c80289870a01000089b70e010000488997320100008a87b600000024020fb6c0c1e01d09c889873a01000041c1e008410fb6c1c1e009909090909090904409c04409d089873e01000031c05dc390554889e553b8c20200e0'

patching offset: 58156

md5 HackrNVMeFamily-10_11_5.kext/Contents/MacOS/HackrNVMeFamily: 0321befd9cda33edfe50c789d3f310a4

Rename class from AppleNVMeController to HackrNVMeController

find: '004170706c654e564d65436f6e74726f6c6c657200'

repl: '004861636b724e564d65436f6e74726f6c6c657200'

patching offset: 69785

md5 HackrNVMeFamily-10_11_5.kext/Contents/MacOS/HackrNVMeFamily: 040b01cd4bfb18b8df793b96998810b7

Delete: Entry, ":IOKitPersonalities:AppleS1XController", Does Not Exist

Delete: Entry, ":IOKitPersonalities:AppleS3ELabController", Does Not Exist

Delete: Entry, ":IOKitPersonalities:AppleS3XController", Does Not Exist

Airdimagnifico:patch_nvme magnifico$

 

Those errors are expected when patching for 10.11.5. Ignore.

 

The md5 sums you have are correct...

  • Like 1
×
×
  • Create New...