Micky1979 Posted February 8, 2017 Share Posted February 8, 2017 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 (I have also 10.7.5) EDIT Ok, today, I had not said no nonsense until now Link to comment Share on other sites More sharing options...
PMheart Posted February 9, 2017 Share Posted February 9, 2017 Congrats Micky! 1 Link to comment Share on other sites More sharing options...
gujiangjiang Posted February 9, 2017 Share Posted February 9, 2017 This is awesome! Thanks Micky! 从我的 iPhone 发送,使用 Tapatalk 1 Link to comment Share on other sites More sharing options...
crazybirdy Posted February 9, 2017 Share Posted February 9, 2017 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. 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 More sharing options...
PMheart Posted February 9, 2017 Share Posted February 9, 2017 Wow, good news for kexts patcher. As my test result, it works fine with -f to load original kexts and patched works well. 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. IMHO why not inject Info properties via FakeSMC? I think sometimes patching Info can cause problems, for instance the length... 1 Link to comment Share on other sites More sharing options...
crazybirdy Posted February 9, 2017 Share Posted February 9, 2017 IMHO why not inject Info properties via FakeSMC? I think sometimes patching Info can cause problems, for instance the length... That's a good idea, but I'm lazy to rewrite info via FakeSMC when update it. Link to comment Share on other sites More sharing options...
PMheart Posted February 9, 2017 Share Posted February 9, 2017 That's a good idea, but I'm lazy to rewrite info via FakeSMC when update it. Making an Info Injector to be cured of your lazy... LOL If you are too lazy to do so. Here is an sample. AppleInfoInjector.kext.zip Note: Paste your info properties under IOKitPersonalities 1 Link to comment Share on other sites More sharing options...
Micky1979 Posted February 9, 2017 Share Posted February 9, 2017 Hi guys. I'm doing something to easy inject modded settings. Let see.. 4 Link to comment Share on other sites More sharing options...
mitch_de Posted February 10, 2017 Share Posted February 10, 2017 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). WebDriverCheck.zip 5 Link to comment Share on other sites More sharing options...
Shaneee Posted February 10, 2017 Share Posted February 10, 2017 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). Bildschirmfoto 2017-02-10 um 15.56.18.jpg Here's the Apple driver example 1 Link to comment Share on other sites More sharing options...
mitch_de Posted February 11, 2017 Share Posted February 11, 2017 Thanks for Apple driver screen. 1 Link to comment Share on other sites More sharing options...
LockDown Posted February 14, 2017 Share Posted February 14, 2017 does chameleon trunk now has all the latest fix? Link to comment Share on other sites More sharing options...
Micky1979 Posted February 14, 2017 Share Posted February 14, 2017 does chameleon trunk now has all the latest fix? And why should if I've not yet finished even for Enoch? 1 Link to comment Share on other sites More sharing options...
crazybirdy Posted February 14, 2017 Share Posted February 14, 2017 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...... :thumbsup_anim: Than, we still need Enoch to support new macOS again.... and so on.... trunk is not the point now. :thumbsup_anim: 1 Link to comment Share on other sites More sharing options...
Micky1979 Posted February 14, 2017 Share Posted February 14, 2017 I hope in a fully functional kexts patcher soon! 2 Link to comment Share on other sites More sharing options...
Micky1979 Posted February 16, 2017 Share Posted February 16, 2017 (edited) 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. We can now inject personalities! , 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: EDIT For who want test: please, test on USB, code is totally new EDIT 2 as for my example "WifiInjector" can be any (e.g. "CatAndDog" ) less than a real kext name, also, avoid punctuation please. kexts.plist.zip boot (kext patcher+personalities).zip Edited February 16, 2017 by Micky1979 7 Link to comment Share on other sites More sharing options...
oliveiro Posted February 16, 2017 Share Posted February 16, 2017 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 More sharing options...
Micky1979 Posted February 17, 2017 Share Posted February 17, 2017 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 More sharing options...
crazybirdy Posted February 17, 2017 Share Posted February 17, 2017 We can now inject personalities! , 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 More sharing options...
crazybirdy Posted February 17, 2017 Share Posted February 17, 2017 @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... Copy of the -f associated KP below: P1040104.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. Link to comment Share on other sites More sharing options...
crazybirdy Posted February 17, 2017 Share Posted February 17, 2017 Huh??? Without CsrActiveConfig, you can still boot fine, but without KernelBooter_kexts=Yes, you will never load EE or Clover/kext. That is the different SIP things between kernel and system. Link to comment Share on other sites More sharing options...
Micky1979 Posted February 17, 2017 Share Posted February 17, 2017 (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. 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 2 Link to comment Share on other sites More sharing options...
crazybirdy Posted February 17, 2017 Share Posted February 17, 2017 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. 1 Link to comment Share on other sites More sharing options...
Micky1979 Posted February 17, 2017 Share Posted February 17, 2017 Thanks to you 2 Link to comment Share on other sites More sharing options...
crazybirdy Posted February 18, 2017 Share Posted February 18, 2017 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. 1 Link to comment Share on other sites More sharing options...
Recommended Posts