I was recently asked by a client to port a simple web-based javascript program to an iOS app. I was pretty keen to try my hand at something new, however I’ve got a big idealogical problem with Apple – mostly because I think their hardware products are hugely overpriced for the specifications but also because of their annoying insistence that you have to develop for iOS on mac software. It’s not like Windows or Andriod which you can develop on any platform. So, I’m not willing to buy a mac (especially since I’ve just recently bought a nice new laptop), but I want to have a go at developing an iOS app…

Enter Virtualbox. It’s a piece of software that allows you to run a virtual computer ‘guest’ inside your standard computer ‘host’. I’ve used it before to have a separate windows installation for games and development, but I recently found out it was possible to run mac OS X too. It’s almost impossible to run OS X on anything other than official apple hardware, but it turns out the ‘guest’ machines created by virtualbox can be tweaked and are much easier to get OS X running. By the way you should know that this is not really in line with Apple’s T&C’s….

Realistically you are going to need a quad core processor with at least 8GB of ram on your host machine. Here’s a step by step guide:

1. Download virtualbox (I’m using version 5.1) and install it, along with Winrar or 7zip and some torrent downloading software if you don’t have those already.

 

2. Download the mac OS X El Capitan virtualbox disk, and unzip it. The following link contains details of the download (you’ll need to follow my instructions to get the screen resolution and apple ID working correctly though..)
https://techsviewer.com/how-to-install-mac-os-x-el-capitan-on-pc-on-virtualbox/

 

3. Open virtualbox and click ‘New’ to create a new virtual machine with the following details:
Name: El Capitan
Type: Mac OS X
Version: Mac OS X 10.11 El Capitan (64 bit)

1

Click next, select 4GB of RAM, and next again.
Select the El Capitan image that you have downloaded and unzipped as the disk image, and create the machine.

2
Back in the virtualbox manager, select your virtual machine and click edit.

In System>Motherboard, ensure that EFI is Enabled, Floppy id Disabled, Chipset is PIIX3.

3

In System>Processor, select two CPUs.

4

 

4. Open the windows command prompt as Administrator (type cmd at the start menu, right click and ‘Run as Administrator’)

cd "C:\Program Files\Oracle\VirtualBox\"
VBoxManage.exe modifyvm "El Capitan" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
VBoxManage setextradata "El Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" "iMac11,3"
VBoxManage setextradata "El Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" "1.0"
VBoxManage setextradata "El Capitan" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" "Iloveapple"
VBoxManage setextradata "El Capitan" "VBoxInternal/Devices/smc/0/Config/DeviceKey" "ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"
VBoxManage setextradata "El Capitan" "VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" 1

You can leave the command line window open.

 

5. Boot the virtual machine, and complete the setup for location and keyboard but DO NOT sign in with an Apple ID because it will not work until we have completed some steps below.

 

6. Open safari, search for and download a program called Chameleon Wizard. You will probably need to change the system settings to allow non-app store programs to run. Open Chameleon Wizard and click on the SMbios tab.

Click Edit, and then select one of the pre-made SMbioses. Choose the type of mac you want (doesn’t really matter what, but best to resemble the virtual machine you’ve create I reckon), choose a manufacturing location and randomise the week of manufacture. It will generate spoof identification for the virtual machine. Copy down the Product Name; Board Product; and Serial and shutdown the virtua lmachine.

5

 

7. In windows, in the command line windows, enter the following commands, replacing the 3 items of information you just copied down.

cd "C:\Program Files\Oracle\VirtualBox\"
VBoxManage setextradata "El Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" ""
VBoxManage setextradata "El Capitan" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "string:"
VBoxManage setextradata "El Capitan" "VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" ""

 

8. The display resolutions are fixed and you can’t get all of them. To set up your display,
in the windows command line enter the following (Where N can be one of 0,1,2,3,4,5 referring to the 640×480, 800×600, 1024×768, 1280×1024, 1440×900, 1920×1200 screen resolution respectively.)

VBoxManage setextradata "El Capitan" VBoxInternal2/EfiGopMode N

Close the command line window.

 

9. You can now boot the virtual machine, and will be able to log into it with an Apple ID. If you don’t have one, just google Apple ID and you can create one on the Apple website. You can then log into the App Store and will be able to download apps and update as per a standard installation.