Complete Chameleon v2 Documentation (Users Guide)

This is it folks. A complete documentation which covers functionality of Chameleon along with a guide on how to create your own theme. Its a must have especially if you want to troubleshoot or learn more about Chameleon. Thats right , I am bringing you this documentation
It was not made by me , but instead talented guys over at Xnu. I am just uploading this (with their permission of course) so that a lot of you guys can learn more about chameleon !
You may download it from here
Credits : XNU-Team (for the guide) and Galaxy (for allowing me to upload this).
Oh yeah one more thing , do not try to experiment with every command in the documentation. It may be fatal. If you’re being adventurous , feel free to explore otherwise just print it or store it in your Kindle as a reference for future use :p. Dont tell me that I’ve warned you

Rejoice Intel VE 10/100 Users ! (Snow Leopard)

Well I’ve decided to compile the kext and polish it up for Intel VE 10/100 Users. Generally , you can’t get Intel VE 10/100 to work with Snow Leopard as apple decided to drop support for it. It totally makes sense as none of the real macs use this adapter. Anyway, quite a number of people who are still using Intel 945P board and some variants of Intel 915P/G board and Intel 965 boards do have this adapter onboard.
Of course you can get this card to work by using an older IONetworkingFamily.kext , but thats not vanilla. what I’ve come up with is a Vanilla solution. That’s right , its for Intel VE 10/100 (or common known as Intel 855x Intel). To use it , you must be using OSX 10.6.x and above. This kext will only work in 32-bit kernel mode (not in pure 64-bit , it kinda works in 64-bit except that it just stays disconnected even if you plug the cable in).
You may download the kext by clicking here . After you’ve downloaded it you may place the kext either in /System/Library/Extensions or /Extra/Extensions or your EFI partition. It depends on your method of installation. If you want to stay as vanilla as possible , i would highly recommend you to stick the kext in /Extra/Extensions or your EFI Partition. You’ll have to rebuild your kextcache (or use pfix if you are not sure how). Reboot ! – Go to System preferences and you should see that it has found your adapter !

Legacy AppleACPIThermal & AppleACPIEC Kexts

Anyway here we go a patched AppleACPIThermal and AppleACPIEC (which is backported from 2005 , aka OSX 10.4.1 for OSX 10.6). You may ask – Why on earth you want to do that. Well , I’ve many reasons for doing so. The primary reason is for me to control the fan speeds , at least so that its not that noisy and mainly to activate Thermal sensors of the computer so that OSX sort of knows when to shut down the PC when its too hot . Technically you should get a warning saying that your PC is too hot and you should shut it off and wait for it to cool. These kexts are meant for laptops (portable computers) and netbooks alike . They DO NOT WORK ON DESKTOP COMPUTERS
So what on earth is EC (Electronic Controller) and Thermal Zone ?
Basically how it works is by using pure ACPI calls. I’ve managed to get some of the idea , on how it works. Electronic Controller is something like homeostasis , i.e when your blood sugar content is high – how your body brings it down . Same goes to your laptop. If it senses that the laptop is too hot , it tries to bring down the temperature by cutting down on power consumption (i.e sending HALT commands or forcing the CPU to go into full energy-saving mode , going into standby automatically , cutting down GPU power by half , etc) . Real macs do have Electronic controller as well , its just that Apple made it to work with EFI and with their EC only , for the rest of us – we’re still using traditional ACPI Method. This is where both of the kexts come into play ! (more after the jump)
Read More

Tip : Troubleshooting Random Kernel Panics

Most of the time , I get e-mails from folks on how to troubleshoot a kernel panic which occurs all of a sudden. I am not talking about pre-boot ones but the kernel panics which occurs in the middle of OSX. You’ll get the fancy Please reboot your PC screen. But that does not help in troubleshooting or find the root problem – especially if you want to troubleshoot sleep related problem. I’m talking about OSX insomnia !
To do this , its very simple – all you have to do is
1. (Re)Boot your PC
2. When you’re in the Chameleon menu (aka when count down starts) hit Tab once
3. Then type (without quotes) “debug=0x144” or “debug=0x14e” . This will give you a traceback which is useful for you on understanding what is causing the kernel problem. Once you’ve found the cause you may then seek in forums on how to rectify it

Empire EFI v 1.085 is out

Behold , I’ve released the new Empire EFI which is far better then any of its predecessors. However it comes along with new changes which should help both of us , you and me and everyone else. Thus making an easier installation. I’ve taken previous constructive comments and criticism and integrated it to my new Empire EFI v 1.085. Think of it as the first few steps that I’ve taken towards moving to Empire EFI v.109. these are some of the minor changes as I am moving it towards a new direction. I am planning to include more documentation which covers more and more aspect of the operating system
Read More

Compiling Chameleon – A Newbie's HowTo

In this tutorial , we’ll be exploring on how to compile your very own Chameleon. I’ll try to be bit more straight forward. The reason why I am writing this is that I just want folks to know on how to compile Chameleon and its my part on showing on how I made Empire EFI. Yep , thats right folks. I’ll be also teaching you on how to update Chameleon. 2-in-1 !
Shall we ? Uh okay I’m ready whenever you’re.
Note : I’ll be making this a recipe instead 😛
More after the jump 😛
Read More

Getting Fn Toggle key to work on HackBooks

Well, for over a week. I was furiously trying to battle out on how to get Fn Key Toggle to work on our HackBooks. The main reason is that I dislike the idea of pressing Fn + F1 to get brightness or special function keys to work. In Mac , you’ve an option to toggle it but then it does not work on Hackint0shes as Mac uses USB Keyboard and our Internal Laptop keyboard and mouse are still based on legacy PS/2. Anyhow it took me a long time to figure it out on how to get it to work , and I’ve a working solution for Snow Leopard (for 32-bit Kernel only as I’ve compiled the driver for 32-bit , you may however compile it for 64-bit) . and Leopard.
The reason why I made it for 32-bit is that Real Macs use 32-bit kernel , thats the main reason why I am sticking with 32-bit. Anyhow , before we get our hands messy. There are few things that you should take into account. Firstly , you must have the ability to patch and modify your dsdt as we would be making slight changes to it to reflect few things. Secondly , you need to know how to recovery in case of screw ups. Thirdly , stop posting stupid comments such as “OMG please patch my DSDT”. I am not going to entertain such requests , however if you’ve other suggestion or better approach feel free to post a comment or mail me directly.
Currently this guide is not for newbies or those who do not have any clue on what they are doing as I did not explain on how to fix permissions , generating mkext , replacing kernel extensions , getting dsdt , compiling dsdt.  Be sure to have the basic knowledge of it first before attempting it !
Here are few things that you need to grab :-
KeyReMap4Macbook (patched by a guy in Vodooo forums) to include support for PS 2 Devices otherwise it would not work. Its vital for us to install this first , as not only it gives us the chance to modify keys in our hackbook but it also enables certain functions tow ork
ApplePS2Keyboard.kext (I’ve patched this manually , by collecting few patches from Vodooo forum and Meklort’s Dell Mini 9 keyboard. The problem with his its that its made to Dell specific , so I removed few things and made it a bit specific for Wind and other general netbook). It behaves like HID Devices meaning that these applications which allows 3rd party addon to behave like the way we want . (Source Code)
Note – VodooPS2 Kexts may just work fine as well. However the original ApplePS2Keyboard.kext may not work as it does not follow some of HID property thingy that we need it to get it up and working
FunctionFlip – For some reason the new version does not work , it does not scan for legacy devices instead it focuses on USB Devices. I guess the author made a right choice as only Intel macs are using USB Keyboard. anyhow I’ve managed to patch it for 32-bit. I am not too sure about 64-bit , but anyway System Preferences would run in legacy mode , so its not a big issue. You can obtain the patched copy here. It just makes sure it sees PS2 Keyboard as an Apple USB Keyboard , thus allowing it to work.
The DSDT diff – you can obtain it from here. Its in pastebin.
Now let us get started. Be sure to backup your stuff before you proceed
1. Firstly we would have to patch our DSDT for it. Be sure to grab your DSDT.dsl and add this following line to it
Compile your dsdt.dsl and hopefully there is no errors or what-so-ever for it. Try booting with your new DSDT.aml , and everything works great , we can proceed on with step 2. I’ll be posting a complete how-to fix later over at projectOSX.
2. Once we have it patched. Just be sure to grab the patched ApplePS2Keyboard.kext and put it inside of your ApplePS2Controller.kext. That is right click ApplePS2Controller.kext , View Package Contents , then navigate it through Contents -> Plugins. Backup the old ApplePS2Keyboard.kext and replace it with the patched kext. Save it. Generate your extensions.mkext (fix permissions or what-so-ever). Reboot and hopefully your keyboard works.
3. Install the patched keyremap4macbook and FunctionFlip and reboot your mac for the last time
4. If everything went okay , go to system preferences , enable FunctionFlip and choose a suitable keyboard layout and just select which keys you want to remap. Currently I’ve remaped it to the one which has music keys as its easier for me to play , pause , rewind on my msi wind. Plus it behaves exactly like how a macbook air should
Keep in mind that this is the first draft  and its 1 Am here when I wrote this post. I’ll be adding pictures up tomorrow and spicing up things and maybe post it up in forums so that folks are aware of it.

Editing FakeSMC

As we all do know that netkas has released the latest version of FakeSMC which adds temperature sensors , that allows applications such as iStat to get CPU temperature and to do display it. It kinda makes it one step to the real thing. You can check out other improvements that he has done to it over at here
Now my concern is to make the SMC control version to match of a real mac , since everybody is talking about vanilla and how to behave it like a real mac. In this guide , I’ll show you how. Think of it as part 3. If you have not read my SMBIOS guide , please do so by clicking here
You’ll be needing few things :-

First thing is for us to get the needed SMC version for the mac that we are planning to fake out. In this case , I am going to use the SMC Version which is found on MacBookAir1,1. This is because my Wind mimics a macbook air. By changing the version , it would be one step closer to the real thing. At least your system profiler info looks close as to the real thing. Once you’ve the version number in this case its
1.23f20 (SMC Version for a MacBookAir1,1)
Open up FakeSMC.kext (right click , view package contents and then select MacOS)

Screen shot 2009-11-24 at 8.10.06 PM
Locate your fakesmc.kext and select it !

Once that is done , right click Info.plist and select Open with Plist Edit Pro
Screen shot 2009-11-24 at 8.10.52 PM
Open info.plist of fakesmc.kext , be sure to right click it and select open with Plist Edit Pro

The reason why we are using Plist Edit Pro is that the keys are in base 64. You can use a normal text editor if you know how to do conversion between base 64 to base 10 and vise versa. It shouldn’t be any problem for those who love or are into maths , computing , or engineering. For the rest of us , it plist edit pro (yes that includes the lazy folks who are who lazy to do the conversion)
Once you’re in Plist pro , navigate to this key and change the corresponding SMC version that you want. Oh be sure to set the Tjmax value for your processor. You can find this value in Windows by running CoreTemp. This will give OSX the CPU Temperature readings in which it can alert if your CPU temperature is too high
Screen shot 2009-11-24 at 8.11.22 PM
Navigate to REV key and change the Version that you want to mimic !

Tip on changing , by default its REV 01300F00 0003 , which coresponds to SMC Version : 1.30f3 , so for instance if its an iMac9,1 , it would be 01370F00 0003 , so on and so forth. Like I’ve said its not rocket science to figure out on how it works. Trial and error , till you get it right !
Save it , put it in either your EFI partition or /Extra/Extensions or /System/Library/Extensions and rebuild your extensions (if you’re using Conti’s myhack , just simply run For those who are using EFI partition , I am quite sure you know how to update it

Patched 10.6.2 Kernel is Out

Nawcom has patched the new 10.6.2 “qoopz” kernel for legacy processors and as well as for AMD processors. on top of that he has made an installer to get it all up and working. Once you’ve installed Snow Leopard 10.6.2 update , be sure to run this . There is nothing much changes which have been done to XNU. The package includes the 10.6.2 kernel for AMD processors and Intel SSE2/SSE3 such as Pentium 4 and patched SleepEnabler.kext
Thanks nawcom !
Edit : The diff as per request by AAPL. Feel free to look at it and improvise it and be sure to retain the kernel name as this is a request by qoopz , the original author of the kernel. If you want , you may add your initial but just retain the original name of the kernel !
P.S – I tried to compiled but I did not work at all
Edit : Updated link , will include mirrors later

Understanding Mac Serial Number

I am sure most of you folks have read my guide on how to build a prefect SMBIOS.plist for your hack , so that it thinks that you’re running it on a specific Mac Model. Next up on my guide which is more of a extension then a real guide is how to generate your own Mac serial number so that its unique. Its valid as it can be checked by any Mac serial checker and programs and other things which uses to estimate the age of your mac (such as Coconut battery or Coconut Identity Card) would predict how old is your PC by this serial number. Its a good way to determine its age.
Read More