Jump to content
Mork vom Ork

Patch for using NVMe under macOS Sierra is ready.

1,362 posts in this topic

Recommended Posts

hi,

I have a working 10.12.3 with Samsung 960 evo nvme class-spoofed.

Now for update to 10.12.4 do I have to replace HackrNVMeFamily 10.12.3.kext with the new one before the update or after?

I wonder if after the update I can not boot with the 10.12.3 kext.

Update procedures are covered in my class-code spoof guide, linked from the patch-nvme README.

Here goes one question: do i still need to generate new spoof class kext after every system update? If so, can you add script for 10.11.6 2017-001 security update?

It is best practice.

Already added.

Share this post


Link to post
Share on other sites
Advertisement

Updated to 10.12.4. Created a spoofed 10.12.4.kext, placed it in S/L/E and no dice.

It sounds like you may have forgotten to delete the old HackrNVMeFamily*.kext. At least you didn't mention it.

Your image of creating "spoofed" kext as you claim clearly shows you didn't use --spoof.

It is confirmed when I look at the Info.plist for each kext.

HackrNVMeFamily-10_12_3.kext was generated with --spoof.

HackrNVmeFamily-10_12_4.kext was not.

 

You need to pay attention to what you're doing...

Share this post


Link to post
Share on other sites

Your image of creating "spoofed" kext as you claim clearly shows you didn't use --spoof.

It is confirmed when I look at the Info.plist for each kext.

 

Yup. That was it. Brain fart.

 

Fixed. All is working.

Share this post


Link to post
Share on other sites

The work into all this is amazing. Followed all instructions, spoofed hacker kext, Patched SSDT and installed, removed all original installer kexts to patch in config list. All is running smooth. Much appreciated :)

Share this post


Link to post
Share on other sites

It is not clear when or if you need to update the HackrNVmeFamily stored in EFI/CLOVER/kexts/Other/ when updating for new OS version.

It is best practice to keep it current.

Share this post


Link to post
Share on other sites

I can confirm that syscl's patch for LiteOn also works for the Intel 600p here, used 0x10 to 0x01. I didn't have time to look into its block size, but with some faith I believe it supports 4k block size, can anyone confirm it ?

Share this post


Link to post
Share on other sites

I would like to see an unpatched location parameter added to the patch command like this:

 

./patch_nvme.sh -u /Volumes/ElCapitan10.11.6/System/Library/Extensions/IONVMeFamily.kext "10_11_6_sec2017-001"
 

So that the user can create a patched kext from a different version of the OS or with the original from a different location. The following should be sufficient:

 

# assume patching system volume kext
unpatched=/System/Library/Extensions/IONVMeFamily.kext
while [[ $# -gt 0 ]]; do
	if [[ $1 == --spoof ]]; then
		spoof_class_code=1
		shift
	elif [[ $1 == -u ]]; then
		unpatched="$2"
		shift 2
	else
		break
	fi
done

Share this post


Link to post
Share on other sites

I would like to see an unpatched location parameter added to the patch command like this:

 

./patch_nvme.sh -u /Volumes/ElCapitan10.11.6/System/Library/Extensions/IONVMeFamily.kext "10_11_6_sec2017-001"
 

So that the user can create a patched kext from a different version of the OS or with the original from a different location. The following should be sufficient:

 

# assume patching system volume kext
unpatched=/System/Library/Extensions/IONVMeFamily.kext
while [[ $# -gt 0 ]]; do
	if [[ $1 == --spoof ]]; then
		spoof_class_code=1
		shift
	elif [[ $1 == -u ]]; then
		unpatched="$2"
		shift 2
	else
		break
	fi
done

 

OK... reasonable request.. DONE. Thanks!

Share this post


Link to post
Share on other sites

Can someone helpme with Samsung EVO 960?

It is 4k?

 

Do I need only the kext, or I should make the patch?

 

I am trying to understand, i'm newbie.

 

My system: 10.12.4 working perfect in an common SSD and Win 10 in M.2

Mother asus Hero VIII

Share this post


Link to post
Share on other sites

Can someone helpme with Samsung EVO 960?

It is 4k?

 

As far as i know - no, it is not.

 

There is two ways - a)install patched kext+remove original apple kext or b)create custom SSD patch+'spoof class-code' kext (recommended). Read the docs at github and followed links in them.

Share this post


Link to post
Share on other sites

Can someone helpme with Samsung EVO 960?

It is 4k?

 

Do I need only the kext, or I should make the patch?

 

I am trying to understand, i'm newbie.

 

My system: 10.12.4 working perfect in an common SSD and Win 10 in M.2

Mother asus Hero VIII

Read: http://www.insanelymac.com/forum/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/?view=findpost&p=2328338

Read: http://www.insanelymac.com/forum/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/page-37?do=findComment&comment=2343228

Read: http://www.insanelymac.com/forum/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/page-29#entry2322636 

 

And/or all else fails, more in-depth info can be found here: Google Search

Share this post


Link to post
Share on other sites

Ok, I got my BIOS DEVICE NAME. SB.PCI0.RP09.PXSX

And I downloaded the Maciasl by Rehabman.

 

Where I have to place the code with my BIOS Device Name?

 

When I opened Maciasl, appear a DSDT with all the differents folders. So, where, in which part, I have to add the next code?

 

// Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading

DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)
{
    External(_SB.PCI0.RP09.PXSX, DeviceObj)
    Method(_SB.PCI0.RP09.PXSX._DSM, 4)
    {
        If (!Arg2) { Return (Buffer() { 0x03 } ) }
        Return(Package()
        {
            "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },
            "built-in", Buffer() { 0 },
        })
    }
}
//EOF

Share this post


Link to post
Share on other sites

Ok, I got my BIOS DEVICE NAME. SB.PCI0.RP09.PXSX

And I downloaded the Maciasl by Rehabman.

 

Where I have to place the code with my BIOS Device Name?

 

When I opened Maciasl, appear a DSDT with all the differents folders. So, where, in which part, I have to add the next code?

 

// Inject bogus class-code for NVMe SSD to prevent IONVMeFamily.kext from loading

DefinitionBlock("", "SSDT", 2, "hack", "NVMe-Pcc", 0)

{

    External(_SB.PCI0.RP09.PXSX, DeviceObj)

    Method(_SB.PCI0.RP09.PXSX._DSM, 4)

    {

        If (!Arg2) { Return (Buffer() { 0x03 } ) }

        Return(Package()

        {

            "class-code", Buffer() { 0xff, 0x08, 0x01, 0x00 },

            "built-in", Buffer() { 0 },

        })

    }

}

//EOF

Read step 9: http://www.insanelymac.com/forum/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/page-37?do=findComment&comment=2343228

 

I've went ahead an edited the guide with more even information to make it relatively dummy proof. Everything should be pretty easy to follow along (provided that your ACPI location isn't incomplete).

Share this post


Link to post
Share on other sites

I made my USB, I put the SSDT in Patched and the HackrNVMeFamily-10_12_4.kext but disk utility for format no read the drive.

 

If someone wants to take a look into clover folder, here is my dropbox

https://www.dropbox.com/s/4b6ai7imysjdqra/CLOVER.zip?dl=0

your wrong ...u need kext to patch inside config.plist ..if you want to do new installation

Share this post


Link to post
Share on other sites

@magnifico

 

I made the config.plist with the patches, and I added the kext in others, but I can see the M.2 in disk utility for the instalation.

 

I add my config if you or someone can help me.

 

Grazie!

 

config.plist.zip

Share this post


Link to post
Share on other sites

your wrong ...u need kext to patch inside config.plist ..if you want to do new installation

No need for KextsToPatch for IONVMeFamily if you use spoofed class-code and HackrNVMeFamily.

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.

×