Jump to content

Chameleon RC4 is out!

* * * * * 18 votes

  • Please log in to reply
1054 replies to this topic

#61
asadev

asadev

    InsanelyMac Protégé

  • Members
  • Pip
  • 39 posts
Im not sure why but RC4 doesnt seem to work correctly for me.

Im getting loads of applications just quiting on me randomly. I put it sleep and when i woke it up finder kept relaunching when i clicked on the desktop.

I deleted platformuuid.kext and removed the smuid in the smbios.plist
I also added the systemid of 00000000-0000-1000-8000-001D7D0A54E4 which is my ethernet address on the end in the boot.plist.

Im i doing this correctly?

RC3 + platformuid works perfectly though.

Complete Retail install with the hardware below.

Thanks

#62
digital_dreamer

digital_dreamer

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,077 posts
  • Gender:Male
  • Location:Missouri USA

The only way to have a reproducible, unique platform id and system-id at boot level was to permit to change the system-id. Fortunately, doing this also permit to have a unique and reproducible platform-id that is created from this system-id.
What does Platformuid.kext is publishing the platform ID as a resource, by using the IOKit services that we don't have yet at boot time (according to assembly code, that I disassembled just by curiosity).
AFAIK, it is not possible to do that at boot level, and should not be necessary anyway to ensure that your config will have unique and reproducible system-id and platform-id's.

Thanks for that response, rekursor.

Got another question and this is more in regards to how real Macs work:
If you have more than one OS X install on your Mac, is the platform UUID the same for them or different?
Plus, where does the system ID come from, from the EFI firmware?

Many thanks in advance.
MAJ

#63
rekursor

rekursor

    InsanelyMac Sage

  • Retired Developers
  • 369 posts

If you have more than one OS X install on your Mac, is the platform UUID the same for them or different?
Plus, where does the system ID come from, from the EFI firmware?

Yes it works, that's the beauty of it, I have several OS X partition among my HDDs and the platform-uid is kept the same.
The system-id should could from the hardware config, probably the smc configuration, but I'm not sure, though I doubt that it is in the EFI firmware that should be the same for all macs of a particular model.

#64
Ulysse

Ulysse

    InsanelyMac Protégé

  • Members
  • Pip
  • 6 posts

Anyone care to tell me how it went with V3?


Well, it went flawlessly.
Its even got me rid off some error messages in the fast booting Chameleon windows ;-)

But I cannot find a way to point it out my Karmic Koala partition etx4 formated style....

If anyone can share how to add this into Chameleon ... it would be nice.

;-)

#65
Master Chief

Master Chief

    Just Chief

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,176 posts
  • Gender:Male

Yes it works, that's the beauty of it, I have several OS X partition among my HDDs and the platform-uid is kept the same.
The system-id should could from the hardware config, probably the smc configuration, but I'm not sure, though I doubt that it is in the EFI firmware that should be the same for all macs of a particular model.

Your latest and greatest is the one in post #26?

Did you change a lot of files? I'm asking because I want to port your patch to Revolution.

Thank you.

#66
rekursor

rekursor

    InsanelyMac Sage

  • Retired Developers
  • 369 posts

Your latest and greatest is the one in post #26?

Did you change a lot of files? I'm asking because I want to port your patch to Revolution.

Thank you.

Hi MasterChief,

Yes it is my v2 (which also has been integrated in Dr. Hurt recently in his new/unofficial chameleon installer).

1. My system-id change reuses existing parsing function code and only extends it to the UUID format parsing, so the code change is very compact and can be diffed from original RC4 easily in i386/libsaio/fake_efi.c

2. My PciRoot automatic detection change that I directly injected from the PCEFI10.5 w/ Chameleon sources is somewhat trickier to add as it involves adding pciroot.c/h files to the distrib and add the pciroot.c file to the makefile.
Then I use it I believe only in i386/libsaio/pci.c (but you might want to check /confirm that)
Search for the use of getPciRootUID() for quickly isolating the changes.

Sorry that I did find the time yet to generate a diff for that mods.

PS: I read a lot of topics related to your work on the DSDT files, I understood then applied them to my Gigabyte P55 mobo successfully, so thank you for this great work as well : now I can sleep and wake-up gracefully [smile] !

#67
Master Chief

Master Chief

    Just Chief

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,176 posts
  • Gender:Male

Hi MasterChief,

Yes it is my v2 (which also has been integrated in Dr. Hurt recently in his new/unofficial chameleon installer).

1. My system-id change reuses existing parsing function code and only extends it to the UUID format parsing, so the code change is very compact and can be diffed from original RC4 easily in i386/libsaio/fake_efi.c

2. My PciRoot automatic detection change that I directly injected from the PCEFI10.5 w/ Chameleon sources is somewhat trickier to add as it involves adding pciroot.c/h files to the distrib and add the pciroot.c file to the makefile.
Then I use it I believe in i386/libsaio/pci.c (but you might want to check /confirm that)
Search for the use of getPciRootUID() for quickly isolating the changes.

Sorry that I did find the time yet to generate a diff for that mods.

PS: I read a lot of topics related to your work on the DSDT files, I understood then applied them to my Gigabyte P55 mobo successfully, so thank you for this great work as well : now I can sleep and wake-up gracefully [smile] !

Thank you rekursor!

And I think to have good news, because I changed my mind. I'm no longer working with the ancient old Chameleon 1.0 source code. Now using Chameleon RC4 instead – to make everyone happy. I guess this qualifies for simply downloading your work, the complete source code, and dump my silly changes in it. Right?

#68
rekursor

rekursor

    InsanelyMac Sage

  • Retired Developers
  • 369 posts

Thank you rekursor!

And I think to have good news, because I changed my mind. I'm no longer working with the ancient old Chameleon 1.0 source code. Now using Chameleon RC4 instead €“ to make everyone happy. I guess this qualifies for simply downloading your work, the complete source code, and dump my silly changes in it. Right?

You're welcome! Yes I believe it makes sense as RC4 also includes other great improvements for our boot system, so it is a 'clean' and up-to-date base to start from ...

#69
Beerkex'd

Beerkex'd

    Content Provider

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 3,000 posts
  • Gender:Male
  • Location:Belo Horizonte - Brazil
Woah Nelly. Looks like the Revolution has been postponed.


I also added the systemid of 00000000-0000-1000-8000-001D7D0A54E4 which is my ethernet address on the end in the boot.plist.
Im i doing this correctly?


Yes but it doesn't work the way you think. Read post #22 again, and if you still don't get it, read post #60.

#70
LocusOfControl

LocusOfControl

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 396 posts
  • Gender:Male
  • Location:SG9tZSBvZiB0aGUgbWVhdCBhbmQgcG90YXRvIHBpZQ==
Hi

I am reducing the number of third party kexts that I use, in EFI/Extra/Extensions I'm currently using FakeSMC and
PlatformUUID only but would like to get rid of the latter and provide a degree of future proofing stability for iTunes

Currently I have 3 UUID's set in the chameleon area

I have the UUID of my hard disk which is used at boot (boot-uuid)
I have SMUUID in smbios which doesn't seem to be used
I have a PlatformUUID in the kext of same name and is recorded as HardwareUUID in system profiler

Currently I have boot-uuid = PlatformUUID = HardwareUUID and this works and has since the first successful clean SL

PlatformUUID also shows up in IORegistryExplorer as being defined by PlatformUUID.kext

If I disable PlatformUUID and boot I get a new generated UUID for the value HardwareUUID in SProfiler.
This implies HardwareUUID is set from PlatformUUID.kext and not boot-uuid

Also I get the CFGError 35 in logs and Java compilers etc (eg Eclipse). ITunes no longer recognises me and requires
new EULA. However, TimeMachine still seems to work. If I restore PlatformUUID and reboot the Itunes and Error 35
issue is resolved.

My concern is the following, I use AppleTV and messing with UUID's messes with the authorisation on iTunes and
following the upgrade to SL I have 'lost' some of my purchases from iTunes and would like to avoid repetition of this.
(Each time my HD was formatted a new UUID was generated requiring a boot-uuid to be set to avoid waiting for root
device hang)

Just to clarify, are we saying that;

1 - PlatformUUID = HardwareUUID
2 - boot-uuid SHOULD NOT EQUAL PlatformUUID
3 - PlatformUUID is based on my en0 mac address?
4 - SMUUID in smbios is irrelevant


(I did read that some old software apps use the en0 mac address as a primitive encryption key as all macs have
an en0 with a reasonably permanent value - except when changed because of hardware failure. I do have an example of one of these games which is tied to the en0 mac address.
Using mac address would seem to provide some better degree of future proofing the necessary UUID as used by
iTunes)

Is there a limit to the number of times I can change PlatformUUID before I lose content on iTunes?
ie should I stick with what works rather than risk losing content


steve

#71
xtraa

xtraa

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,049 posts
  • Gender:Male
  • Location:Hamburg

For all that need an installer, I made one from an old one I found on my HD. :P


Posted Image

Download:
http://www.megaupload.com/?d=0LV7FBY3


Cheers,

xtraa

#72
digital_dreamer

digital_dreamer

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPipPip
  • 1,077 posts
  • Gender:Male
  • Location:Missouri USA

Just to clarify, are we saying that;

1 - PlatformUUID = HardwareUUID
2 - boot-uuid SHOULD NOT EQUAL PlatformUUID
3 - PlatformUUID is based on my en0 mac address?
4 - SMUUID in smbios is irrelevant.


1 - PlatformUUID = HardwareUUID
YES - they are the same thing.

2 - boot-uuid SHOULD NOT EQUAL PlatformUUID
CORRECT - they are not the same thing. boot-uuid only identifies to the kernel the booting partition, nothing else.

3 - PlatformUUID is based on my en0 mac address?
I don't know if this is really important. Appears to be Apple's method and makes sense since it is a unique hardware ID and they want each of their systems to be unique to protect media licensing for iTunes. It would be impossible for any two systems to have the same ID. In our case, it's not really a issue.

4 - SMUUID in smbios is irrelevant.
Probably. I've never heard of it actually working in the smbios.plist.

#73
LocusOfControl

LocusOfControl

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 396 posts
  • Gender:Male
  • Location:SG9tZSBvZiB0aGUgbWVhdCBhbmQgcG90YXRvIHBpZQ==
Cool, thanks DD for sorting that out

Anyone know what the impact on iTunes may be? I think I heard that you can have 5 installs, does this mean if
you change PlatformUUID 6 times you may lose content?

edit : if your answer to q3 is correct then there is no benefit to me changing it now, however I would need to keep
it constant if ever my boot-id changes for whatever reason

#74
sk1nhead

sk1nhead

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 111 posts
  • Location:Manila
just deauthorize/authorize it before changing anything, that's what I do to be sure because you can have only 5 authorize computer allowed in one account and you have 1 (one) reset in a year (reset means iTunes will deauthorize all the 5 computers).

HTH

#75
LocusOfControl

LocusOfControl

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 396 posts
  • Gender:Male
  • Location:SG9tZSBvZiB0aGUgbWVhdCBhbmQgcG90YXRvIHBpZQ==
Ta very much ;-)

#76
LocusOfControl

LocusOfControl

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 396 posts
  • Gender:Male
  • Location:SG9tZSBvZiB0aGUgbWVhdCBhbmQgcG90YXRvIHBpZQ==

Ta very much ;-)



I'm probably being a bit slow but while I do get a HardwareUUID appearing in SystemProfiler it is not
like the value I put with the SystemID flag which was based on my mac address for en0.

I guess it doesn't matter as I have previously de-authorised my computer from iTunes so I guess the new
UUID is as good as any?

I notice that the value is shown in IOPlatformUUID as opposed to PlatformUUID

Out of curiosity, I have a couple of silly questions if I may?

1 - how do we know that everyone has a different UUID - is there some random time seeding?
2 - where is the generated value persisted between boots to prevent a new one being written?


regards
Steve

#77
sjorss

sjorss

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts
Does this version support ATI Radeon HD 4670 (with a VGA Monitor, dvi2vga)? Netkas' bootloader gave me a black screen...

#78
Beerkex'd

Beerkex'd

    Content Provider

  • Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 3,000 posts
  • Gender:Male
  • Location:Belo Horizonte - Brazil

I'm probably being a bit slow but while I do get a HardwareUUID appearing in SystemProfiler it is not like the value I put with the SystemID flag


Again?!

This is the expected behavior. Read Post #22 and post #60.

#79
blwegrzyn

blwegrzyn

    InsanelyMac Protégé

  • Members
  • Pip
  • 9 posts
can chameleon be used to install leopard in linux KVM?

#80
Asere

Asere

    InsanelyMac Protégé

  • Members
  • Pip
  • 23 posts
Hi folks,

I want to announce it at Forum too. I've made some bufixes/ modifications to Chameleon RC4. Normally I'm posting only at the (ex ;-) efixusers.com forum. So for the lastest development and more complete infos check over there.

New Features:
  • Dynamic memory parameter detecting and injecting like Frequency, Type (DDR2, DDR3), Manufactor, Partnumber, Serialnumber. You can remove all memory related stuff from smbios.plist.
  • You can build Chameleon with GUI-support without the need of an embedded theme (Never understood why this should be necessary). The Booter is a lot smaller now. Only 160 kBytes.
  • Platform UUID is taken from the BIOS (UUID from SMBIOS Table 1). You can remove PlatformUUID.kext, SMUUID from smbios.plist and also System-ID from com.apple.Boot.plist.
  • Dynamic PCI-Root-UID detection from PCEFI 10.5
  • Duvell300's FACP Restart Fix added (from here)

Bugfixes:
  • First of all I fixed the stupid bug with the fixed Platform UUID.
  • Fixed a bug regarding PCI-Root-UID different than 0
  • Fixed a bug regarding the detection of the CPU
  • Fixed dozens of possible buffer overflows
  • and all the bugs I forgot to mention

Changes:
  • Filenames configured in com.apple.Boot.plist (DSDT=..., SMBIOS=...) must be given with the full path. The Booter does not check automatically the Extra Folder. So if you used DSDT=mydsdt.aml and the mydsdt.aml file is in the Extra folder, then you must use now DSDT=/Extra/mydsdt.aml.
  • ATI and nVidia Video-ROM-Files must be renamed to <deviceid>_<vendorid>.rom and must be put into the Extra folder. vendorid and deviceid as 4-digit hex values without a leading 0x. For instance, a nVidia 9400 GT (55nm) has the vendorid "0x10DE" and the deviceid "0x0641", so the filename must be "10de_0641.rom".

The memory parameter detecting should work with P35/X38/X48/P45 memory controllers and the builtin memory controllers of the Core i5/i7 CPU's. Reading of memory SPD (Serial Presence Detect EEPROM) data should work on P55, ICH10® and ICH9. You must remove all memory related keys from smbios.plist (SMmemmanufacter_X, SMmempart_X, SMmemserial_X, SMmemspeed & SMmemtype).

If you use the Booter without the embedded theme, then you must supply a Theme in Extra/Themes/ to have GUI support. The default theme name is "Default". You can configure the theme to be used with Theme="Name" in com.apple.Boot.plist.

Platform UUID is setup by injecting /efi/platform/system-id property. The UUID value from SMBIOS table 1 is used as system-id (it's mac-address based => it's unique). No need for SystemID/RandomID in com.apple.Boot.plist or PlatformUUID.kext... If your BIOS does not provide an UUID (I've never seen a BIOS so far, which does not provide a UUID), then you can configure the UUID with SMUUID in smbios.plist. If you set EfiPlatformSystemID=No in com.apple.Boot.plist, then the system-id is not injected into the IORegistry. Use this if you want/need to use PlatformUUID.kext or something similar.

Dynamic PCI-Root-UID should work if your DSDT defines the UID like this: Name (UID, <value>). Default PCI-Root-UID is 0. You can configure the PCI-Root-UID to be used with PCIRootUID=<value> in com.apple.Boot.plist (-pci0, -pci1, PciRoot... does not work anymore).

FACP RestartFix is enabled with RestartFix=Yes in com.apple.Boot.plist.

Attached Files







0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy