Jump to content

Chameleon 2.4svn Official PKG Installer


ErmaC
4,261 posts in this topic

Recommended Posts

Thanks also to you and PMHeart, but you are really amazing making tests!

You know, it's fun to make any test with Enoch, and happy to have good news that Chameleon is still working for new macOS.

Please keep alive with 10.13,..... and 10.19. :D :D :thumbsup_anim: :thumbsup_anim:

  • Like 3
Link to comment
Share on other sites

EXT works here with 10.12.3 too, not use Web drivers for old card. :thumbsup_anim:

attachicon.gif10123-t2wd.txt

 

Hi, i have an question about your usage of you set KernelPm to Yes

You have an Intel® Core2 Duo CPU E8400 @ 3.00GHz , i use an Quad Q8550 and have set KernelPm to No (default).

 

Should we set KernelPm to yes in the kernel.plist (like you)?

Has this some advantage for Core Duo oder Core Quad cpus or only needed for newer Intels or AMDs?

 

I also generate C/P States like you - no probs so far.

  • Like 1
Link to comment
Share on other sites

yep 2848 is published

 

Again thx Micky1979 and all the tester for the update.

 

ErmaC

Thanks for this new Enoch r.2848 which worked perfectly for Z97 hackintosh with GTX-980 & Intel HD 4600.

The great news for me is working all audio (ALC-1150, DP audio from HD 4600, & HDMI audio from GTX-980) again !

Just one bug which does not present by Clover r.3998 in NVIDIA Driver manager as attached photos:

Although Nvidia Web Driver were loaded, it showed OS X Default Graphics Driver was used in NVIDIA Driver manager.

post-70188-0-10683900-1486298625_thumb.png

post-70188-0-26283400-1486298635_thumb.png

post-70188-0-51126600-1486298645_thumb.png

post-70188-0-41434200-1486299084_thumb.png

Link to comment
Share on other sites

Thanks and can you fix it as soon as possible ?

The shown Nvidia Web vs OS X default drivers in the Nvdia Prefpane is only an cosmetic problem.

So, an fix is not really needed. Emulating real NVRAM maybe to much work or not possible to implement that in chameleon.

kextstat (in terminal) shows which driver are really loaded/used.

  • Like 1
Link to comment
Share on other sites

The shown Nvidia Web vs OS X default drivers in the Nvdia Prefpane is only an cosmetic problem.

So, an fix is not really needed. Emulating real NVRAM maybe to much work or not possible to implement that in chameleon.

kextstat (in terminal) shows which driver are really loaded/used.

Thanks and I understand it's not easily fully fixed yet.

Link to comment
Share on other sites

Enoch with kexts patcher?

 

Hi guys, I made some code to patch kernel extensions with Enoch + my own parser for a new configuration file called kexts.plist

Right now is only able to patch kexts loaded from the filesystem, i.e. from E/E, /S/L/E and /L/E using -f or UseKernelCache=No, and I'm going to do the same on the prelinkedkernel. To do that I have 2 ways:

 

1) load the prelinked, parse the prelink info part to search addresses, then patch kexts found.

2) patch kexts in the "DecodeMachO" function and be cool.

 

Both are anyway good, will do what I can and if I can. The second option anyway intrest me, and if I made it in a working state I'll port it to Clover to test with... and made a pull request.

 

(Actual code I made can allow us to patch ACPI table also.... but that later.)

 

This is my log that reflect the kexts.plist attached:

 

 

Adding booter spec to the Platform Expert 
Attempting to loading drivers from "Extra" repository:
Attempting to loading drivers from standard repositories:
	- Third party extensions search path: /Library/Extensions
	- Apple extensions search path: /System/Library/Extensions
- AppleHDA.kext forced loaded
	  Patching AppleAHCIPort: 0 substitutions made!
	  Patching AppleHDA [Item 0] (Zeroing 11d41983 codec) MatchOS[ 10.7.x,10.8.x,10.9.x,10.10.x,10.11.x ] MatchBuild[ 15G1004 ]: 0 substitutions made!
	  Patching AppleHDA [Item 1] (Zeroing 11d4198a codec (patched by AppleHDA Patcher.app)) MatchOS[ 10.12.x ] MatchBuild[ not set ]: 2 substitutions made!
	  Patching AppleHDA [Item 2] (Zeroing 11d41984 codec (patched by AppleHDA Patcher.app)) MatchOS[ not set ] MatchBuild[ not set ]: 2 substitutions made!
	  Patching AppleHDA [Item 3] (Patching 11d4198b with 111d76e0 codec (patched by AppleHDA Patcher.app)) MatchOS[ 10.7.x,10.8.x,10.9.x,10.10.x,10.11.x,10.12.x ] MatchBuild[ not set ]: 2 substitutions made!
	  Patching AppleIntelCPUPowerManagement:
		1 wrmsr patched at 0x9f02
		2 wrmsr patched at 0x9fb5
		3 wrmsr patched at 0x9fcb
		4 wrmsr patched at 0xa0e7
		5 wrmsr patched at 0xaa63
		6 wrmsr patched at 0xb4db
		7 wrmsr patched at 0xb8f8
		8 wrmsr patched at 0x114e9
		9 wrmsr patched at 0x1296e
		10 wrmsr patched at 0x13b18
	  10 substitutions made!
	  Patching AppleRTC: 1 substitutions made!
	  Patching IOAHCIBlockStorage: 1 substitutions made!
	  Patching IOAHCIBlockStorage [Item 0] (Enable TRIM for SSD) MatchOS[ 10.7.x,10.8.x,10.9.x,10.10.x,10.11.x,10.12.x ] MatchBuild[ not set ]: 1 substitutions made!
	  Patching AppleUSBXHCIPCI [Item 0] (remove usb limit) MatchOS[ 10.11.x ] MatchBuild[ not set ]: 0 substitutions made!
	  Patching AppleUSBXHCIPCI [Item 1] (remove usb limit) MatchOS[ 10.12.x ] MatchBuild[ not set ]: 1 substitutions made! 

 

 

 

The structure of the plist is simple:

 

AppleRTCPatch = Yes/No  (boolean or string) 

OrangeIconFixSata = Yes/No  (boolean or string)

TrimEnablerSata = Yes/No  (boolean or string)

AICPMPatch = Yes/No  (boolean or string)

 

(---> yes, now you can do bool values using the native tag "<false/>"  or "<true/>"  ... also I think in o.c.b.p, kernel.plist etc.  :D)

These are overridable at command line, as always.

 

To patch kexts on your own instead you have to made an array of dictionary named as the kext you want to patch (without extensions) and can contains this setting

  • Find    hex code/base64 under Data tag 
  • Replace  hex code/base64 under Data tag 
  • Comment   optional string containing what you are attempting to do with the relative patches.
  • MatchOS optional string containings a string of OSes separated by comma (or only one OS w/o comma) you want to load this patch.
  • MatchBuild optional string containing the ProductBuildVersion string of macOS. If the string contains your macOS build version the patch will be activated, not otherwise

mostly like Clover, but without the 'Name' entry because as I said is the name of the array that contains all its patches!

<key>AppleHDA</key>
  <array>
      <dict> 
          <key>MatchBuild</key> 
          <string>15G1004 16D32 or what you have</string> 
          <key>MatchOS</key> <string>10.7.x,10.8.x,10.9.x,10.10.x,10.11.x,10.12.x</string>
          <key>Comment</key> <string>Patching 11d4198b with 111d76e0 codec (patched by AppleHDA Patcher.app)</string> 
          <key>Find</key> 
          <data>ixnUEQ==</data>
          <key>Replace</key> 
          <data>4HYdEQ==</data> 
      </dict>
  </array>

Also, you can add an array of strings called 'ForceToLoad' containing the name of the kext(s) you want to load:

        <key>ForceToLoad</key>
	<array>
		<string>AppleHDA</string>
	</array>

NOTE: this assume the kext is some where in /E/E, /S/L/E or /L/E and is not granted the OS will load it. But at least is loaded by the bootloader.

later, for an effective work this will require to patch the Info.plist of the kext involved.

 

New code, new bugs, please help in testing, boot file attached!

 

EDIT

Later will extend Find/Replace capabilities to kernel.plist  ;)

kexts.plist.zip

kextsPatcher test 1.zip

  • Like 8
Link to comment
Share on other sites

×
×
  • Create New...