Jump to content
4261 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

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

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

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?

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.

 

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.

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

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

 

 

EDIT: Doesn't work.

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

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

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
×
×
  • Create New...