Jump to content

Patch for using NVMe under macOS Sierra is ready.


1,382 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.

  • Like 1
Link to comment
Share on other sites

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...

Link to comment
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.

Link to comment
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 :)

Link to comment
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.

Link to comment
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 ?

Link to comment
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
  • Like 3
Link to comment
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!

Link to comment
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

Link to comment
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.

  • Like 1
Link to comment
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

  • Like 1
Link to comment
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

Link to comment
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).

  • Like 1
Link to comment
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

  • Like 1
Link to comment
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.

Link to comment
Share on other sites

 Share

×
×
  • Create New...