Jump to content

1 Screenshot

About This File

Enoch

Latest revision of my Chameleon bootloader branch.

 

Not able to boot AFPS yet....

 

Please don't upload it on other servers and don't repack it, thank you.

- Installer PKG

- Binaries format (Manual install)

Please don't upload it on other servers and don't repack it, thank you.

 

Chameleon bootloader credits goes to Chameleon Team http://forum.voodooprojects.org

 

Changelog: http://forge.voodoop...e/changes/HEAD/

 

This revision of Enoch contain the upcoming FileNVRAM revision 1.1.5 (RC8)

Credits to Micky1979

 

----------------------------------------

Modulo_FileNVRAM.png

All credits go to meklort and cosmo1t.

FileNVRAM copyright © 2013 xZeneu LLC. FileNVRAM is licensed under the Attribution-NonCommercial 3.0 Unported license.

Please see the license file for details

More Info: xZenue

----------------------------------------

 

Language Translation:

lang.png

For on-line Chameleon language package resource edit

>> Pootle

 

 

 

 

Hi all translators,You can help us to translate the Chameleon Project.You need to have gettext utilities installed.You can install them :* With MacPorts or Finkor* With the package http://dl.dropbox.com/u/112112/Chameleon.Dev/gettext-0.18.1.1.dmgYou need to change your ~/.bashrc or ~/.bash_profile to add the path to the utilities:# MacPorts Installer: adding an appropriate PATH variable for use with MacPorts.export PATH=/opt/local/bin:/opt/local/sbin:$PATH# Finished adapting your PATH environment variable for use with MacPorts.# MacPorts Installer: adding an appropriate MANPATH variable for use with MacPorts.export MANPATH=/opt/local/share/man:$MANPATH# Finished adapting your MANPATH environment variable for use with MacPorts.You must also have a PO editor like Poedit: http://www.poedit.net/download.phpThe files to translate are in package/po directory.Open them with your PO editor and translate.If you want to add a new language copy the package/po/chameleon.pot to po/$lang.po where $lang isthe new language you want to add.Example to add belgian language:# cp package/po/chameleon.pot package/po/be.poNow you can start translating the new po file with your PO editor

 

Pls translate/complete it.

 

Link here on InsanelyMac (Italian only): Enoch Bootloader

 

Enjoy

 

ErmaC


What's New in Version r2922   See changelog

Released

  • kernel patchers updated to boot Catalina (credits to: CrazyBirdy)
  • Added Catalina Icons detection.

Enoch-rev.2922.zip

  • Like 9
  • Thanks 6

User Feedback

Recommended Comments



Is there a download available for Enoch r2795-i386 files? I need to fix a corrupt bootloader. If not I'll use the the latest version rev. 2530.

Link to comment
Share on other sites

Hi! may I know if rev. 2795.pkg has not been updated to support El Capitan 10.11.3 yet?

 

I got the message "This package is incompatible with this version of OS X and may fail to install" and the installation is failed.

 

Thanks!

Link to comment
Share on other sites

Hi! may I know if rev. 2795.pkg has not been updated to support El Capitan 10.11.3 yet?

 

I got the message "This package is incompatible with this version of OS X and may fail to install" and the installation is failed.

 

Thanks!

This mean that you have to disable SIP

Link to comment
Share on other sites

This mean that you have to disable SIP

However, I checked the status and confirmed it is disabled by the USB installer drive with CsrActiveConfig=103

 

Configuration:

Apple Internal: disabled

Kext Signing: disabled

Filesystem Protections: enabled

Debugging Restrictions: enabled

DTrace Restrictions: enabled

NVRAM Protections: enabled

Link to comment
Share on other sites

Filesystem Protections: enabled

 

CsrActiveConfig=3 is better

Thank you very much! It works now.

Link to comment
Share on other sites

Hi and many thanks for your help with the Enoch Bootloader. I have successfully installed 10.11.3 on my old Dell optiplex 745 and it is running superb!

 

But, I am unable to boot into a cloned back up drive (not showing in BIOS or boot loader screen).

 

My csrutil status output is:

 

System Integrity Protection status: enabled (Custom Configuration).

 

Configuration:

Apple Internal: disabled

Kext Signing: disabled

Filesystem Protections: disabled

Debugging Restrictions: enabled

DTrace Restrictions: enabled

NVRAM Protections: disabled

 

Not sure if the SIP is relating to my issue but I have tried to disable the SIP but so far no luck. Here is a copy of my Chameleon Boot file plist:

 

<key>CsrActiveConfig</key>

<string>67</string>
<key>DSDT</key>
<string>/Extra/DSDT.aml</string>
<key>EthernetBuiltIn</key>
<string>Yes</string>
<key>ForceHPET</key>
<string>Yes</string>
<key>GenerateCStates</key>
<string>Yes</string>
<key>GeneratePStates</key>
<string>Yes</string>
<key>Graphics Mode</key>
<string>1680x1050x32</string>
<key>GraphicsEnabler</key>
<string>Yes</string>
<key>Kernel Flags</key>
<string>npci=0x2000 darkwake=0 nvda_drv=1</string>
<key>KernelBooter_kexts</key>
<string>Yes</string>
<key>SMBIOS</key>
<string>/Extra/smbios.plist</string>
<key>SystemType</key>
<string>1</string>
<key>Theme</key>
<string>LoginToLion</string>
<key>Timeout</key>
<string>2</string>
<key>USBBusFix</key>
<string>Yes</string>
<key>UseKernelCache</key>
<string>Yes</string>
<key>device-properties</key>

 

If I could ask for some help on how to disable the SIP on my system or if anyone knows how I can enable chameleon to identify my connected USB cloned drive I would appreciate it greatly :)

 

Again, many thanks for this boot loader - its a wonderful tool and gives these old systems a new lease of life!

 

Dan

Link to comment
Share on other sites

@Dan_Marshall, cloned Volumes have no Chameleon bootsectors installed, that's why you can't boot. You need the bootloader on it.

Also you are wrong writing KernelBooter_kexts in the org.chameleon.Boot.plist.. must be in /Extra/kernel.plist

also UseKernelCache = Yes has no sense (you want to load an old and not updated cache at any cost?).

Use CsrActiveConfig = 3 it's enough to have El Capitan runnings like Mavericks (ie no File System Protection + can load unsigned or modified kexts).

Onother things is that you don't need to specify:

<key>DSDT</key>
<string>/Extra/DSDT.aml</string>

or

<key>SMBIOS</key>
<string>/Extra/smbios.plist</string>

if they already are inside the Extra folder, you don't need to specify their paths

Link to comment
Share on other sites

Hi ! Congrats for your work on Enoch.

I'm using r2795. Whatever I do I have "error parsing plist file" just before the gui.

Tried chmod 777 or 666 (as the app does by default) and chown root:wheel on ocbp, but still have the error.

Also CsrActiveConfig is miswritten in the app menu, and in the ocbp file created : it writes Crs instead of Csr...

Globally it is slower than Chameleon before the GUI, and after OS selection,

maybe it is related to the error ?

Thanks

Link to comment
Share on other sites

chmod do nothing since at boot time "root" does not exist.... but if say "error parsing plist file" maybe the ocBp is corrupted?

Link to comment
Share on other sites

Yes I suspected that chmod 'd be useless, but out of ideas, I tried...

How would I check that it's corrupted ? I mean, I tried opening it with plistEditor without any problem, I also tried to boot on a fresh "extra" folder (created from the installer with minimum flags)

removed kernel.plist even removed smbios and themes, so that no other plist files where there except ocBp, but to no avail, still "error parsing..."

And that doesn't seem to prevent the bootloader to take any flag into account... so everything seems fine, but a bit sloooow...

how could the bootloader output an error and still be able to read the whole file properly ?

Link to comment
Share on other sites

 

how could the bootloader output an error and still be able to read the whole file properly ?

 

I'm inclined to say that he can't:

//==========================================================================
// ParseXMLFile
// Modifies the input buffer.
// Expects to see one dictionary in the XML file.
// Puts the first dictionary it finds in the
// tag pointer and returns 0, or returns -1 if not found
// (and does not modify dict pointer).
// Prints an error message if there is a parsing error.
//
int ParseXMLFile( char *buffer, TagPtr *dict )
{
	long       length, pos;
	TagPtr     tag = 0;
	pos = 0;
	char       *configBuffer;

	length = strlen(buffer) + 1;
  
	configBuffer = malloc(strlen(buffer)+1);
	if (!configBuffer)
	{
		return -1;
	}
	strlcpy(configBuffer, buffer, length );

	while (1)
	{
		length = XMLParseNextTag(configBuffer + pos, &tag);
			if (length == -1)
			{
				break;
			}

		pos += length;

		if (tag == 0)
		{
			continue;
		}
		if (tag->type == kTagTypeDict)
		{
			break;
		}

		XMLFreeTag(tag);
	}
	free(configBuffer);
	if (length < 0) {
		error ("Error parsing plist file\n");
		return -1;
	}
	*dict = tag;
	return 0;
} 

the function appear to be well done and working since some years, so not sure was going on. BTW the parsing error can be also a single key in the plist, not necessarily about the entire file..

Link to comment
Share on other sites

I didn't mean to criticize your code, but thank you for your clear answer ! ;-)
What suprises me is that I get the error even with an untouched ocBp (created with release 2795)
I'll check with a previous version, but I'm almost sure the problem is elsewhere. I guess I miss something obvious...
Formerly I was using Chameleon 2716 on a 10.10.4 partition, and I just created a 10.11.4 partition, so Enoch is needed.
Here's how my file looks like
 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CsrActiveConfig</key>
    <string>103</string>
    <key>Default Partition</key>
    <string>hd(0,2)</string>
    <key>Graphics Mode</key>
    <string>1920x1080x32</string>
    <key>GraphicsEnabler</key>
    <string>Yes</string>
    <key>Kernel Flags</key>
    <string>npci=0x2000 nvda_drv=1</string>
    <key>KeyLayout</key>
    <string>pc-fr</string>
    <key>Theme</key>
    <string>Cap</string>
    <key>Timeout</key>
    <string>2</string>
</dict>
</plist>

Link to comment
Share on other sites

No worries this code was not done by me and probably is the same since 2010. That's why I said was I said.

Sure that is the ocBp?

Link to comment
Share on other sites

well I already tried to boot without all other plist files (kernel, smbios & themes...), just the untouched ocBp...

 

Unless... just a thought... does the bootloader check/parse every *.plist on every partition ??   8-/

Link to comment
Share on other sites

Unless... just a thought... does the bootloader check/parse every *.plist on every partition ??   8-/

Sure, it check all plist inside every Extra folder you have. Also because this is used to customize the OS you are attempting to boot... but to do that the bootloader neen to read it..

Link to comment
Share on other sites

Hi Micky, thanks again for your answer.

 

I expected the bootloader to check every "extra" folder. I was wondering if it could search/parse elsewhere... (System/Library/CoreService/ for instance, to check OS version...)

 

I narrowed my "investigation" to one guilty drive : a 3 To disk, which holds 2 partitions (they are clones of 2 mounted disks, that cause no error).

The 3 To disk, though it has no "extra" folder (neither hidden, nor in its EFI -which I suspected I might had forgotten-) causes the "error parsing plist file".

It contains plist files, but they are far far away in the folder tree (backup folders etc)... And they are clones of files from the 2 cloned disks which cause no error.

 

I think I'll try efi re-creation...

Link to comment
Share on other sites

Yes it looks/parse every SystemVersion.plist/com.apple.boot.plist in every partitions...also on the Recovery HD.. or any installer you have attached..

Link to comment
Share on other sites

Well I can't figure it.

I got it as far as the cloned disks are concerned : they're in a Mac Soft RAID, which is not accessible at boot : this is why those disks don't give the error.

 

Else, I removed the EFI partition from my 3To disk, recreated it with gpt, and searched every "extra" folder, "smbios.plist", "com.apple.Boot.plist", "org.chameleon.Boot.plist" in any subfolder of that disk, and compressed them to zip archives ...

 

But I still have the error at boot when this drive is connected (???)

 

Any clue ?

Link to comment
Share on other sites

Well, maybe I'll handle this another way : is there a way to limit the scan at boot to a specific device ?

For instance, it is possible to compile a version of Clover Bootloader that only scans the first Sata port.

Would something equivalent be possible with Enoch ?

Link to comment
Share on other sites

@oliviero sorry, I forgot to say that every kexts loaded contains a plist file that Enoch parse and load to the memory-map. Using the prelinkedkernel only those are in Extra/Extensions if any..

You cannot limit witch sata port will be scanned (as I know)

Link to comment
Share on other sites

Ok thank you

and not using /Extra/Extensions/, so that's not causing the error neither... :-(

I'll post here, if I find the answer

Link to comment
Share on other sites

found in the source code in Enoch/i386/libsaio/disk.c that the static bool named « getOSVersion »  scans for .IAProductInfo when no SystemVersion.plist /or ServerVersion.plist are found.

For some reason there was one version of this file at the root of my disk, which was causing the "error parsing plist file", I removed it, no more error (!)

 

I also added to org.chameleon.Boot.plist :

 

    <key>Scan Single Drive</key>
    <string>Yes</string>
 

And that key is still good, enoch now only scans the boot disk (I have 7 harddrives (data, no O.S), scanning them at everyboot was useless and slowing boot)

and now enoch boots fast enough for me (!)

 

Just sharing knowledge, in case anybody encounters the same problems. ;-)

Link to comment
Share on other sites


×
×
  • Create New...