Jump to content

Chameleon 2.4svn Official PKG Installer


ErmaC
4,261 posts in this topic

Recommended Posts

Chameleon 2380

 

preliminary OS X 10.10 support. NOT TESTED EDIT: CONFIRMED NOT WORK

 

here a 2379 version of Chameleon with 10.10 boot support

Also txt to BlackOSX (very fast!!!!) the pkg coming with the Icon support (default Theme)

 

pkg ->

i386 ->

the change made are into boot.c and gui.c source code.

 

boot.c

199 	// Jump to kernel's entry point. There's no going back now.200	if ((checkOSVersion("10.7")) || (checkOSVersion("10.8")) || (checkOSVersion("10.9")) || (checkOSVersion("10.10")))201	{
246		// Lion, Mountain Lion Mavericks and Yosemite prelink kernel cache file247		if ((checkOSVersion("10.7")) || (checkOSVersion("10.8")) || (checkOSVersion("10.9")) || (checkOSVersion("10.10")))248		{
gui.c

+    iDeviceHFS_yos,+	iDeviceHFS_yos_o,
NOTE I don't have the ability to test it (I don't have Yosemite)

 

Have FUN!

 

ErmaC

  • Like 5
Link to comment
Share on other sites

I did not test, but you probably need to edit bootstruct.c as well

if ((gMacOSVersion[0] == '1') && (gMacOSVersion[1] == '0')
&& (gMacOSVersion[2] == '.') && ((gMacOSVersion[3] == '7' || gMacOSVersion[3] == '8' || gMacOSVersion[3] == '9')
|| (gMacOSVersion[3] == '1' && gMacOSVersion[4] == '0')))
  • Like 1
Link to comment
Share on other sites

I think its gonna take more than that because "mach_kernel" has been renamed to "kernel" and moved to a different location (I think).

 

Clover is working because it loads Yosemite's native boot.efi which locates and loads the new kernel.

  • Like 2
Link to comment
Share on other sites

I think its gonna take more than that because "mach_kernel" has been renamed to "kernel" and moved to a different location (I think).

 

Clover is working because it loads Yosemite's native boot.efi which locates and loads the new kernel.

We can define the kernel file name and location with:

kernel=<kernel-file-path>

 

Or wouldn't it work?

Link to comment
Share on other sites

I managed to load up all kexts with chameleon by using this boot args: "kernel kext-dev-mode=1 -v", and using applekextexludelist kext from 10.9.

("kernel" is the new kernel file name, I copied it to the root of the drive like before)

 

But after loaded all kexts, it's immediately reboots. It throws a message but it appears just for a tiny moment then boom reboots so I can't read it.

 

edit: well, after several times seen, I think it's just the "starting darwin x86/64" and the "boot-args=......" lines that I see.

Link to comment
Share on other sites

 

I did not test, but you probably need to edit bootstruct.c as well

if ((gMacOSVersion[0] == '1') && (gMacOSVersion[1] == '0')
&& (gMacOSVersion[2] == '.') && ((gMacOSVersion[3] == '7' || gMacOSVersion[3] == '8' || gMacOSVersion[3] == '9')
|| (gMacOSVersion[3] == '1' && gMacOSVersion[4] == '0')))

 

I hope the problem is tiny like this and will be fixed soon.

Link to comment
Share on other sites

I think its gonna take more than that because "mach_kernel" has been renamed to "kernel" and moved to a different location (I think).

 

Clover is working because it loads Yosemite's native boot.efi which locates and loads the new kernel.

is located here: Essentials.pkg / System / Library / Kernels / kernel

 

Fabio

Link to comment
Share on other sites

Can someone try this Chameleon version (is the 2378)? Has some other fixes for Yosemite

 

 

EDIT: Doesn't work.

Link to comment
Share on other sites

Tip: Setup a VM and step through the kernel because that is the only way to figure out where it reboots.

 

It will reboot even without kext loaded so this is definitely a kernel incompatibility issue.

 

p.s. I started to publish the stuff that I figured out about the OS X 10.10 Yosemite DP1 kernel(cache) in my blog.

  • Like 2
Link to comment
Share on other sites

Update: I made some progress. Got the Apple logo displayed on a grey screen. I'll have another stab at it tomorrow or Sunday at the latest.

Where does it gets stuck? (in verbose)

Link to comment
Share on other sites

It stops there where I insert a breakpoint.

 

Edit: Here is a  proof of concept:

 

1) Search for (in kernel file): 48 C7 05 52 64 1E 00 00 00 00 00 5D C3 

2) Replace with: 48 C7 05 52 64 1E 00 00 00 00 00 5D F4 

3) Boot Chameleon

 

What we do here is that we change the return instruction (0xC3) at the end of _PE_init_platform into a halt instruction (0xF4).

 

Update: The reboot has been located and I am working on a fix/workaround!

 

I need at least three more IORegistryExplorer dumps (running Clover) so that I can verify stuff.

Feel free to e-mail me your dump if you don't want it exposed in public (see:ssdtPRGen.sh for my e-mail address).

  • Like 8
Link to comment
Share on other sites

Good news guys. I modified my private RevoBoot repository and now it boots the InstallESD.dmg without a reboot. Need to document this, but this problem sorted !!!

 

Note: I have a new born son and want to spent time with him and my wife so laters ;)

 

p.s. No. The public repository of RevoBoot cannot boot Yosemite so don't even go there. Just wait for Chameleon to support Yosemite.

  • Like 7
Link to comment
Share on other sites

×
×
  • Create New...