Jump to content

Clover General discussion


ErmaC
29,866 posts in this topic

Recommended Posts

Explain, please, what do you mean "load priority"?

All kexts already loaded into memory.

Then they performs Init() method.

Then they performs Probe() method and return successful or not to try again after other kexts run. There is ProbeScore number.

Then they started  one by one.

All you need is Lilu started first? There is no direct dependency from where it is loaded. It is loaded in memory.

What if a kext to be patched does something at Probe() method? Lilu started after that because Start() method works after all Probe() methods.

 

 I/O Kit init/probe/start methods are not the first methods called within a kext. There also is a kmod interface, that is called much earlier, right after kext loading (unlike init/start which are asynchronous in its nature).

 

https://opensource.apple.com/source/xnu/xnu-4570.1.46/libsa/bootstrap.cpp.auto.html

 

Check: KLDBootstrap::readStartupExtensions (it is defined as record_startup_extensions_function). This clears what the order is. Booter kexts are added to the beginning of the list of kexts that are to be processed, and their kmod interface is guaranteed to be called earlier.

 

Then check KLDBootstrap::loadKernelComponentKexts in the same file, it shows that the first kexts to load are the ones being basic platform <library> kexts (e.g. System.kext and so on, see sKernelComponentNames). 

Then there are com.apple.kec. kexts (external components), which provide crypto, threads and stuff (e.g. com.apple.kec.corecrypto, com.apple.kec.Libm, etc.)

Then we have device tree update…

 

record_startup_extensions_function is called before I/O Kit is fully initialised (https://opensource.apple.com/source/xnu/xnu-4570.1.46/iokit/Kernel/IOStartIOKit.cpp) and then the asynchronous kext loading from the list happens in the following order: booter kexts, prelinked cache, everything else kextd asks to load.

 

However, there is an exception called KLDBootstrap::loadSecurityExtensions.

https://opensource.apple.com/source/xnu/xnu-4570.1.46/security/mac_base.c.auto.html

Check: mac_policy_initmach

 

Which basically overrides the order as it is, and forces security extensions to load here and now as we need MAC policy.

 

This should be enough to understand the cause, and if you are really interesting in the details, you could check the code further starting from the functions I mentioned.

  • Like 10
Link to comment
Share on other sites

@Slice

today, i tested EDID injection.

clover now use AAPL00,override-no-edid for Fake EDID injection. it works on 10.8~10.13.

but on 10.6.8 and 10.7.5, this key is not work. always use system's original edid value. 

i checked intel AppleIntelSNBGraphicsFB binary.

there are some key for edid. but i tested these keys are not work.

AAPL00,override-no-edid <-now use in clover

AAPL00,override-no-connect

AAPL00,override-has-edid

AAPL00,override-no-edid

AAPL00,override-has-edid-digital

 

AAPL01 also exist. but no luck. now must be add edid as manual in S/L/Display/Overrides on 10.6.8 and 10.7.5

 

do you have any idea? how about your Dell Latitude D430's edid injection on 10.7.5?

 

thanks in advance

AppleIntelSNBGraphicsFB.zip

  • Like 1
Link to comment
Share on other sites

apianti, how is that clover only? Booter extensions are supported by any bootloader from Chameleon to Ozmosis, furthermore, you could use LiluFriend (which I use on real hw and VMware; abd I do not hack Lilu and plugins' plists with apple security stuff for various reasons).

 

You might have misread me. Lilu always loads, but to work properly it needs to be loaded very early. Very early means is I need to load before most of ioreg is ready, right after main file system mount, even before dyld shared cache is mapped or launchd starts. At this step only platform and security extensions are guaranteed to load. Booter extensions start next, and they are also pretty much guaranteed to load early enough. Everything else is not, if you happen to be in the end of prelinked list, you are screwed You could always check XNU code if you are interested.

 

What if Lilu.kext and all Lilu plugins were made bundle-id: com.apple.security.*

Problem?

Link to comment
Share on other sites

That works fine (though additionally needs AppleSecurityExtension set to YES in Info.plist), and that is basically what LiluFriend does. I feel bad for doing this for non-apple kexts though, plus apple could always check for non-apple signature if it sees such an id.

  • Like 2
Link to comment
Share on other sites

That works fine (though additionally needs AppleSecurityExtension set to YES in Info.plist), and that is basically what LiluFriend does. I feel bad for doing this for non-apple kexts though, plus apple could always check for non-apple signature if it sees such an id.

 

IMHO, seems like a good thing to do for all Lilu+plugins.

 

Any such Apple check would break LiluFriend as well, so... the solutions are equal that way, except that it removes the burden from the user to create custom LiluFriend.kext, and places the burden back on the Lilu-based kext developer (where it belongs).

Link to comment
Share on other sites

I installed El Capitan from USB(createinstallmedia method) but after restart clover don't see volume with stage 2 installation files, any help?

 

Do you have hidden drives? If so, try to press F3 on Clover UI to show all the drives. Then boot from the one called "Install..." something.

Link to comment
Share on other sites

Do you have hidden drives? If so, try to press F3 on Clover UI to show all the drives. Then boot from the one called "Install..." something.

I tried, won't appear anything.

 

Sent from my HTC One M9 using Tapatalk

Link to comment
Share on other sites

I installed El Capitan from USB(createinstallmedia method) but after restart clover don't see volume with stage 2 installation files, any help?

Did you verify that the installation files were copied correctly to the destination bootable volume?

  • Like 1
Link to comment
Share on other sites

I can't boot with 4268 or 4259. I am able to  boot with 4243 and before. In verbose boot with 4259 and 4268 it freezes right away and I'm not sure how to troubleshoot. I appreciate clover and any help you can give. Thanks johnm

Attached photos of verbose freezing 4268, and the customize choices I made when installing clover upgrade only, thanks

post-517315-0-28107600-1509379633_thumb.jpg

post-517315-0-92273800-1509379797_thumb.jpg

  • Like 1
Link to comment
Share on other sites

I can't boot with 4268 or 4259. I am able to  boot with 4243 and before. In verbose boot with 4259 and 4268 it freezes right away and I'm not sure how to troubleshoot. I appreciate clover and any help you can give. Thanks johnm

Attached photos of verbose freezing 4268, and the customize choices I made when installing clover upgrade only, thanks

I had same problem, longer ago, with an older clover version El Capitan Time)

Boot works perfect ONLY if i didnt use -v. ( later that problem goes awaiy, same /EFI content) iwthnewer clover version) 

To defs:

What happens in deep of Clover when -v (only verbose infos at boot time) run into that shown problem - at very early time Clover fails ? (like your screenshoots)

  • Like 1
Link to comment
Share on other sites

I had same problem, longer ago, with an older clover version El Capitan Time)

Boot works perfect ONLY if i didnt use -v. ( later that problem goes awaiy, same /EFI content) iwthnewer clover version) 

To defs:

What happens in deep of Clover when -v (only verbose infos at boot time) run into that shown problem - at very early time Clover fails ? (like your screenshoots)

Nothing happen. It is just memory allocation issue depending on hardware and BIOS.

  • Like 1
Link to comment
Share on other sites

For me when I updated from Clover v4243 to v4268 had Graphic glitches when I got to desktop, even login gui issues.  Went back to v4243 problem went away, then updated again to v4268 and after a few reboots looks like the issue is gone.  This is for HS 10.13.0 with GTX 770 4gb on Maximus VIII Hero Z170 with Kaby Lake i7-7700k processor and 64GB memory.  Could this have been some Nvram issue or memory allocation issue, using AptioFix v1.  Seems like after a few reboots the trouble has disappeared, which does seem to point to either kernel cache or nvram if this sounds right?  Nvcap and ID information of graphics card from clover options menu GPU section has not changed in v4268 so completely lost as to why I get graphic glitches on initial install of Clover v4268.   I am not using the web driver since my GPU is natively supported!

Link to comment
Share on other sites

Hi can someone explain why in clover v4220 on the boot menu I have three volumes, Preboot, High Sierra and Recovery, which I think is normal and yet when I update clover to v4268, I then get two Preboot volumes showing in the boot screen menu even if I do a clean install. The extra volume is totally useless as it does nothing when selected, just a black screen with a zero. I am aware I can hide any unwanted volumes by tweaking the config.plist but I find it extremely irksome to the point I did another clean install but revert back to clover v4220 which to my limited knowledge gave me three working volumes that can be booted from. Appreciate any insight offered - Thanks.

  • Like 1
Link to comment
Share on other sites

Hi can someone explain why in clover v4220 on the boot menu I have three volumes, Preboot, High Sierra and Recovery, which I think is normal and yet when I update clover to v4268, I then get two Preboot volumes showing in the boot screen menu even if I do a clean install. The extra volume is totally useless as it does nothing when selected, just a black screen with a zero. I am aware I can hide any unwanted volumes by tweaking the config.plist but I find it extremely irksome to the point I did another clean install but revert back to clover v4220 which to my limited knowledge gave me three working volumes that can be booted from. Appreciate any insight offered - Thanks.

High Sierra installation is quirky and didn't cleanup install files which Clover find as "continue installation". You should manually delete them to see only useful icons in Clover GUI.

Anyway the Clover is right showing them because else you can't install HS.

  • Like 2
Link to comment
Share on other sites

Hi can someone explain why in clover v4220 on the boot menu I have three volumes, Preboot, High Sierra and Recovery, which I think is normal and yet when I update clover to v4268, I then get two Preboot volumes showing in the boot screen menu even if I do a clean install. The extra volume is totally useless as it does nothing when selected, just a black screen with a zero. I am aware I can hide any unwanted volumes by tweaking the config.plist but I find it extremely irksome to the point I did another clean install but revert back to clover v4220 which to my limited knowledge gave me three working volumes that can be booted from. Appreciate any insight offered - Thanks.

Show all File / Root disk,  Folder Volumes , check if you have more then one preboot volumes

Link to comment
Share on other sites

I can't boot with 4268 or 4259. I am able to  boot with 4243 and before. In verbose boot with 4259 and 4268 it freezes right away and I'm not sure how to troubleshoot. I appreciate clover and any help you can give. Thanks johnm

Attached photos of verbose freezing 4268, and the customize choices I made when installing clover upgrade only, thanks

can anyone help with some info for me on this? Thank you

Link to comment
Share on other sites

×
×
  • Create New...