Jump to content

Chameleon 2.4svn Official PKG Installer


ErmaC
4,261 posts in this topic

Recommended Posts

Hello.. Early days i adapted Chameleon xml lib to support attributes (size, ID & IDREF) tag into Clover, but it seems Chameleon didnt use this cool features anywhere yet? What I want to suggest is not to do 'GetRef ...' while parsing until its done reading the whole file. ID & IDREF can be in random order, lib will fail to read its references while on top order. So only call 'GetRef ...' as we need, as in this example.

  • Like 1
Link to comment
Share on other sites

Hello.. Early days i adapted Chameleon xml lib to support attributes (size, ID & IDREF) tag into Clover, but it seems Chameleon didnt use this cool features anywhere yet? What I want to suggest is not to do 'GetRef ...' while parsing until its done reading the whole file. ID & IDREF can be in random order, lib will fail to read its references while on top order. So only call 'GetRef ...' as we need, as in this example.

That is good patching the info.plist of prelinked kernel?

Will Enoch get an update to correctly enable nvidia on Sierra? I get a lot of questions about it and the nvram method doesn't seem to work for all them.

Good chances to make it work with a little cange + a patched NVDAStartupWeb. But I need testers, I have someone?

  • Like 1
Link to comment
Share on other sites

That is good patching the info.plist of prelinked kernel?

Good chances to make it work with a little cange + a patched NVDAStartupWeb. But I need testers, I have someone?

Yep, i can test.

Using El Capitan and Sierra , Chameleon with NVRAM, works for me to use Nvdia Web. My gpu , GT 740 (Kepler) could work with Apple drivers also (mostly :) )

But would be great to do same without NVRAM dylib / .kext , like in Clover.

Link to comment
Share on other sites

Guys any problems injecting kexts from Extra/Extensions in 10.12.4 beta?

Not update to 10.12.4.beta yet,

but Enoch r2839 work fine with 10.6.8~10.10.5 with -f, and without -f to load /Extra/Extensions.

 

from 10.11.x~10.12.3, only work with -f to load /Extra/Extensions.(need SIP code)

did not load /Extra/Extensions without -f, only load prelinkedkernel.(need EXT code)

 

It lost the patch code for 10.11.x and 10.12.x as below, only SIP work fine with 10.11~10.12.

Lost KBEYos*EXT for 10.11 and 10.12.dp1,

Lost KBESie*EXT patch for Sierra DP2+

 

https://sourceforge.net/p/cloverefiboot/code/HEAD/tree/rEFIt_UEFI/Platform/kext_inject.c

 

// El Capitan
// need to use KBEYos*EXT patch for El Capitan

// Yosemite, Need for 10.11.x
UINT8 KBEYosSearchEXT[] = { 0xE8, 0x25, 0x00, 0x00, 0x00, 0xEB, 0x05, 0xE8, 0xCE, 0x02, 0x00, 0x00 };
UINT8 KBEYosReplaceEXT[] = { 0xE8, 0x25, 0x00, 0x00, 0x00, 0x90, 0x90, 0xE8, 0xCE, 0x02, 0x00, 0x00 };
 
UINT8 KBEECSearchSIP[] = { 0xC3, 0x48, 0x85, 0xDB, 0x74, 0x70, 0x48, 0x8B, 0x03, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 };
UINT8 KBEECReplaceSIP[] = { 0xC3, 0x48, 0x85, 0xDB, 0xEB, 0x12, 0x48, 0x8B, 0x03, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 };
 
// Sierra
// Sherlocks: Sierra SIP, cecekpawon: Sierra DP2+, Micky1979: 10.12.4+
// need to use KBEYos*EXT patch for Sierra DP1

// Yosemite, Need for 10.12.DP1
UINT8 KBEYosSearchEXT[] = { 0xE8, 0x25, 0x00, 0x00, 0x00, 0xEB, 0x05, 0xE8, 0xCE, 0x02, 0x00, 0x00 };
UINT8 KBEYosReplaceEXT[] = { 0xE8, 0x25, 0x00, 0x00, 0x00, 0x90, 0x90, 0xE8, 0xCE, 0x02, 0x00, 0x00 };
 
// need to use KBESie*EXT patch for Sierra DP2+

UINT8 KBESieSearchEXT[] = { 0xE8, 0x25, 0x00, 0x00, 0x00, 0xEB, 0x05, 0xE8, 0x7E, 0x05, 0x00, 0x00 };
UINT8 KBESieReplaceEXT[] = { 0xE8, 0x25, 0x00, 0x00, 0x00, 0x90, 0x90, 0xE8, 0x7E, 0x05, 0x00, 0x00 };
// need to use KBESie4*EXT patch for 10.12.4+
UINT8 KBESie4SearchEXT[] = { 0xE8, 0x25, 0x00, 0x00, 0x00, 0xEB, 0x05, 0xE8, 0x9E, 0x05, 0x00, 0x00 };
UINT8 KBESie4ReplaceEXT[] = { 0xE8, 0x25, 0x00, 0x00, 0x00, 0x90, 0x90, 0xE8, 0x9E, 0x05, 0x00, 0x00 };
 
UINT8 KBESieSearchSIP[] = { 0xC3, 0x48, 0x85, 0xDB, 0x74, 0x71, 0x48, 0x8B, 0x03, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 };
UINT8 KBESieReplaceSIP[] = { 0xC3, 0x48, 0x85, 0xDB, 0xEB, 0x12, 0x48, 0x8B, 0x03, 0x48, 0x89, 0xDF, 0xFF, 0x50, 0x28, 0x48 };
Link to comment
Share on other sites

Ok, give me the time to do something..

 

btw, I try to cut down the patch code for EXT, find only one set of this code for all the kernels of 10.10.x, 10.11.x, 10.12.x,

we can use 0xE8, 0x25, 0x00, 0x00, 0x00, 0xEB, 0x05, 0xE8 only to patch for all 10.10~10.12 as the same code, and ignore the CE, 7E, 9E things.

 

UINT8 KBEYosSearchEXT[] = { 0xE8, 0x25, 0x00, 0x00, 0x00, 0xEB, 0x05, 0xE8 };
UINT8 KBEYosReplaceEXT[] = { 0xE8, 0x25, 0x00, 0x00, 0x00, 0x90, 0x90, 0xE8 };
Link to comment
Share on other sites

This imply to looks on all kernels made between yosemite and Sierra to see if that short array exists only once  :rofl:

I think the code is for loading kexts and thus it could be very important..

The hex value changed could be due to other code modifications.

Link to comment
Share on other sites

and anyway for 10.10~10.10.4 if I'm not mistaken is:

E8 27 00 00 00 EB 08 48 89 DF (index 5 and 6 to nop)

If so and then how can we inject kexts for Yos at that time...

And do you think we should make a innovation that we should patch this like KernelLapic?  :P

  • Like 1
Link to comment
Share on other sites

Confirmed what I said: E8 25 00 00 0E B0 5E 08 did not exist in 10.10.1, so also Clover is wrong. For 10.10, 10.10.1, 10.10.2, 10.10.3 and 10.10.4 is:

E8 27 00 00 00 EB 08 48 89 DF (index 5 and 6 to nop)

 

Please crazybirdy look at all other Yose kernels  :lol:

  • Like 1
Link to comment
Share on other sites

Confirmed what I said: E8 25 00 00 0E B0 5E 08 did not exist in 10.10.1, so also Clover is wrong. For 10.10, 10.10.1, 10.10.2, 10.10.3 and 10.10.4 is:

E8 27 00 00 00 EB 08 48 89 DF (index 5 and 6 to nop)

 

Please crazybirdy look at all other Yose kernels  :lol:

No, here is the same as E8 25 00 00 00 EB 05 E8 for 10.10.0, 10.10.1, 10.10.2, 10.10.3, 10.10.4, 10.10.5.

why?

 

10.10.1

post-61100-0-25438800-1485607485_thumb.png

Link to comment
Share on other sites

Confirmed what I said: E8 25 00 00 0E B0 5E 08 did not exist in 10.10.1, so also Clover is wrong. For 10.10, 10.10.1, 10.10.2, 10.10.3 and 10.10.4 is:

E8 27 00 00 00 EB 08 48 89 DF (index 5 and 6 to nop)

 

Please crazybirdy look at all other Yose kernels  :lol:

Yours seems to be commented out at such an early time... See https://sourceforge.net/p/cloverefiboot/code/2817/tree//rEFIt_UEFI/Platform/kext_inject.c#l517

Link to comment
Share on other sites

Yes  :P, but that was right! I cannot understand why this was removed. This is still needed for old versions of Yosemite.

So you mean that the commented patch is still existing in the kernel of 10.10.1?

In this you can revert it back just like some months ago I suggest @Sherlocks keep the kext injection patch for SieDP1.

Link to comment
Share on other sites

×
×
  • Create New...