Jump to content
ITzTravelInTime

TINU: The bootable macOS installer creation tool - Mac app

313 posts in this topic

Recommended Posts

Advertisement

@ITzTravelInTime great work for hackintosh users..merry Christmas

 

 

Great,Merry Christmas to all

 

I am very happy to see the spirit of Christmas here.

 

For italian guys thre is a new video of my app that will be automatically published tomorrow (i recorded it on dec 23) on my yt channel and also a new video in englesh coming in the next days. This is my small christmas gift for you, I hope that you will enjoy it.

Share this post


Link to post
Share on other sites

Today a friend has also created a guide that uses TINU to create an usb installer for mac users: https://www.tecnogalaxy.it/blog/come-creare-chiavetta-di-installazione-macos-high-sierra/

 

It's in Italian, but i like to have everything that regards my app all in one place.

 

As I already told you, if you want to create your own tutorials that uses this app, fell free to do it and to link that tutorials here

Share this post


Link to post
Share on other sites

Looks dang good :) I've got one question, though... As a user of an unsupported mac, could this tool be used to create installmedia that would install Sierra on this old workhorse?

Share this post


Link to post
Share on other sites

Looks dang good :) I've got one question, though... As a user of an unsupported mac, could this tool be used to create installmedia that would install Sierra on this old workhorse?

 

this tool can be use to create install medias for any aim, you should check is it's possible to install sierra on your machine and how

Share this post


Link to post
Share on other sites

News about the new English video, it's almost ready and tomorrow or Dec. 28 should be online, it's a simple video in which i explain how to use it to create an install media, it's just made for real mac users, if you need an hackintosh video or tutorial, i have simply to record another video in which i show also how to install clover on it.

 

For the next version of the app i am considering various designs for a new icon of the app, and i am also working to the details of the new parts of the UI to give to the entire app coherence and continuity in it's design.

Share this post


Link to post
Share on other sites

The English video is out and published, here it is:

 

 

I hope you enjoy it, but i am not the best when it comes to speak English in person, but i have tried to explain everything is needed about my app in the video, obv the public target for this first video are mac users, proprably i will do another one in the future for hackintioshers and such.

Share this post


Link to post
Share on other sites

Great job Pietro, :thumbsup_anim:

Keep it up, I wish you a happy new year

thank you very much happy new year to you and to all the people here

 

I hope you are enjoying my work

Share this post


Link to post
Share on other sites

Guys an announcement, i have the new icon for tinu, i choosed to change it because that sierra icon may let people to think that tis app is for sierra only, but i have created a more generic icon for it, and also the UI redesign process is going, i have modified some things to have a more coherent and continue experience, now i am working on details currently

 

PS: Today it's my birthday, from today i am 20 years old

Share this post


Link to post
Share on other sites

Guys, work on tinu continues, i am working a lot on it, currently i am working on rewriting an optimizing some of the code. For example previously i was using for the usable drives scan, an interpretation of the output of

diskutil list

But with a simple arg i can get a plist output that can be better to use with the code:

diskutil list -plist

So i have rewritten the code that scans for the usable drives to do the scan from the plist data, and i have also implemented some functions that codes and decodes plist serialization, i have also used that new plist to extract some info from the installer app's info.plist file, like the version or the bundle name, to let some of the new features to work better (no spoiler about that new features, sorry), but i can say that the version number of the next release will be 2.0 PUBLIC and i am spending a lot of time working on it, some days i work on it until 3 or 4 am in the night.

 

I am trying also to contact some youtuber and influencers to let them to know my app and myabe they will talk about it to their public.

 

In the meantime the current release seems to work very well, but people with virtual machine are having problems because the mac app store does not downloads the full high sierra installer app, any suggestions to help that users? For now i told them to download the app elsewhere or to use other versions like sierra that are not affected by this problem, some times downloading all the latest updates to the virtual machine seems to fix it.

Share this post


Link to post
Share on other sites

After a lot of work i finally managed to create a working code that installs clover with custom options, so i have resolved all the problems i was having with the clover options using the installer command and plist serialization, now i have a working code demo to give to you as an example, it's a command line tool (with some functions from the tinu) that installs clover using the specified options, you have to edit some variables to choose the clover pkg, the path to save the options file and the mount point of the target drive, and because the installer command needs sudo, you need to enter your password for sudo into the password variable, here is the file with all the code that you can take a look, needs to be improved, but at the time being it seems to work, so i hope that also other people can learn from that.

 

To see this code inside of tinu you have to wait, i will use it in a version after the 2.0, because it needs a lot of work to be added and the version 2.0 is almost ready, so i want to release it as soon as i can so you have a lot of new stuff to use and i can focus my work on adding things like clover support and other important stuff, i hope can understand, but clover support, means a lot of work to do and i am working on it.

 

I leave to do my test code to install clover using swift and with custom settings (that you can choose from the code)

//
//  main.swift
//  test clover
//
//  Created by ITzTravelInTime on 22/10/17.
//  Copyright © 2017-2018 ITzTravelInTime. All rights reserved.
//
import Cocoa

//items class

class choseItem{
    var id: String
    var title: String
    var description: String
    
    var isVisible: Bool
    var isSelected: Bool
    var isEnabled: Bool
    
    var parent: choseItem!
    
    init(){
        id = ""
        title = ""
        description = ""
        
        isEnabled = true
        isVisible = true
        isSelected = true
        parent = nil
    }
    
    init(itemID: String, itemTitle: String, itemDescription: String, itemIsVisible: Bool,itemIsSelected: Bool, itemIsEnabled: Bool, itemParent: choseItem!){
        id = itemID
        title = itemTitle
        description = itemDescription
        
        isVisible = itemIsVisible
        isSelected = itemIsSelected
        isEnabled = itemIsEnabled
        
        parent = itemParent
    }
}

//this function stars a process and then returs the objects needed to track it
public func startCommand(cmd : String, args : [String]) -> (process: Process, errorPipe: Pipe, outputPipe: Pipe) {
    let task = Process()
    let outpipe = Pipe()
    let errpipe = Pipe()
    
    //stars a process object and then return the outputs
    task.launchPath = cmd
    task.arguments = args
    task.standardOutput = outpipe
    task.standardError = errpipe
    task.launch()
    
    return (task, errpipe, outpipe)
}

//runs a process until it ends and then returs the outputs and the erros
public func runCommand(cmd : String, args : [String]) -> (output: [String], error: [String], exitCode: Int32) {
    var output : [String] = []
    var error : [String] = []
    var status = Int32()
    //runs a process object and then return the outputs
    
    let p = startCommand(cmd: cmd, args: args)
    
    p.process.waitUntilExit()
    let outdata = p.outputPipe.fileHandleForReading.readDataToEndOfFile()
    if var string = String(data: outdata, encoding: .utf8) {
        string = string.trimmingCharacters(in: .newlines)
        output = string.components(separatedBy: "\n")
    }
    
    let errdata = p.errorPipe.fileHandleForReading.readDataToEndOfFile()
    if var string = String(data: errdata, encoding: .utf8) {
        string = string.trimmingCharacters(in: .newlines)
        error = string.components(separatedBy: "\n")
    }
    
    status = p.process.terminationStatus
    
    return (output, error, status)
}

//executes a process until it ends end then returns only the output/error
fileprivate func getOutSimply(cmd: String, isErr: Bool) -> String{
    //ths function runs a command on the sh shell and it does return the output or the error produced
    var ret = [String]()
    
    if isErr{
        ret = runCommand(cmd: "/bin/sh", args: ["-c", cmd]).error
    }else{
        ret = runCommand(cmd: "/bin/sh", args: ["-c", cmd]).output
    }
    
    var rett = ""
    for r in ret{
        rett += r + "\n"
    }
    if !rett.isEmpty{
        rett.removeLast()
    }
    
    return rett
}

//specialized versions of the previous version:
public func getErr(cmd: String) -> String{
    //ths function runs a command on the sh shell and it does return the error output
    return getOutSimply(cmd: cmd, isErr: true)
}

public func getOut(cmd: String) -> String{
    //ths function runs a command on the sh shell and it does return the output
    return getOutSimply(cmd: cmd, isErr: false)
}

//plist serialization and deserialization
func decodeXML(xml: String) throws -> NSArray{
    return try PropertyListSerialization.propertyList(from: xml.data(using: .utf8)!, options: [], format: nil) as! NSArray
}

func codeXML(decoded: NSArray) throws -> String{
    let d = try PropertyListSerialization.data(fromPropertyList: decoded, format: .xml, options: 0)
    return String.init(data: d, encoding: .utf8)!
}

//converts bool to int and reverse
func stringIntToBool(_ value: String!) -> Bool!{
    switch value {
    case "0":
        return false
    case "1":
        return true
    default:
        return nil
    }
}

func boolToIntString(_ value: Bool) -> Int{
    if value{
        return 1
    }
    return 0
}

//get options from the xml and add options to the final xml
func getItem(childs: [String: Any], parent: choseItem!, target: inout [String: choseItem]){
    let a = childs["childItems"] as! NSArray
    for i in a{
        let e = (i as! [String: Any])
        
        if e["choiceIsVisible"] != nil && e["choiceIsSelected"] != nil && e["choiceIsEnabled"] != nil{
            let iv = stringIntToBool("\(e["choiceIsVisible"]!)")
            let iss = stringIntToBool("\(e["choiceIsSelected"]!)")
            let ie = stringIntToBool("\(e["choiceIsEnabled"]!)")
            
            if iv != nil && iss != nil && ie != nil{
                let item = choseItem(itemID: "\(e["choiceIdentifier"]!)", itemTitle: "\(e["choiceTitle"]!)", itemDescription: "\(e["choiceDescription"]!)", itemIsVisible: iv!, itemIsSelected: iss!, itemIsEnabled: ie!, itemParent: parent)
                target[item.id] = item
                let d = e["childItems"] as? NSArray
                if d != nil{
                    if d!.count > 0{
                        getItem(childs: e,parent: item, target: &target)
                    }
                }
            }
        }
    }
}

func createCustomizedXML(baseXML: NSArray, choiches: [String: choseItem]) -> NSArray!{
    if var copya = baseXML.copy() as? [Any]{
        for ii in 0...copya.count - 1{
            if var i = baseXML[ii] as? [String: Any]{
                if let atr = i["choiceAttribute"] as? String{
                    if atr == "selected"{
                        if let value = choiches[i["choiceIdentifier"] as! String]{
                            if value.isVisible{
                                i["attributeSetting"] = boolToIntString(value.isSelected)
                                copya[ii] = i as Any
                            }
                        }
                    }
                }
            }
        }
        return copya as NSArray
    }
    return nil
}

//variables

let drive = "/Volumes/Install macOS High Sierra" //target drive to install clover

let pkg = "/Users/itztravelintime/Desktop/Clover_v2.4k_r4259.pkg" //path to your clover pkg
let config = "/Users/itztravelintime/Desktop/options.plist" //path to the configuration file to use
let password = ""

var xmls = getOut(cmd: "installer -showChoiceChangesXML -pkg \"" + pkg + "\"") //gets xml data for the options to pass to the package
var xmlc = getOut(cmd: "installer -showChoicesXML -pkg \"" + pkg + "\" -lang en") //gets xml data for the options to show to the user

var items = [String: choseItem]()

do{
    
    //gets the options to show to the user
    let a = try decodeXML(xml: xmlc).firstObject as! [String: Any]
    
    print("xml data estracted")
    
    //insers the option in the array items, to allow to the program to use them better
    getItem(childs: a, parent: nil, target: &items)
    
    print("items extracted")
    
    //edit settings here
    items["UEFI.only"]?.isSelected = true //the key must be the id of the cover option, ids could be found in xmlc variable plist data
    items["Target.ESP"]?.isSelected = true
    
    print("items edited")
    
    /*
    for item in items{
        print("\(item.key): \(item.value.isSelected)")
    }*/
    
    let decodedl = try decodeXML(xml: xmls)
    
    print("List decoded")
    
    let applyedl = createCustomizedXML(baseXML: decodedl, choiches: items)
    
    print("Customization applyed")
    
    let coded = try codeXML(decoded: applyedl!)
    
    print("List encoded")
    
    FileManager.default.createFile(atPath: config, contents: coded.data(using: .utf8), attributes: [:])
    
    print("File saved\nWaiting clover installation ...")
    
    //try to install clover
    if password.isEmpty{
        print("Empty password, insert the correct one to use sudo, into the \"password\" variable")
    }else{
        print(getOut(cmd: "echo \"\(password)\" | sudo -S installer -pkg \"\(pkg)\" -applyChoiceChangesXML \"\(config)\" -verbose -allowUntrusted -lang en -target \"\(drive)\""))
    }
    print("Execution finished")
    
}catch let error{
    print(error)
}

Share this post


Link to post
Share on other sites

Why not only create Window ( Do you whant Open Clover Package and install them ) ⇥ open the Clover Packages at the end of install drive proceed

User only have to install Clover with her choice
Your only have to integrate the Clover Package inside the Bundle
 
For real Mac User ( Do you whant Open Clover Package and install them ) NO  :D

Share this post


Link to post
Share on other sites

 

Why not only create Window ( Do you whant Open Clover Package and install them ) ⇥ open the Clover Packages at the end of install drive proceed

User only have to install Clover with her choice
Your only have to integrate the Clover Package inside the Bundle
 
For real Mac User ( Do you whant Open Clover Package and install them ) NO  :D

 

It's not that simple, because i have to make sure that the user installs clover in the proper way and on the target drive, and i want also to offer some preconfigured templates for clover options, to make the thing more easy for some users, and of course i will ask if the users wants to use the usb with a real mac or with an hackintosh, for the clover package, to not have problems i have decided to not integrate it inside of tinu, but to ask if download it from the internet (tinu will automatically download the latest version) or if you are off-line it will ask to you to open a copy of clover locally on your computer, i don't want to in include clover into the bundle of my app to not have to update the app every time a new version of clover is out and of course to not have issues with licenses and other stuff and to maintain the download of tinu of as light weight as i can, maybe i can integrate fakesmc and a couple of important kexts, but only the ones that do not requires to be updated frequently, but i think that for kexts i will ask to the user for them, i want that tinu is more like a guided usb creation process more than a thing that does everything automatically.

Share this post


Link to post
Share on other sites

I know what you want

I made several precompile Package on the pass ; the problem is if that not work people blame you.

if you let the users choose they will not blame you.  This is my suggestion :angel:

Clover is Open Source f you compile Clover and create your own package I think its not a probleme,correct me if im wrong.

Share this post


Link to post
Share on other sites

I know what you want

I made several precompile Package on the pass ; the problem is if that not work people blame you.

if you let the users choose they will not blame you.  This is my suggestion :angel:

Clover is Open Source f you compile Clover and create your own package I think its not a probleme,correct me if im wrong.

yes, sure, but i just want to use all the official stuff because i don't want to mess with that and i want something as close as i can to the manual vanilla method, so i have created this system that uses official packages and i want the application to manage the installation of clover, i want that clover will be always installed correctly by guiding the user to the correct settings to use for it's machine, but i will also leave a totally manual option that will let you to install clover totally manually, by selecting settings from tinu, or to not let tinu to install clover and leave this entirely to the user manually, don't worry, i will leave a lot of choice to the user, but just opening the clover pkg with the installer app is not noob friendly and that's why i want a system that manages clover installation, to help noobs that don't know what to do with clover setup, and of course leave also options to do it with more freedom for the expert users.

Share this post


Link to post
Share on other sites

I understand but as a noobs will use one of your setups and it does not work at all whether it's a PC or a laptop, there will always be a great Hackintosh champion :P  who will tell him to download the Clover Packages and use it differently. .

Even if you have the best suggestions when it will not work, who will point You! There is nothing better than a good explanatory video on how to use Clover

Share this post


Link to post
Share on other sites

 

I understand but as a noobs will use one of your setups and it does not work at all whether it's a PC or a laptop, there will always be a great Hackintosh champion :P  who will tell him to download the Clover Packages and use it differently. .

Even if you have the best suggestions when it will not work, who will point You! There is nothing better than a good explanatory video on how to use Clover

 

Yes, but i try to do my beast and to guide the user as i can

Share this post


Link to post
Share on other sites

Yes, but i try to do my beast and to guide the user as i can

If you believe that you are in the best direction, so made the things. If it does not work well you'll have to try it

Share this post


Link to post
Share on other sites

But i will not make everything automatically, as i said you can always choose to do everytihing manually and some things have to made be manually of course

Share this post


Link to post
Share on other sites

Ok after a period of sickness and other stuff i am back with tinu development, i am currently working on optimizing and making shorted the code i am waiting for the feedback from the designer about the new ui, and i am also hunting as my bugs as i can, do you have suggestions for options for generic clover installation? i want to use some templates for some generic clover installation or let the user to choose manually the options to use for clover, but for the version that i am going to release now there will be no clover support yet, but it will be introduced in following versions

Share this post


Link to post
Share on other sites

Is there a way to include kernel injection for AMD kernel and pelinked kernels? Pandora has this option which is very useful but doesn't have High Sierra support. chris1111 may be able to help I think he knows how to do this.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By MaLd0n
      ---INSTALLATION TUTORIAL---
       
      ---Original Post---
      https://olarila.com/forum/viewtopic.php?f=45&t=9172
       
      ---USB---
      https://pikeralpha.wordpress.com/2016/07/13/simple-skylake-usb-fix-no-kexts-required/
       
      ---CLOVER FOLDER---
       
      CLOVER.zip
       
       
      --MOBO
      GigaByte Z390 M Gaming



      --PROCESSOR
      Intel Core i9-9900K


      --COOLER
      CoolerMaster MasterLiquid ML120R RGB


      --MEMORY
      Corsair Dominator Platinum 16GB (2 x 8GB)


      --GPU
      Sapphiretech Radeon RX 590 8 GB GDDR5


       
      --SSD
      Samsung 970 EVO NVMe M2 Flash Drive


      --POWER SUPPLY
      EVGA 750 N1, 750W


      --WIRELESS
      TP-Link Archer T9E


      --BLUETOOTH
      Orico BTA-403


      --CASE
      Thermaltake View 21 Tempered Glass Edition


      --DSDT Patches--
      -FIX ERRORS AND WARNINGS -FIX ACPI ERRORS -REMOVE UNUSED SCOPES / DEVICES -HIGH PRECISION EVENT TIMER -SATA SERIE 10 ID -DMAC -REMOVE 22K LINES, PROBLEMATIC and UNUSED -FIX K.P in REBOOT -NVRAM / REAL TIME CLOCK -SLPB -DARWIN / WINDOWS 2015 -XHCI -PLUGIN TYPE -HDAS to HDEF -HDEF -REAL TIME CLOCK -ARTC -IRQs -SBUS -MIKEY -BUS1 -MCHC -ALS0 -SHUTDOWN -UAR1 -LAN -FWHD -USBX -PMCR -PPMC -XSPI -GMM -IMEI -EC -PNLF -ARPT -GFX0 -NVME -DTGP -ACQUIRE MUT0 0XFFFF -OPERATION REGION GPIO -MUTEX MUT0 0x00 -EXTERNAL REFERENCES -UNKNOWNOBJ -HDMI / HDAU -FULL RENAMED DEVICES  
      --SCREENSHOTS--





























      --BruceX--
       
      --USB-C-- test with SanDisk Ultra USB-STICK 128gb


       
      -Credits and thanks to the old and new people in the community who developed patches, kexts and bootloaders!
      Slice, Kabyl, usr-sse2, jadran, Blackosx, dmazar, STLVNUB, pcj, apianti, JrCs, pene, FrodoKenny, skoczy, ycr.ru, Oscar09, xsmile, SoThOr, RehabMan, Download-Fritz, Zenit432, cecekpawon, Intel, Apple, Oracle, Chameleon Team, crazybirdy, Mieze, Mirone, Oldnapalm, netkas, Elconiglio, artut-pt, ErmaC, Pavo, Toleda, Master Chief and family, bcc9, The King, PMheart, Sherlocks, Micky1979, vit9696, vandroiy2013, Voodoo Team, Pike R. Alpha, lvs1974, Austere.J, CVad, Sampath007, onemanosx, erroruser, Jenny David, Olarila Facebook Community, Hackintosh Facebook Community and many others!
      We're all here to have fun and learn from each other!
    • By glasgood
      GLASGOOD'S
       
      MOJAVE HACKINTOSH GUIDE 
       

       
       
       
      **FOR**  GIGABYTE Z390 AORUS PRO
       
       
       
       
      CREDITS & THANKS
       
      @MaLd0n
      His help with EFI configuration and DSDT
       
      CLOVER  TEAM
      Slice, Kabyl, usr-sse2, jadran, Blackosx, dmazar, STLVNUB, pcj, apianti, JrCs, pene, FrodoKenny, skoczy, ycr.ru, Oscar09, xsmile, SoThOr, rehabman, Download-Fritz, Zenit432, cecekpawon Et al
       
      APPLEALC
      Acidanthera, vit9696
       
      VOODOOHDA
      autumnrain, slice2009, zenith432
       
      ESP PRO MOUNTER
      @Micky1979 
       
      HACKINTOOL
      @headkaze
       
      CLOVER CONFIGURATOR
      Mackie100
       
      THEME ENGINE
      Alex Zielenski
       
      INSANELYMAC
      OLARILA
       
      Hackintool Tutorial
      daliansky
       
      Hackintosh Guide
      CorpNewt
       
       
      MONITORCONTROL
      JoniVR & theOneyouseek
       
       
       
      ------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      UPDATES
       
       
      ------------------------------------------------------------------------------------------------------------------------------------------------------------
       
       
      PART LIST
       
      • Intel I7 8700 
      • Gigabyte Z390 AORUS PRO
      • Gigabyte AORUS RADEON RX 580 8GB ( connected to monitor with DisplayPort )
       
      • Corsair Vengeance LPX 16GB ( 2 x 8GB ) 2666MHz – CMK16GX4M2A2666C16  In this build, both memory modules are installed in memory slots DDR4_A1  and DDR4_B1 
       
      • Corsair RM650x 80 Plus Gold Power Supply Unit
      • Corsair H100i V2 AIO Hydro/Water RGB LED CPU Cooler
      • Samsung EVO 500GB SSD (2.5) macOS Mojave
      • Samsung EVO 250 GB SSD (2.5) Windows 10 Pro
      • NZXT H500 Mid Tower ATX Case
       
      • RECOMMENDED WIFI CARD → ABWB 802.11AC WI-FI With Bluetooth 4.0 PCI-Express (PCI-E) BCM943602CS  
      OR
      • WIFI and Bluetooth with BCM94331CD with PCI-e adapter (but will require AirportBrcmFixup.kext for AirDrop.. )
       
      ** Avoid Samsung EVO 970 PLUS as Hackintosh has problem with that device **
       
       
      WORKING
       
      • Sound 
      • HDMI Port on AMD RX580 / 590 ( Ensure you disable BIOS CSM if using HDMI on RX580 / RX590 )
      • HDMI Port on Aorus Z390 Motherboard ( Ensure you have correct BIOS settings as per this guide for Intel only)
      • Ethernet Port
      • WiFi
      • SSD Trim
      • USB 3.0 & 2.0 
      • AirDrop
      • iCloud
      • Hardware Acceleration
      • iMessages
      • Facetime
      • Handoff
      • Continuity
       

       
       

       

       
       
       
       
       
      PART 1 - DOWNLOAD 
       
       
      Download the following:
       
      • CLOVER
       
      • PRE-INSTALL Aorus Pro Z390 EFI - RX580.zip
       
      • POST-INSTALL Aorus Pro Z390 EFI - RX580.zip  
       
       
       
       
       
      // INTEL UHD 630 EFI  Aorus Pro Z390 EFI's below. For those who do not have a Graphics Card Installed in PCIe Slot, requires Initial Display Output BIOS setting to be changed to IGFX  spoiler below!
       
      •  PRE-INSTALL Aorus Pro Z390 EFI - Intel UHD630.zip
       
      • POST-INSTALL Aorus Pro Z390 EFI - Intel UHD630.zip
       
       
       
       
       
      • ESP MOUNTER PRO v1.9
       
      • macOS MOJAVE 
       
      • CLOVER CONFIGURATOR
       
      • EmuVariableUefi-64.efi  ( Used only to initialise iMessages. It then must be removed from Clover drivers64UEFI folder as will cause intermittent memory allocation errors on boot, explained in guide)
       
      • OsxAptioFix2Drv-free2000.efi
       
       
      // Fix for lost sound after wake from sleep
      • SSDT-ALC1220.aml  ( Resolves Audio Sound on Wake, place in Clover / ACPI / Patched )
       
      • CodecCommander.kext.zip ( Resolves Audio Sound on Wake, place in Clover / Kexts / Other )
       
       
       
      OPTIONAL DOWNLOADS
       
      • Native Display Brightness with MonitorControl
       
      • VoodooHDA.kext.zip 

      • ThemeEngine 
       
      • Assets.car 
       
       
       
       
       
       
      PART 2 - BIOS SETTINGS (version F9 )
       
       
      Here is a list of the BIOS settings that I have used ( Screenshots in spoiler below )
       
      • Enter BIOS → Press F12 → Enter Setup
      • Save & Exit → Load Optimized Defaults
       
      • BIOS → Windows 8/10 Features → Other OS
      • BIOS → CSM Support → Enabled
       
      • Peripherals → Initial Display Output → PCIe 1 Slot
      • Peripherals → Trusted Computing → Security Device Support →  Disable
      • Peripherals → Intel(R)Bios Guard → Intel BIOS Guard Support →  Disable
      • Peripherals → USB Configuration → Legacy USB Support →  Enabled
      • Peripherals → USB Configuration → XHCI Hand-off →  Enabled
      • Peripherals → Network Stack Configuration → Network Stack →  Disabled
      • Peripherals → SATA And RST Configuration → SATA Mode Selection →  AHCI
       
      • Chipset → Vt-d → Enabled
      • Chipset → Internal Graphics → Enabled
      • Chipset → DVMT Pre-Allocated → 256M
      • Chipset → DVMT Total Gfx Mem → MAX 
      • Chipset → Audio Controller → Enabled
      • Chipset → Above 4G Decoding → Disabled 
       
      • Power → ErP → Disabled
      • Power → RC6 (Render Standby) → Disabled
       
      // IF USING  CORSAIR H100i V2 AIO CPU WATER COOLER 
      • MIT → Smart Fan 5 Settings → CPU Fan Control mode → PWM 
       
      • Save & Exit → Save & Exit Setup
       
      SCREEN DUMP SPOILERS
       
       
       
       
       
      PART 3 – CREATE A MOJAVE USB FLASH INSTALLER
       
      Prepare USB Installer for Mojave ( Video below )
       
      • Insert USB drive
      • Launch /Applications/Utilities/Disk Utility
      • Disk Utility → View → Show All Devices
      • On Left-hand panel → External →(Identify your USB device in left hand panel)
      • Click and highlight your USB device in the left-hand panel.
      • Click erase button.
      • Name: USB
      • Format: Mac OS Extended (Journaled )
      • Scheme: GUID Partition Map
      • Click Erase button.
       
      • Place the downloaded MacOS Mojave app into Applications folder.
      • Open Terminal copy and paste:
       
      sudo /Applications/Install\ macOS\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/USB --nointeraction && say Mojave Drive Created  • Enter
       
       
       
       
       
       
       
      PART 4 – INSTALL CLOVER ON THE MOJAVE USB INSTALLER 
       
      Make Mojave USB flash drive installer bootable.( Video below )
       
      • Launch Clover application, double click.
      • Click Continue → Continue → Continue 
      • Click Change Install Location button.
      • Click Install macOSMojave USB installer → Continue
      • Click Customise button
      • Choose:
      Clover for UEFI booting only Install Clover in the ESP Themes UEFI Drivers Install RC scripts on target volume    NO NEED TO INSTALL RC SCRIPTS ON USB INSTALLER • Click Install button
      • Installation Complete!
       
      Video:
       
       
       
       
       
       
      PART 5 – CUSTOMIZE MOJAVE USB INSTALLER FOR AORUS Z390 PRO
       
      Replace Clover EFI folder with PRE-INSTALL Aorus Pro Z390 EFI - RX580.zip  OR  if NO graphics card installed in PCIe slot, then use PRE-INSTALL Aorus Pro Z390 EFI - Intel UHD630.zip( Video below ) 
       
      • Install ESP Mounter Pro v1.9
      • Using ESP Mounter Pro, Mount ESP on disk2s1 ( Your disk name may be different )
       

       

       
       
       
      • Open mounted EFI partition found on desktop
      • Copy all the contents from Aorus 390 Pro EFI folder
      • Replace USB EFI folder with all the contents inside the Aorus 390 Pro EFI folder.
       
       

       
       
       
       
       
       
       
       
      PART 6 – INSTALL MAC OS MOJAVE ON INTERNAL DRIVE
       
      INSTALL NOTE
       
      ENSURE BIOS: Above 4G Decoding is set to Disabled 
      if Above 4G decoding is set to enabled then macOS Mojave install will freeze at 2 mins remaining and will not shut down properly!!!!
       
      Please be patient during install, so when install gets to 2 or 3 mins remaining then it may take extra time. Be ready to boot from UEFI USB installer by pressing F12 when install initiates restarts. 

      • INSERT USB INSTALLER INTO THE USB 2.0 PORT  
       
       
       Here is a walkthrough of the full process using the macOS Mojave USB Installer on the Aorus Z390 Pro. 
       
       
       
       
      • Power on PC and press F12• Choose bootable USB drive from boot menu.
       
       
       
      • Install macOS Mojave to internal solid state or hard drive.
       
       
       
      When system returns to the Clover boot menu choose:
       
      • Boot macOS Install from Macintosh
       
       
       
      At next restart, press F12 and boot from external UEFI USB device and choose:
       
      • Boot macOS Install from Macintosh
       
       
       
      Proceed with macOS Mojave install
       
       
      macOS Mojave is now installed, but it can only boot at this moment thanks to FakeSMC and Clover on the Mojave USB flash drive installer.
       

       
       
       
       
       
       
      PART 7 – MAKE AORUS Z390 PRO INTERNAL DRIVE BOOTABLE
       
      Make internal drive bootable ( Video below )
       
      So far, the Aorus Pro can only boot the internal system drive with the aid of the Mojave USB Installer.
      To boot from the internal system drive without the installer: 
       
      Download and install Clover with RC Scripts on target volume.  
      If your Aorus Pro Z390 has AMD RX 580 then copy the EFI folder from inside POST-INSTALL Aorus Pro Z390 EFI - RX580.zip  folder and paste it inside the the System Drive EFI partition.          OR
      If your Aorus Pro Z390 has no graphics card installed in PCIe slot, then copy the EFI folder from inside POST-INSTALL Aorus Pro Z390 EFI - Intel UHD630.zip  folder and paste it inside the the System Drive EFI partition.   
       

       
       
       
      • Remove USB Mojave installer and shut down and restart.
       
      Aorus Hackintosh should now be able to boot to macOS Mojave, Done, well almost ! 
       
       
       
       
       
      PART 8 – ENABLE IMESSAGES & FACETIME 
       
       
      Configure Config.plist for iMessages. ( Video below )
       
      • SMBIOS = Mac Mini 8.1
      • Rt Variables —> ROM —> is your MAC address (delete colons from Mac address)
      • MLB field =  Enter serial number generated and append 5 random characters
      • SmUUID = in Terminal run command “uuidgen” and copy it to SmUUID field
      • Board Serial is same as MLB field.
      • Clover Configurator —>  Save 
       
      Video:
       
       
       
      • Mount internal drive EFI/ESP partition
      • Go to folder CLOVER → drivers64UEFI 
      • Delete AptoMemoryFix-64.efi
      • Place both EMUVariableUefi-64.efi and OsxAptoFix2Drvfree2000.efi inside → drivers64UEFI
       
       
      Using Clover Configurator, add the following argument to config.plist using Clover Configurator.
       
      • Slide = 0
       

       
       
      Shutdown and then press power on button on PC.
       
      • You should now be able to Log into iCloud, iMessages and FaceTime
      • NOW delete EMUVariableUefi-64.efi from CLOVER → drivers64UEFI Folder 
      • Shutdown and restart Aorus Pro hackintosh. iMessages etc is now operational without EMUVariableUefi-64.efi ( EMUVariableUefi-64.efi only needed to initialise iMessages )
      • It is important to delete EMUVariableUefi-64.efi, this will avoid very intermittent boot errors such as: “Couldn’t allocate runtime area”  post errors.
       
       
       
       
      PART 9 – ENABLE TRIM for Solid State Flash Drives
       
      Open Terminal and enter the following command:
      sudo trimforce enable  
       
       
       
       
      DEFAULT SSDT –  USB PORTS FIX CONFIGURATION WITH FRONT USB-C - SSDT ALREADY INSIDE AORUS Z390 EFI FOLDER  – Provided by @AudioGod 
       
       

       

       
      If you have USBC on Computer Chassis / Case, then SS01 and SS02 is mapped to that USB C port 
       

       
       
       
       
       
       
      ------------    GUIDE FINISHED YOU SHOULD NOW HAVE WORKING AORUS Z390 PRO HACKINTOSH  WITH SSDT USB FIX   ------------
       
       
       
      OPTIONAL: Set Wi-Fi Country Code
       
       
       
       
       
       
      OPTIONAL: System Information - PCI
       
       
       
       
       
       
       
      OPTIONAL:  Enable HDMI Audio on RX580
       
       
       
       
       
       
       
      OPTIONAL:  Native Display Brightness - with MonitorControl

       
       
       
       
       
       
      OPTIONAL:  Dual Boot macOS Mojave & Windows 10 
       
       
       
       
       
       
       
       
      OPTIONAL:  Replace the default "About This Mac" Apple Logo with RED AORUS APPLE
       
       

       
       
       
       
      OPTIONAL - ALTERNATIVE SSDT 1 –  SSDT Ports configuration below - replace SSDT inside Clover /ACPI/PATCHED folder 
       
       
       
       
       

      OPTIONAL - ALTERNATIVE SSDT 2 -  SSDT Ports configuration below - replace SSDT inside Clover /ACPI/PATCHED folder 
       
       
       
       
       

      OPTIONAL - ALTERNATIVE SSDT 3 – Create your own SSDT
       
       
       
       
       
      FRAMEBUFFER PATCHING  – For working Intel UHD 630 Graphics, working HDMI Port, working HDMI Audio on Aorus Z390 Pro
       


       
       
       
       
      FOR MORE HACKINTOSH INFORMATION SUCH AS USB PORTS FIX, CLOVER CONFIGURATOR, HACKINTOSH BACKUP WITH CARBON COPY CLONER .....   THEN SEE MY PREVIOUS GUIDE FOR ASUS Z370-G Strix
       
       
       
       
       
       
       
       
       
       
       

       
       
       
       
       
       
       
       
      SSDT-UIAC.aml.zip
      SSDT-UIAC.dsl.zip
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
    • By RagK
      Hey , I have installed MacOS Mojave on my desktop
       I am facing issue in which the front pane USB ports on my cpu are working only after a reboot.
       
      When I start my PC after a shut down the USB ports docent seem to work as USB pen drive is not detected 
       
      Please Help
    • By Candrahm
      Hi everybody,
       
      I'm new here and French. 
      I success to hack my Asus X751LJ and pass it to High Sierra 10.13.6, not easily, and everything works except the keyboard and the touchpad.
      I tried VoodooPS2Controller, ApplePS2SmartTouchpad, even VoodooI2C, but nothing works...
      Could someone help me? Is there a DSDT problem? Witch kext should I use?
      I post my ACPI and Kexts folders and my IOReg.
      Please... Help me. I'm desperate...
      MacBook Pro de Candrahm.ioreg
      Archive.zip
×