Jump to content
Sign in to follow this  
AsereBLN

Chameleon / PC-EFI Booter

Recommended Posts

Asere, I tried the new boot file, and it works OK. Problem is, with the new UUID, alot of my apps don't work... For example, iTunes wants to disallow all my iPhone apps, because it thinks I'm on a new computer. Any way around this?

I think I used up all 5 of my "allowed computers" with all this Hackintoshing-around that Ive been doing...

Share this post


Link to post
Share on other sites

Knotty,

Wouldn't replacing Asere's UUID with your own or additional PlatformUUID.kext with your old UUID solve the problem?

Share this post


Link to post
Share on other sites
Thanks for the modified bootloader, works great on both my boards. You forgot to mention that you also fixed Nvidia 9400 GT, no more unknown card in System profiler when using GraphicsEnabler option.

You are right. Forgot to mention it. Added some nVidia DevIDs, for instance the 55nm 9400 (0x641).

Share this post


Link to post
Share on other sites
Works great. Only issue is that my new Radeon 4870, while supported, refuses to display the proper resolution at the bootloader screen - it didn't do this with my GeForce 8800GTS. The resolution (1920x1200) is correct once Mac OS X is fully booted.

This is more likely an issue with the card/BIOS itself than it is with the bootloader, since the diagnostic information displayed during startup appears squashed as well. It's not much of a concern, really.

Do you have this issue only with my booter, or also with PCEFI-10.5? Because I haven't changed anything regarding ATI.

Share this post


Link to post
Share on other sites
Asere, I tried the new boot file, and it works OK. Problem is, with the new UUID, alot of my apps don't work... For example, iTunes wants to disallow all my iPhone apps, because it thinks I'm on a new computer. Any way around this?

I think I used up all 5 of my "allowed computers" with all this Hackintoshing-around that Ive been doing...

I know about it and this is due OS X setups the PlatformUUID. Look at the code in IOPlatformExpert.cpp:

void IOPlatformExpert::registerNVRAMController(IONVRAMController * caller)
{
OSData * data;
IORegistryEntry * entry;
OSString * string = 0;
uuid_string_t uuid;

[COLOR="Green"]entry = IORegistryEntry::fromPath( "/efi/platform", gIODTPlane );
if ( entry )
{
data = OSDynamicCast( OSData, entry->getProperty( "system-id" ) );
if ( data && data->getLength( ) == 16 )[/COLOR]
{
SHA1_CTX context;
uint8_t digest[ SHA_DIGEST_LENGTH ];
const uuid_t space = { 0x2A, 0x06, 0x19, 0x90, 0xD3, 0x8D, 0x44, 0x40, 0xA1, 0x39, 0xC4, 0x97, 0x70, 0x37, 0x65, 0xAC };

SHA1Init( &context );
SHA1Update( &context, space, sizeof( space ) );
SHA1Update( &context, data->getBytesNoCopy( ), data->getLength( ) );
SHA1Final( digest, &context );

digest[ 6 ] = ( digest[ 6 ] & 0x0F ) | 0x50;
digest[ 8 ] = ( digest[ 8 ] & 0x3F ) | 0x80;

uuid_unparse( digest, uuid );
string = OSString::withCString( uuid );
}

entry->release( );
}

[COLOR="Red"]if ( string == 0 )
{
entry = IORegistryEntry::fromPath( "/options", gIODTPlane );
if ( entry )
{
data = OSDynamicCast( OSData, entry->getProperty( "platform-uuid" ) );[/COLOR]
if ( data && data->getLength( ) == sizeof( uuid_t ) )
{
uuid_unparse( ( uint8_t * ) data->getBytesNoCopy( ), uuid );
string = OSString::withCString( uuid );
}

entry->release( );
}
}

if ( string )
{
getProvider( )->setProperty( kIOPlatformUUIDKey, string );
publishResource( kIOPlatformUUIDKey, string );

string->release( );
}

publishResource("IONVRAM");
}

The code pipes the system-id through SHA, hence the PlatformUUID is completely different than the SystemUUID provided by the SMBIOS. Creating an /options node and injecting platform-uuid wasn't successful. OS X trashes the node and I got the Firewire "Full Secure..." issue back. Didn't had time to investigate this further. Maybe there is another way to get platform-uuid into the options node.

system-id + SHA1 = PlatformUUID seems the most "mac-like" way to go, but yes it breaks with Apps which are using an "old" UUID injected by PlatformUUID.kext.

Share this post


Link to post
Share on other sites

Here is another version of my Booter. It adds i5/i7 (cpu_model: 30) support.

If you have or plan to use an i5/i7, then use this Booter.

Now also with a patch against PC-EFI 10.5. Forgot it last time.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.