Jump to content

Ozmosis UEFI bios modding guide


Pavo
 Share

45 posts in this topic

Recommended Posts

Alot of people have been asking me to make them firmware with Ozmosis in them so I figured I would write this guide so people can start making their own firmware for Ozmosis.

 

WARNING: Flashing your BIOS is dangerous use with caution:

 

1. First thing you need is UEFITool made by CodeRush which can be downloaded >Here< and download and extract the Ozmosis.zip file that is attached.

 

2. You need to download your own UEFI BIOS from your motherboard website (example used is a MSI Z97-G45 Gaming firmware)

 

3. Open UEFITool and click on File..Open Image File..., when the window opens to select your firmware make sure to change the type to All Files...

W2lH52G.png

 

4. Now you can do this step 2 ways:

a. You can look through the Volumes and find the one that has FileSystem or COREDXE and the other modules like below.

ApGmjnd.png

b. You can search for the FileSystem GUID (93022F8C-1F09-47EF-BBB2-5814FF609DF5) and place the Ozmosis module in the same Volume as it.

hxGnnf4.png

The main thing to remember here is that the Ozmosis modules must be in the same Volume as main modules in the firmware.

 

5. Now replace the FileSystem module with EnhancedFat by right clicking on the FileSystem module and selecting Replace as is....

 

5eL8nrt.png

 

if the that menu when you right click doesn't come up correctly you can always use the menu bar and have FileSystem module highlighted and click Action then File and then Replace as is..

NuLpCks.png

WgMlNYi.png

You will see Remove on the FileSystem module and Replace on the EnhancedFat module that you just injected.

4Hq83Vo.png

 

6. Now just go to the last module in that Volume and start adding the Ozmosis modules to the end of it by using the Insert after... selection. The best oder is as follows:

PartitionDXE, HFSPlus, Osmosis, SmcEmulatorKext

 

2Ibkkef.png

UGEEvSb.png

This part is unique to each board, you need to decide if you want your config inside your firmware or not, if not then you need to use the ESP for the Defaults.plist:

 

(Note: Your firmware only has so much space, use the Oz folder structure if your firmware can not handle all the your kexts)

 

Converting your own kexts to .ffs to be injected into firmware:

 

Tools need:

kexts2ffs which is attached

 

Extract the attached kext2ffs and you will see these folders and files:

W0l4SXE.png

Add your own kexts to the Kexts folder in Kext2Ffs like this:

cZf7Cwi.png

Open the Ozm Folder and open the OzmosisDefaults.plist with either Xcode or PlistEdit Pro (DO NOT OPEN WITH a TextEditior)

cslp7Xy.png

Open your Clover config.plist again with either Xcode or PlistEdit Pro

FqvD8YX.png

Now this is where you have to look and see what can be carried over from Clover config.plist to OzmosisDefaults.plist that Ozmosis uses, I have attached a full list of settings that Ozmosis uses in its OzmosisDefaults.plist. The only things that can be moved from Clover config.plist to OzmosisDefaults.plist are:
Graphics in Clover config.plist:
<key>FBName</key>
<string>Macaque</string>
In OzmosisDefaults.plist:
<key>AtiFramebuffer</key>
<string>ReplaceMe</string>
Intel GFX in Clover config.plist:
<key>ig-platform-id</key>
<string>0x01620005</string>
In OzmosisDefaults.plist:
<key>AAPL,ig-platform-id</key>
<integer>0xDEADBEAF</integer>
If you want to inject anything for graphics you need to make sure DisableNvidaInjection, DisableAtiInjection and DisableIntelInjection are set to false like this:
Ati:
<key>DisableAtiInjection</key>
<false/>
Nvidia:
<key>DisableNvidaInjection</key>
<false/>
Intel:
<key>DisableIntelInjection</key>
<true/>
The SMBIOS section self explanitory so I am not going to go over that except how to fix iMessage and FaceTime if you currently have it working with using Clover
(Remember ROM must be 12 digits HEX and MLB must be 17 digits)
ROM:
Clover config.plist:
<key>ROM</key>
<data>xxxxxxxxxxx</data>
OzmosisDefaults.plist:
<key>HardwareAddress</key>
<string>xx:xx:xx:xx:xx:xx</string>
MLB(which is located in the SMBIOS as BoardSerialNumber):
Clover config.plist:
<key>BoardSerialNumber</key>
<string>xxxxxxxxxxxxxxxxx</string>
OzmosisDefaults.plist:
<key>BaseBoardSerial</key>
<string>xxxxxxxxxxxxxxxxx</string>
The only other thing that you can use from Clover config.p;its in OzmosisDefaults.plist is the boot-args
Clover config.plist:
<key>Arguments</key>
<string>kext-dev-mode=1</string>
OzmosisDefaults.plist:
<key>boot-args</key>
<string>kext-dev-mode=1</string>
 
Now once you have done everything you want in the OzmosisDefaults.plist save and close and run the KextToFfs.command.
You will see a terminal windows open and showing what is being converted. Close the terminal windows once converted is complete and find your converted kexts and OzmosisDefaults located in:
Kexts:
Kext2Ffs/Ffs/Kext/ (Note: if you want to use the compressed versions they are located in Kext2Ffs/Ffs/Kext/Compress/ which is recommended to save space in the firmware)
OzmosisDefaults:
Kext2Ffs/Ffs/Ozm/ (Note: if you want to use the compressed versions they are located in Kext2Ffs/Ffs/Ozm/Compress/ which is recommended to save space in the firmware)
 
This should what your final mod looks like:
wy40hGN.png
Saving the firmware is different between Gigabyte, MSI, AsRock, ASUS
 
GA/MSI:
Click File>Save Image As.. and save the modded firmware as the original one (replace the original one), make sure to change file type to All Files and uncheck Hide Extensions
B5Jg7DB.png
 
AsRock:
Right click on the AMI Aptio capsule module and select Extract Body
 
22uOEIt.png
Save it as the same name as the original firmware but leave the file type as defaults and it should save the modded firmware as a .rom file
WOhSIF6.png
uSdPWKJ.png
 
ASUS:
ASUS can be done 2 ways, so I will give credit to Fernando over at http://www.win-raid.com/t455f16-Guide-How-to-flash-a-modded-ASUS-or-ASRock-AMI-UEFI-BIOS.html for making a user friendly guide on how to flash modded firmware for ASUS boards
 
Flashing an ASUS BIOS file with the extension ".ROM"

This BIOS file type is not capsuled and usually not write protected. It is most common for ASUS P67 and Z68 mainboards. 
That is why it should be no problem to get an accurately modded BIOS flashed into the BIOS chip by using the ASUS standard tool named "EZ Flash".

Flashing an ASUS BIOS file with the extension ".CAP"
These types of ASUS' BIOS files are capsuled and write protected, which makes it impossible to flash a modded .CAP BIOS the usual way.
There are at least 2 options how to solve this problem:

  • a.) Using the ASUS "USB Flashback" procedure
    Many ASUS mainboards with an Intel 7- 8- or 9-Series chipset do support this very easy to use feature to get a modded BIOS flashed. These boards have a special "Flashback USB port" and a special "USB Flashback button". For details please look into your mainboard manual or at >this< ASUS site (maybe the Smart Redirect Addon has to be disabled). 
    Important for ASUS X99 Boards:
    Users of an ASUS X99 mainboard should read >this< post written by sinders, before they start flashing any modded BIOS by using the "USB Flashback" method.
    Procedure:
    1. Rename the modded BIOS file according to ASUS "USB BIOS Flashback Rules". The ASUS support is offering a tool named "BIOS Renamer for USB BIOS Flashback" for all mainboards, which support the USB Flashback feature. Furthermore the UBU tool offfers the renaming procedure as well.
    2. Copy the modded and renamed BIOS file onto a FAT32 formatted empty USB Flash drive and insert it into the special "USB Flashback port".
    3. Shut down the computer, but don't power it off.
    4. Hit the USB BIOS Flashback button. A LED light will start blinking. Press the button for some seconds (LED light should have blinked 3-4 times).
    5. Wait until the LED light doesn't blink anymore. This means, that the BIOS has been successfully flashed into the BIOS chip of the mainboard.
    6. Then all is done. You can power off the computer and remove the USB Flash drive.
  • b.) Using the AMI tool AFUDOS 
    Users with an ASUS 7-, 8- or 9-Series chipset mainboard, which does not support the "USB BIOS Flashback" feature, should download the latest AFU tools from the AMI websites (>here< is the download link).
    Our Forum member CodeRush has written a detailed guide, which can be found >here<.

Ozmosis.zip

Kext2Ffs.zip

  • Like 13
  • Thanks 1
Link to comment
Share on other sites

Thanks, feedback on how easily this guide is to follow would be awesome.

 

Seems fairly comprehensive good job although when doing it this part should be in my opinion the rule use the EFI loading for all the extra .kext, good enough for Apple to use for their extras good enough for everyone else. Plus it makes it easier to change things around rather than the obsession there seems to be with getting everything in the BIOS.

 

 

(Note: Your firmware only has so much space, use the Oz folder structure if your firmware can not handle all the your kexts)

 

  • Like 1
Link to comment
Share on other sites

Seems fairly comprehensive good job although when doing it this part should be in my opinion the rule use the EFI loading for all the extra .kext, good enough for Apple to use for their extras good enough for everyone else. Plus it makes it easier to change things around rather than the obsession there seems to be with getting everything in the BIOS.

I completely agree

Link to comment
Share on other sites

This part is unique to each board, you need to decide if you want your config inside your firmware or not, if not then you need to use the ESP for the Defaults.plist:

 

 

 

A small correction here. It should be recommended to always keep a Defaults in firmware, either the stock MP3,1 one included or something you plan on using. The Defaults.plist in ESP will be used first if its in place but the one in firmware will be available if there is ever a problem with oz finding ESP.

Link to comment
Share on other sites

  • 1 month later...

Thanks @Pavo for share this.

I have a problem, after flash my modded bios and try to boot os x installation, when the install screen seams to appear, the computer restart it self. Do you know something about?

Please check my files...

EDIT:

This only happens when am using hdmi port, is a kernel panic. But if i use a DVI port only i have no problem. So, to use a HDMI port i have to patch AplleHDAController: 0a0c -> 0c0c
Some one knows about this issue on HD4600???
MB: GA-Z97N-WIFI
Ozmosis 1479

Framebuffer: 0d220003

jl4c.zip

Link to comment
Share on other sites

  • 2 months later...

Hi all!

 

Just been playing with Ozmosis today to try and get it working on my system and see what it can do.  Not had much luck though.

 

I have an Asus P8Z77-V Pro mobo, and I downloaded the following files the Hackintosh-Forum.de site.  I assumed they would be generally configured correctly for the motherboard.  I am currently running a PM patched 2104 BIOS with a working Clover installation.  Triple boot, Mac/Windows/Linux.

 

BIOS 1805:

Link

 

BIOS 2104:

Link

 

I tried the bios that matched what I had first, flashed via Flashback and booted the machine.  No post whatsoever.  The MEMOk light and a light on the left of my ram started flashing alternately.  I pressed the MemO button to see if it would go - no dice.  Reset bios settings with jumper on board, tried again - still nothing.

 

I then found this guide on rolling your own, so decided I would have a go and create my own rom file.  I used the files attached to this guide, but looked at what was installed on the 2108 rom and pretty much copied it.  I created my own kext ifs files, added those and my own Ozmosis defaults which pretty much was left default other than filling in serials numbers etc for iMessage.

 

Saved, flashed and rebooted.  Same issue.  Display doesn't even kick in.  Tested my ram in a friends machine just in case - memtest came back fine.  I then thought I would just try the 1805 prebuilt rom.  Flashed, rebooted - got HermitCrab Labs logo, and then my usual Asus screen.  Before it could boot, I entered bios and set things as I would normally, more importantly disabling secure boot, CSM etc.  Then rebooted once more, and system seems to be booting fine (Windows anyway).  Mac is still a no go, just get progress bar which doesn't fill up.

 

I then saw in the default on the Ozmosis plist something to do with the ATI/NVIDIA/INTEL graphics and thought it didn't look right.  To be honest, I can't remember now what I changed, but I re-rolled another 2108 rom file using the 1805 file list as a guide.  Saved, flashed and rebooted once more - now I have the Mac side trying to boot - but never completes.

 

Normally with Clover the progress bar fills quickly and Im at the desktop in seconds.  With Ozmosis, the bar starts quickly and slows halfway through.  It then crawls to the end.  I'm usually bored by this point and turn off.  I did go into verbose mode and saw that it gets stuck after the bluetooth transport message.  I remember vaguely having an issue like this initially with Clover and I'm sure it was a DSDT related thing or graphics.  However, I'm not using a DSDT with Ozmosis as I understand it does its own patching?  Or am I wrong?  I did try the DSDT I use for Clover but I just got a black screen after boot choice, no apple or progress bar.  A black screen on all operating systems, none would start.  I had to use the Esc key to bypass Ozmosis and let windows boot on its own to get sorted.

 

Also, the menu you can use by pressing Home doesn't work for me.  I have to right click the mouse to get the pointer to show and keep clicking while I move it round the screen.  I have to click a lot of a times on an icon to choose an OS to boot.  So I gave up and used the BIOS boot menu instead.  Not a biggie, just an observation.  When creating the rom files, I then used the UEFIPatch tool to patch it for power management as its needed for my BIOS. I did forget initially and wondered why I was getting a kernel panic!

 

I have zipped everything up I was playing with and reflashed my normal bios for now.  Anyone got any ideas on whats happening and can lend me a hand?  I have all the files I played with, original BIOS roms etc if you need me to attach anything.  I'm wondering if its an El Capitan thing?  Is Ozmosis capable of booting it?  

 

Cheers in advance anyway! :)

Link to comment
Share on other sites

  • 8 months later...

Hi

 

Thanks for you guide. but i have a problem with it if you could help me with it.

 

I did exactly as your guide for my gigabyte GA-z97x-ud3h-bk rev1.2 but after flashing my bios it cann't go in bios but i can use F12 to select boot devices, And after selcting my vanilla bootable usb or even installed mac it just hanged there and not bypass motherboard logo.

 

i try to use MMTOOL but in mid of inserting ozmosis file i get error cannot getting firmware information, i search for its error and find few things that mentioned there is problem in Volume 2 in firmware that hasn't enough space.

 

So now i revert back to my Normal bios and to try again.

 

i attach my build so you can see where am i mistaken.

 

 

Z97XU3HB.F8.zip

Link to comment
Share on other sites

I Have manage to download the bios tool thanks to the link posted by. cecekpawon

but the replace as in part in the tool is gray out so i cant use it properly 

as in screen shot


I Have manage to download the bios tool thanks to the link posted by. cecekpawon

but the replace as in part in the tool is gray out so i cant use it properly 

as in screen shot

post-342888-0-27068400-1466692251_thumb.png

Link to comment
Share on other sites

Not a master here, but:

You have 2 FakeSMC there (SmcEmulatorKext == FakeSMC) with duplicated GUID. Delete FakeSMC & use SmcEmulatorKext only.

Kexts (GenericUSBXHCI, VoodooTSCSync) & config (OzmosisDefaults) should have "Freeform" filetype, not "DXE driver".

If you are using script, put all kexts on folder & generate. The scripts with automatically generate unique GUID.

Link to comment
Share on other sites

 Share

×
×
  • Create New...