RehabMan / patch-nvme

A set of scripts and plists for patching IONVMeFamily.kext for non-Apple NVMe SSDs (based on the work of PikeRAlpha)
439 stars 70 forks source link

add 10.12.6 (16G1212) #37

Closed LSChyi closed 6 years ago

LSChyi commented 6 years ago

Add patch for 10.12.6(16G1212)

RehabMan commented 6 years ago

Which security update is this for?

LSChyi commented 6 years ago

https://support.apple.com/en-us/HT208465

colinrgodsey commented 6 years ago

tested 👍

RehabMan commented 6 years ago

I will need to install this 10.12.6 build somewhere so I can check the md5 and patches myself. Problem is someone else provided an IONVMeFamily.kext from this build... and it has a different md5 sum than those you provided here. So... I will have to find out what is truth.

macpruebascms commented 6 years ago

WARNING: Vanilla MD5 () does not match expected MD5 ERROR: Vanilla MD5 does not match and --override not specified. No kext generated!

macpruebascms commented 6 years ago

Help! it is not possible to generate kext file. Has anyone generated the kext file for version 10.12.6 16G1212 could I share it?

LSChyi commented 6 years ago

@macpruebascms you can use my build (https://github.com/LSChyi/patch-nvme). As RehabMan said, you can also help to test whether my MD5 is correct.

colinrgodsey commented 6 years ago

@RehabMan ouch, thats not good lol. Well, this one went fine for me without any checksum errors. Of course probably best to verify tho

screen shot 2018-01-31 at 9 15 55 am

macpruebascms commented 6 years ago

I will get the kext file but it continues to generate the MD5 error. Install it in the extension folder of the main disk. But now I get the following start error. I think the generated kext file has some problem. Could someone please share the kext file with me? mac-prohibit-symbol-screen-icon

macpruebascms commented 6 years ago

Help! I do not have access to my pc. Could someone upload the kext file?

RehabMan commented 6 years ago

The IONVMeFamily.kext that was uploaded by a user on insanelymac.com was not correct (maybe it was already patched). I updated a system that I still had 10.12.6 installed on to security 2018-001, build 16G1212 and created a new patch file. There were no changes to the patches, just a new md5 sum (as usual).

The new patch file is now added..., and README.md updated.

LSChyi commented 6 years ago

@macpruebascms I'll explain it.

Why I get a MD5 not match error?

The patch_nvme.sh does not make up the patched kexts, it needs a original IONVMeFamily.kext as reference to generate the patch. As the readme in this project described, you can manually specify the version by using ./patch_nvme.sh YOUR_MAC_VERSION or a location of IONVMEFamily.kexts with ./patch_nvme.sh --unpatched PATH_TO_INOVMEFamily.kexts YOUR_MAC_VERSION. Otherwise, simply run ./patch_nvme.sh automatically use the system IONVMEFamily.kexts as reference. Different version of your macOS has a unique IONVMEFamily.kexts, so you may get the MD5 not matched error by providing the wrong IONVMEFamily.kexts.

How can I get access to my PC if I can not even boot into the system?

The easiest way is to use your Time Machine to restore it. Since this patch is not able to use in the installer drive (you can not patch the IONVMEFamily.kexts in the installer driver), you are not able to directly restore to your NVME ssd. There are two actions you can take:

  1. Physically remove the NVME ssd out of your motherboard, and take another non-NVME disk as the restoration target. After the restoration, you should be able to use the disk as the system disk (if the disk does not have the hackintosh EFI, you will need to reinstall the EFI partition just like the first time you install it).
  2. Sadly, you don't use Time Machine, but that doesn't mean your system is lost forever. You can burn a live linux installer (ex: Ubuntu), step into the live system, and 'fully clone the data from your NVME ssd to a non-NVME disk' by using command such as dd. dd clones everything from one disk to another, which also clones the EFI partition. After your transfer your system to a non-NVME ssd, you still have to physically remove the NVME ssd and reinsert it back until you correctly patched the NVME patch.

After you are able to boot into your system, first upgrade your system to the latest version (10.12.6 (16G1212)), and reinsert your NVME ssd after your patch and restart it. The build for 10.12.6 is provided as follow. HackrNVMeFamily-10_12_6_16G1212.kext.zip

RehabMan commented 6 years ago

Use just ./patch_nvme.sh or ./patch_nvme.sh --spoof

The script will automatically find the correct plist for the IONVMeFamily.kext in /S/L/E. You can also direct it to a specific IONVMeFamily with the --unpatched option. And you can specify the patch plist directly (using only part of the name), but you must use the correct name. Read the README for details.