Jump to content
ITzTravelInTime

TINU: The macOS install media creation tool - Mac app

218 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 cydia2020
      G'day guys,
      I recently bought a Surface Book i5 256GB with dGPU, and I found that there's no tutorial about Hackintosh since it's released, so i am here to be the first (maybe) to try this out
       
      This guide is not being recommended by its author, as the final performance is usually janky and unstable, most fundamental functions of your Surface will not work in Hackintosh, please always consider the consequence of proceeding, you also risk losing your data, again, please proceed with caution
       
      ******謝絕轉載謝謝配合******
      ******Please do not repost, thanks******
      ******転載禁止です。ご協力をお願いします。*******
      This project is deprecated (and it was only meant for 10.11 - 10.12.3) due to hardware availability on my side, no support for future OSes will be provided by me personally and support on current OSes will be limited. Your contributions, testing and guides will be appreciated by the community.
       
      video is up at
       

      Disclaimer: everything is on yourself, please proceed with caution and care
      Works
      Keyboard & Trackpad (No Gestures)(Buggy, when you hold a key, pointer won't move),
      SD card reader,
      USB 3.0 ports,
      Sound
      PCIe SSD
      Intel HD 520 Graphics works perfect on 10.11.4
      DP Video output now works(don't close the lid, it lead to big problems)(after closing the lead with external monitor, when plug in the external monitor, it no longer recognize the internal display, you must unplug the monitor and reboot)
      Long press power key brings up the power menu
      Brightness
      Lid

      Doesn't work
      NVidia dGPU
      Touch Screen (Alex's driver won't work since it's now on HID Camplg ports, which is not open source)
      Wireless (Wi-Fi & Bluetooth)
      Volume rocker
      Battery status

      What Works for 10.12
      Everything for 10.11 :-)

      Bugs For 10.12.3 and below
      Graphics is janky and unstable. and does not work natively, driver patch is needed
       
      Graphics will not work on 10.12.4 as reported for the built-in display, please take notice and do not upgrade
      First Step: Installing a Virtual Machine
      You will need a VM in order to get the thumb drive ready, please install a VM or you can use a real Mac to do this, the installation is not very hard, but do need some times for downloads and other stuff.
      Download VMWare Workstation Pro 12.0 Trial Version Download VMWare Unlocker Download Python Runtime Modify Unlocker Bat file -- In the unlocker installer, there's a win-install.bat file that you can open by CMD, but don't open yet, we need to modify a path in the file, open the file using your favorite text editor, find unlocker.exe in the file, change it to unlocker.py The previous step is redundant  Follow the instruction on unlocker readme file Go to a Apple Store, get a Install App from their computer and convert the BaseSytem.dmg to CDR, or you can just skip those steps to the making USB step Use the converted CDR as install media in VMware Installing OS X as normal Second Step: Prepare to install
      You need an actual Mac to make the install USB or using a VM, both methods are fine, I wouldn't say more about installing a VM on your devices, you can Google that yourself
      You'll need to download the 10.11.x installing App from this link For macOS 10.12 please go to this link to get the preview version You need to open Disk Utility. Select the USB Drive and format it as Mac OS X Extended (Journal-ed), Name it whatever you want, as long as you can remember the name. Now, open the terminal, enter the following text, this will cost you around 4 minutes on a USB 3.0 device and 30 minutes on a USB 2.0 device, go get yourself some drinks For 10.11 sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia --volume /Volumes/PARTITION NAME --applicationpath "/Applicatons/Install OS X El Capitan.app" --nointeraction The previous method won't work on 10.12 anymore, you will get a USB that is not booting, use the guide below Download Clover from Clover Official Download Page Install Clover by choosing "Install UEFI Version only, install to EFI partition, Install Themes, Driver64UEFI(unselect CsmVideoDxe-64) After installing, you should see a Partition called EFI mounted, and it's your thumb drive (Copy the EFI folder from Installing OS X to the EFI Partition) only do this if it didn't do atomically DownloadSurfaceDriver.zip and follow the instruction in the ReadMe.txt to paste the files into your CLOVER folder ++++++++++Notice for 10.12 USB Creation++++++++++
      The pervious way of making the 10.11 drive won't work anymore in 10.12, instead, after downloading the 10.12 install app, you'll need to follow the following steps
      Show hidden files by executing this command defaults write com.apple.finder AppleShowAllFiles YES Navigate to /Application/Install macOS Sierra/Contents/SharedSupport and mount InstallESD.dmg
      Open "Disk Utility", restore the USB drive with Basesystem.dmg (hidden) in the mounted DMG file.
      Copy /Packages in the mounted DMG file to the restored USB's /System/Installation. Delete the old link before proceeding to the copy.
      Copy basesystem.dmg and basesystem.chunklist to the root directory of your USB drive
      Third Step: Installing OS X 10.11

      Now, we can start installing 10.11, you should plug in an external keyboard, mouse, and your thumb drive, after you finish the booting process, you should see the welcome page, choose the language you prefer and proceed the installation
      Go to Windows First, partition your drive for at least 50 GB if you want to keep using, because as I tried before, remapping disk after installing macOS or OS X is extremely HARD, don't try that unless it's necessary, you will risk the integrity of your data by doing that
      Choose Disk Utility, choose your installing partition and click erase, format as OS X Extended (Journal-ed), then, exit Disk Utility and proceed the installation process, you might need to proceed the same process twice to get the full install, so if you didn't saw your OS X drive, please choose install again. (The installation will automatically continue.)

      Or: Installing macOS 10.12
      Please change ig-platform-id to 12345678 before installing the framebuffer kext.
      Things getting a little bit tricky when you're trying to install 10.12 on Surface Book. Since there's still a little bit of problems with the NVMe driver, you will likely get a error message says: unable to unmount volume for repair
      I am not sure if the error spreads largely, but, I experienced it every time I install the 10.12
      The temporary workaround is that to use an external USB hard drive or a SD card, I don't recommend a USB thumb drive unless it's superfast.
       
      Install 10.12 as normal to the external hard drive apply all the combo updates to the external hard drive system Use the recovery environment comes with the Installer (not the hard drive) Open Disk Utilities and restore the whole USB hard drive to the macOS install drive You can apply combo or delta updates as normal, but do not apply big updates that requires a standalone app download, backup and reinstall instead Problems regarding 10.12 installing has been solved, please proceed as normal
       
       
      The Final Process: Make your experience better
      You don't have to patch the keyboard drivers for 10.12.1 and/or above
      For 10.12, please install the kexts in 10.12 "install" folder located in the driver pack
      Make the keyboard works (10.11 only)
      Navigate to InstallHD/System/Library/Extension Copy the IOUSBFamily Kext to your desktop or wherever you like Right click on it and choose show package content, go to /Contents/PlugIns Right click on IOUSBHIDDriver and choose show package content, go to /Contents Open Info.plist using software like: PlistEditor Pro, and xCode Navigate to IOKitPersonalities Copy Generic Keyboard and right click on IOKitPersonalities Select "Paste as a child" Expand Generic Keyboard 2 change the value of bInterfaceProtocol to 0 change the value of bInterfaceSubclass to 3 change USBCompatibilityMatch to YES (doesn't have this on 10.11) save the file and open Kext Utilities Drag and Drop the kext in to it, enter password and after it finished reboot, then you should have a working keyboard Install Clover to SSD
       
       
      To install clover to ssd, you need the CLOVER PKG installer and remeber to update as a new version releases, it might contains bug fixes.
       
       
      Install clover as normal, install to your HACKINTOSH INSTALL DRIVE Use UEFI Boot Version, Install theme, and Driver, unselect CsmVideoDxe PUT THE SURFACE BOOT DRIVER INTO THE DIRECTORY Use BOOTICE x64 Version under windows, mount EFI under windows, Select UEFI tab, add a new boot entry navigate to EFI:\EFI\CLOVER\CLOVERX64.efi, name it clover bootloader (or whatever you like). Go to Surface UEFI, unselect Windows Boot Manager under Boot tab, select and drag CLOVER to the first position of the UEFI boot sequence,  
      NOTICE: DO NOT DELETE "INTERNAL" selection in UEFI setup, or your Surface WILL NOT BOOT (won't happen on newer BIOS)
       
       
      By the way, according to the feedback, there has been some problems with the AppleHDA patch, please install AppleHDA298.kext to S/L/E directly using your kext installer instead of placing it under /CLOVER/kexts, also, please use sRGB as color profile to avoid any grahpics glitch in 10.11.
       
       
      _____________________________________________________________________
       
      You'll need a Wi-Fi dongle to get online or you can use USB Sharing on Android and iOS, don't know whether network sharing on Ubuntu Touch, Windows Phone and Blackberry will work
      You'll also need a Bluetooth dongle to get BT working


       
      __________________________________________________________________________________________________________________________________________
      Thanks to
      LonelyTV
      MeuPRodrigo
      maj1es2tic
      Pike

      and all of you
    • By zcmckenna
      I have been having a pretty major issue with my new Hackintosh lately. It has been displaying broken link images in safari (See image 1). It has also had certain areas of artifacting such as the storyboard in Xcode (See image 2). and finally PDFs have been showing up completely blacked out (See image 3). This has been a big issue for me and I was wondering if any of you have had the same problem and have had any luck fixing it. I have already tried display calibration and switching to integrated graphics. Thanks in advance!
      (See attached for config.plist)
      Specs:
      CPU: i5-8600k
      MB: Gigabyte Z370XP SLI
      GPU: ASUS 1070 Dual
      RAM: 16GB Ballistix (8GB x 2)
      HDD: WD Blue 1TB



      config.plist
    • By LarryKu
      Hi everyone,
      I am new, I hope I am posting in the correct forum.
      My specs:
      Processor: Core i5 6500 Skylake 3.2ghz
      Mobo: Gigabyte h170-d3h
      M2SSD: WD Black 256gb PCIe (Mac OSx)
      SSD: Samsung 860 Evo (WIndows 10)
      HDD: WD Blue 1TB
      GPU: Radeon RX 480
      Monitor: BenQ RL2460 24"


      I was able to install High Sierra on a new m2 drive, that I added to the above configuration with windows 10 already installed.
      I had a few issues during install, including the monitor turning off at boot screen.

      Unfortunately, this persists even now. It turns off at about 60% of the progress bar, and to turn it on again I have to unplug/plug back my hdmi.
      Additionally, while all of the usb ports worked during install and while running it out of the clover I had on the usb stick, only the rear ones appear to work now.
      The audio doesn't work either, though I added the correct patch according to my mobo

      Lastly, my other drives are not recognized in the bios anymore. They run fine from boot override but they don't show up in the boot priority (while multiple entries of mac OS do, and they seem to increase in number at every reboot)

      Thanks in advance for the help
    • By anka97
      Hello everyone! I'm a newbie !
       
      I tried to set up my USB installer, but I cannot. 
       
      Would u like to be so kind if u help me to setup my clover EFI partition. I'm stuck here and I cannot boot to USB.
       
      Everything is OK. Just about my Clover configuration! 
       
       
       
       
       
      My model profile:
       
       
      CPU : Intel Core i3 6100U Skylake-U/Y 
       
      RAM: 4.00GB Single-Channel DDR3 @ 532MHz (7-8-8-28)
       
      Motherboard: ASUSTeK COMPUTER INC. TP501UA (U3E1)
       
      Graphics: Intel HD Graphics 520 (ASUStek Computer Inc) 
       
      Monitor: Generic PnP Monitor (1920x1080@60Hz)                 
       
      Storage HDD: 465GB Seagate ST500LT012-1DG142 (SATA)
       
      Audio: Realtek
       
      Network: Qualcomm Atheros AR946x Wireless Network Adapter
    • By Angelo_
      Non sono sicuro di essere nella sezione giusta ma stavo cercando un adattatore wifi usb compatibile con high sierra per un paio di hackintosh(di mio fratello e di un amico) che non possono essere connessi in lan e non riesco a trovare niente né nei negozi di elettronica né su amazon, avete qualche suggerimento? Ho anche provato una breve ricerca su google sia in italiano che in inglese senza ottenere risultati :v
×