Jump to content

Chameleon 2.4svn Official PKG Installer


ErmaC
 Share

4,261 posts in this topic

Recommended Posts

:thumbsup_anim:  :thumbsup_anim:   :thumbsup_anim:

 

Arguably, TrimEnablerSata may not be necessary on the basis that Apple's OS provide the trimforce enable command since 10.10.4.

 

The AICPMPatch will be a life saver for all Sandy and Ivy Bridgers; we'll no longer require to manually patch the kext.

it spam the log from what I see. But I can made it conditional and add a bootArg for 10.10.4 + instead  :D

(I have also 10.7.5)

 

EDIT

Ok, today, I had not said no nonsense until now  :hysterical:

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.

EDIT

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

 

Wow, good news for kexts patcher. :)

 

As my test result, it works fine with -f to load original kexts and patcher works well. :thumbsup_anim:

10123-2849kpt1.txt

But, can we patch the info.plist too? (Clover can do it.)

Such as IO80211Family.kext/Contents/PlugIns/AirPortBrcm4360.kext/Contents/Info.plist.

I need to replace ID for <string>pci14e4,4350</string> (BCM4322), same as my ATI4300m.

 

Anyway, nice job for this topic, I remember it more than one year ago.

Link to comment
Share on other sites

Wow, good news for kexts patcher. :)

 

As my test result, it works fine with -f to load original kexts and patched works well. :thumbsup_anim:

attachicon.gif10123-2849kpt1.txt

But, can we patch the info.plist too? (Clover can do it.)

Such as IO80211Family.kext/Contents/PlugIns/AirPortBrcm4360.kext/Contents/Info.plist.

I need to replace ID for <string>pci14e4,4350</string> (BCM4322), same as my ATI4300m.

 

Anyway, nice job for this topic, I remember it more than one year ago.

IMHO why not inject Info properties via FakeSMC? I think sometimes patching Info can cause problems, for instance the length...

  • Like 1
Link to comment
Share on other sites

i made an WebDriverCheck tool.

Shows which driver is loaded/used and some (timer updated) info about gpu load %, VRAM fre, VRAM.

Nvidia picture changes to Apple Logo if Apple drivers detected (beside also text changes to com.apple...)

 

screenshoot shows tool running beside CUDA-Z (Benchmark).

 

post-110586-0-81080300-1486738165_thumb.jpg

WebDriverCheck.zip

  • Like 5
Link to comment
Share on other sites

i made an WebDriverCheck tool.

Shows which driver is loaded/used and some (timer updated) info about gpu load %, VRAM fre, VRAM.

Nvidia picture changes to Apple Logo if Apple drivers detected (beside also text changes to com.apple...)

 

screenshoot shows tool running beside CUDA-Z (Benchmark).

 

attachicon.gifBildschirmfoto 2017-02-10 um 15.56.18.jpg

 

Here's the Apple driver example :)

 

RvO5Nfb.png

  • Like 1
Link to comment
Share on other sites

And why should if I've not yet finished even for Enoch?

Enoch is still need to add more functions and alway need to fix something, i think, it needs years to do that...... :yes::thumbsup_anim: :thumbsup_anim: 

 

Than, we still need Enoch to support new macOS again.... and so on....

 

trunk is not the point now. :thumbsup_anim: :thumbsup_anim:

  • Like 1
Link to comment
Share on other sites

But, can we patch the info.plist too? (Clover can do it.)

Such as IO80211Family.kext/Contents/PlugIns/AirPortBrcm4360.kext/Contents/Info.plist.

I need to replace ID for <string>pci14e4,4350</string> (BCM4322), same as my ATI4300m.

 

:thumbsup_anim:

We can now inject personalities! :D, instead of patching the info.plist

please test your wifi using the kexts.plist and the boot file attached.

Please remove any injector for your BCM4322. Should work with prelinkedkernel too. let me know (here works!)

 

Example:

post-674334-0-40440100-1487279418_thumb.png

 

 

EDIT

For who want test: please, test on USB, code is totally new :wink_anim:

 

EDIT 2

as for my example "WifiInjector" can be any (e.g. "CatAndDog" :D ) less than a real kext name, also, avoid punctuation please.

kexts.plist.zip

boot (kext patcher+personalities).zip

Edited by Micky1979
  • Like 7
Link to comment
Share on other sites

Hi, I just installed Sierra 10.12.3 with r2848.

 

I was stopped by a "can't find kernel" until I namely typed "/System/Library/PrelinkedKernels/prelinkedkernel" at boot with a vanilla installer (usb or hdd volume). Weirdly I can't remember having to do this during former OsX versions installs.

 

Once SIerra installed, I used the ability of r2848 to load nvidia web drivers with nvda_drv=1, and it succeeded as soon as I rebuilt kernel caches after installing nvidia Driver Release 367.15.10.35.

 

I'm on a triple GPU system : HD4600 IGpu set as primary in bios, GTX560 on a pcie 16x, GTX550Ti on a pci 4x

(no other bios settings allowed me to have all 3 displays working correctly in ElCap)

I use iMac14.2 smbios, on a core i5 4460, kernel patching ok, pm and booter.

 

I can boot on a clean triple display in El Capitan with nvda_drv=1, and in Sierra with nvda_drv=0.

This is with GraphicsEnabler=Yes (or IGPEnabler=Yes) to enable the HD4600

NvidiaSingle=No to enable both GTX560 and GTX550Ti

SkipNvidiaGfx=Yes, to prevent GraphicsEnabler to inject anything about the GTXs, OsX handles them correctly without it (once boot sequence has started on the HD4600).

Changing to SKipNvidiaGfx to "no" corrupted displays in ElCapitan, nonetheless it leads to the same result as "yes" in SIerra.

 

BUT :

in Sierra, with nvda_drv=1, if all is fine with the HD4600 and the GTX560, unfortunately display is corrupted on the GTX550Ti (DVI or HDMI).

By corrupted I mean windows and dialogs seem ok, but clicking a menu or a droplist result in display mess, and no picture can be displayed (no wallpaper, no miniatures in Wallpaper settings window for instance)

 

I don't know how to determine whether the patch (enabling web driver loading in r2848), or the nvidia web driver itself cause the problem, cause of course I cannot test one without the other.

 

Does anybody has an idea or experience with multiple nvidia GPUs in Sierra 10.12.3 with enoch/chameleon ?

 

Thanks !

Link to comment
Share on other sites

 

 

I don't know how to determine whether the patch (enabling web driver loading in r2848)

Surely can't be the problem, but IGPEnabler does not exist and does nothing, "/System/Library/PrelinkedKernels/prelinkedkernel" should not exist on a Vanilla installer.... the prelinked is no longer inside "/.IABootFiles/"?

Link to comment
Share on other sites

:thumbsup_anim:

We can now inject personalities! :D, instead of patching the info.plist

please test your wifi using the kexts.plist and the boot file attached.

Please remove any injector for your BCM4322. Should work with prelinkedkernel too. let me know (here works!)

 

Great!

 

Test the BCM4322 patcher with the original kernel, and kexts, and remove injector.

2848 doesn't work with -f, boot fine without wifi.

(2849 Micky1979 kextsPatcher test 1) doesn't work with -f, boot fine without wifi.

(2850 Micky1979 kextsPatcher + pers test 2) works fine with -f, wifi works fine too,

doesn't work without -f (prelinkedkernel), boot fine without wifi.

 

Will try again with prelinkedkernel later, let you know the result.

[edit: test again, prelinkedkernel still doesn't work with kexts patch for BCM4322.]

here is my kexts.plist and bdmesg, FYI.

bdmesg+kexts.plist.zip

Link to comment
Share on other sites

@crazyBirdy, seems you're right about booting with -f under r2848.

 

I'm in the habit of placing all my add-on kexts to /L/E, except for those that must go to /SL/E (e.g.: patched AppleHDA) and I keep a copy of all safe kexts to /E/E. This way, if I mess up the cache with new kexts in /L/E, I can always recover with KernelBooter_kexts=Yes -f since that loads kexts from /E/E whilst bypassing /L/E.

 

I've made new tests with r2848 where I removed all add-on kexts from /L/E and moved only required kexts like FakeSMC and PS2 Controller to /S/L/E. I repaired /S/L/E permissions but did not rebuild the cache.

1) I rebooted with -f -v, saw that no prelinked kernel was loaded and ended up with KP.

2) I rebooted with -v,  saw prelinked kernel was loaded and reached desktop Ok (just had some stuff missing like audio and LAN as expected).

3) I rebooted with KernelBooter_kexts=Yes -f -v, saw that no prelinked kernel was loaded and reached desktop Ok (with everything working as expected).

 

Indeed, there appears to be an issue booting without cache IF KernelBooter_kexts is not set to Yes. Ok otherwise. Probably a side effect of Micky's last work on the KernelBooter_kexts matter...  :P

 

Copy of the -f associated KP below:

attachicon.gifP1040104.JPG

 

KernelBooter_kexts=Yes, it always needs to set to boot 10.11 and 10.12 cause of SIP things.

Same as clover, clover set to patch SIP default, Enoch use kernel.plist to set it to be Yes for SIP things by user.

 

If you don't use KernelBooter_kexts=Yes, you will never boot to 10.11 (since r2760) and 10.12 (since r2830) with -f to load EE.

post-61100-0-82932300-1487328252_thumb.gif

Link to comment
Share on other sites

(2850 Micky1979 kextsPatcher + pers test 2) works fine with -f, wifi works fine too,

doesn't work without -f (prelinkedkernel), boot fine without wifi.

 

Ok, the injector works. Here also work with prelinked kernel and should be the same as putting a real kext injector in SLE, LE or EE. So be sure your prelinked is rebuilted correctly after permissions are repaired.

-f means that at boot time is Enoch that load all loadable kexts, but does not care permissions since root doesn't even exist at start-up. A big difference loading the cache.

If that is still not enough try to set the 'IOProbeScore' value to an higer one. Also this can be a big difference.

 

 

:blink: Huh???

 

KernelBooter_kexts should always be set to true and It can be deactivated to allow modules (like FileNVRAM.dylib that have an internal kernel patcher) to do their patches w/o conflicts of any kind

 

PS kernel.plist will have their patch section to allow users to do its own Find/Replace on the kernel/prelink   :yes:

  • Like 2
Link to comment
Share on other sites

Ok, the injector works. Here also work with prelinked kernel and should be the same as putting a real kext injector in SLE, LE or EE. So be sure your prelinked is rebuilted correctly after permissions are repaired.

-f means that at boot time is Enoch that load all loadable kexts, but does not care permissions since root doesn't even exist at start-up. A big difference loading the cache.

If that is still not enough try to set the 'IOProbeScore' value to an higer one. Also this can be a big difference.

 

Will try again later, and let you know the result, thanks. :yes:

  • Like 1
Link to comment
Share on other sites

I get the impression you guys just say the same as me. But, again, correct me if I'm wrong...

 

1) Is KernelBooter_kexts doing something different or additional than injecting kexts placed in /E/E at boot time?

2) If I put my kexts in /S/L/E (and not in /L/E for obvious reasons) and want to boot without cache, why do I need KernelBooter_kexts set to Yes along -f flag?

 

I admit to being a bit lost on the matter now.

 

If you want to boot with kernel and kexts (SLE, LE, EE), not prelinkedkernel, you need KernelBooter_kexts always.

That's kernel SIP things at boot time since 10.11.

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...