Selected Mac OS X Installer is Incomplete
Your selected Mac OS X Installer is incomplete. Please delete all copies of the installer from all mounted volumes and redownload it again from the Mac App Store.
Do you receive above error message when you try to prepare a bootable USB using Unibeast and a OS X installer downloaded from another machine, or a torrent? and you are 100% sure the downloaded installer is genuine copy?
Actually you can resolve this by doing either,
1. Simply changing the system time or
2. Patching Unibeast to remove a validation.
(Changing 0000000100003262 je 0x1000032a2 to a NOP in Unibeast 6.1.1)
Both can be done easily. But I'm going to describe only the first option here.
First let me explain few validations which are done by Unibeast before it allows you to create the bootable USB.
1. First validation it does is the Installer name and the path. Installer should be available at the /Applications directory with the correct name.
E.g.:
/Applications/Install OS X Yosemite.app
/Applications/Install OS X El Capitan.app
2. Second validation is that,
If the installer is for Yosemite, then it checks for the string "com.apple.InstallAssistant.Yosemite" in the /Applications/Install OS X Yosemite.app/Contents/_MASReceipt/receipt file using "grep -q" command.
If the installer is for El Capitan, then it checks for "
com.apple.InstallAssistant.ElCapitan" in the /Applications/Install OS X El Capitan.app/Contents/_MASReceipt/receipt file using "grep -q" command.
3. The third validation is that it validates the signature of the receipt. This is the moment you get the "Installer is Incomplete" error message. This can happen either your receipt file is actually changed by someone or the certificates included in the receipt file are expired.
You can view the certificate information executing below command, (first change directory to /Applications/Install OS X xxx.app/Contents/_MASReceipt/ directory)
openssl pkcs7 -inform der -in receipt -print_certs -text
If your machine time is not within the validity period of the certificates, the signature validation is failed and Unibeast prompts the "Installer is Incomplete" error message.
e.g.:
openssl pkcs7 -inform der -in receipt -print_certs -text | egrep 'Not Before|Not After'
Not Before: Nov 11 21:58:01 2010 GMT
Not After : Nov 11 21:58:01 2015 GMT
Not Before: Feb 14 18:56:35 2008 GMT
Not After : Feb 14 18:56:35 2016 GMT
Not Before: Apr 25 21:40:36 2006 GMT
Not After : Feb 9 21:40:36 2035 GMT
In this case, the lowest "Not After time" is Nov 11 21:58:01 2015 GMT and the highest "Not Before time" is Nov 11 21:58:01 2010 GMT. Therefore the time of your machines should be within Nov 11 21:58:01 2010 GMT and Nov 11 21:58:01 2015 GMT.
Therefore if you change the machine time appropriately, let's say 2015/01/01 then Unibeast will proceed without prompting the "Installer is Incomplete" error message. :)
Note: I think above validation was introduced by Unibeast developers to address a legal issue rather than making sure you have a genuine copy, because you can still have a modified installer files even when the receipt validation is passed. So if you download the MAC OS X Installer from a torrent site or any other place, check the MD5 or SHA1 of the InstallESD.dmg file.
For Further reads about apple receipts,
briliant
ReplyDeleteThis is an excellent post!
ReplyDeleteI replaced a single byte with this command:
printf '\x90' | dd of=UniBeast.app/Contents/MacOS/UniBeast seek=12898 bs=1 conv=notrunc
Now I can create the installer usb by creating a directory ('/Applications/Install OS X Yosemite.app/Contents/SharedSupport') and copying the Yosemite InstallESD.dmg there.
What is the 'jump if zero' offset for Unibeast 5.2.0 so I can use chimera?
^^ Wow. That's a nice way to patch it.
DeleteUnfortunately I have removed the OSX installation from my PC. But I'll try to check 5.2.0 soon. Thanks for your input.
X-tremly helpful. Thank You!
ReplyDeleteThis was a lifesaver. Thank you so much
ReplyDeletebloody brilliant indeed, thanks a ton for posting this
ReplyDeleteI finally figured out how to patch Unibeast 5.2.0, so now I can use Chimera with my older PC.
ReplyDeleteThis works the same as the above method and you only need one InstallESD.dmg file in the proper directory. The offset is 2ca1 (hex) or 11425 (decimal). I tried replacing the JE with a NOP, but Unibeast crashes. So I tried replacing it with a JNE and it worked!
printf '\x75' | dd of=UniBeast.app/Contents/MacOS/UniBeast seek=$((0x2ca1)) bs=1 conv=notrunc
Nice work. Thanks for sharing your experience.
DeleteYou are a lifesaver! I have old hardware that an OS newer than Lion won't work on (including the "early 2008" MacBook I'm typing this on, also stuck on Lion). UniBeast 5.2.0 is the last one to support Lion. Apple seems to no longer let people buy Lion in the App Store, but instead only through some strange checkout process that involves "1-2 days" processing time to SEND A LINK in email (like some shady eBay seller). I DID shell out the cash to Apple for it, but got tired of waiting. This patch finally made it accept my patched installer .app... ultimate hooray!
DeleteReally hate how Apple throws away good, old hardware by making it entirely unsupportable...
This comment has been removed by the author.
DeleteHi, I am just new here and in Mac patching...Can someone further help me explaining what to edit, how to edit.
ReplyDeleteRegards
Just open the terminal and go in the same directory where Unibeast is located and write this:
Deleteprintf '\x75' | dd of=UniBeast.app/Contents/MacOS/UniBeast seek=$((0x2ca1)) bs=1 conv=notrunc
perfekt Thanks!
ReplyDeleteThanks man!
ReplyDeletePlz any one have the unibeast alrdy modified plz share it! im stuck with my computer ><
ReplyDeleteJust open the terminal and go in the same directory where Unibeast is located and write this:
Deleteprintf '\x75' | dd of=UniBeast.app/Contents/MacOS/UniBeast seek=$((0x2ca1)) bs=1 conv=notrunc
changing date didn't work for me
ReplyDeleteWhat is the unibeast version you are using?
DeleteThis comment has been removed by the author.
ReplyDeleteCan you tell me how to patch unibeast 6 because changing date is not working.
ReplyDeleteThanks in advance.
Nice and helpful post, many thanks.
ReplyDeletePlease explain how to patch from the start
ReplyDeleteJust open the terminal and go in the same directory where Unibeast is located and write this:
Deleteprintf '\x75' | dd of=UniBeast.app/Contents/MacOS/UniBeast seek=$((0x2ca1)) bs=1 conv=notrunc
Still works till this day, thank you!
DeleteLife saver. My download was not from MAS so I didn't have the receipt folder. Editing with terminal just fixed it. Awesome
DeleteThis comment has been removed by the author.
ReplyDeleteits not working for sierra unibeast
ReplyDeleteCan you please elaborate your procedure?
DeleteWhere did you download the sierra from and etc
These don't work with the new unibeasts. Anyone have a fix?
ReplyDeleteI am trying to install Yosemite but only saved the InstallESD.dmg file in my files of ancient history. Unfortunately, the os selection remains grayed out even after patching unibeast 5.2. Since unibeast is probably just using the InstallESD.dmg file in the app to create the bootable usb, how can i get it to use the 'raw' InstallESD.dmg?
ReplyDeleteopen the install ESD And Show Hidden Files and you will See a Install OS X Yosemite.app and copy it to /Applications And Now open it and go and create a folder Called SharedSupport and put that install esd there you go :)
Deletehello i am using unibeast 6.2.0. i try this terminal. but it doesn't help.
ReplyDeletewhat to do ?
Super nice article! Thank you!
ReplyDeleteYou really saved my day!
ReplyDeleteThanks
Nice information, very useful
ReplyDeleteI love it!
ReplyDeletefor unibeast 6.2.0
ReplyDeleteprintf '\x75' | dd of=UniBeast.app/Contents/MacOS/UniBeast seek=$((0x2b3a)) bs=1 conv=notrunc
WORKING!! Thanks a lot
DeleteYou are a lifesaver. Thank you so much.
DeleteThis is awesome.
ReplyDeleteClearing...
Unibeast nn:
printf '\x90' | dd of=UniBeast.app/Contents/MacOS/UniBeast seek=12898 bs=1 conv=notrunc
Unibeast 5.2.0
printf '\x75' | dd of=UniBeast.app/Contents/MacOS/UniBeast seek=$((0x2ca1)) bs=1 conv=notrunc
Unibeast 6.2.0
printf '\x75' | dd of=UniBeast.app/Contents/MacOS/UniBeast seek=$((0x2b3a)) bs=1 conv=notrunc
Any idea of how to patch unibeast 7.1.1?
Perfect answer. You are a life saver. Thank YOU.
ReplyDeleteHoly cow this still works, thank you all!
ReplyDeletelo unico que me funciono fue leeer este articulo ... gracias infinitas
ReplyDeleteThank You and that i have a keen give: Where To Start With Whole House Renovation entire home renovations
ReplyDelete