unlocker 2.0.6

This commit is contained in:
Dave Parsons 2015-06-29 08:39:05 +01:00
parent 05e5b93dc3
commit ac62f4e972
10 changed files with 81 additions and 45 deletions

View File

@ -1,7 +1,7 @@
""" """
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2014 Dave Parsons Copyright (c) 2014-2015 Dave Parsons
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the 'Software'), to deal of this software and associated documentation files (the 'Software'), to deal

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
set -e set -e
echo VMware Unlocker 2.0.5 echo VMware Unlocker 2.0.6
echo =============================== echo ===============================
echo Copyright: Dave Parsons 2011-15 echo Copyright: Dave Parsons 2011-15
@ -13,6 +13,7 @@ echo Installing local.sh
cp local-template.sh local.sh cp local-template.sh local.sh
cat unlocker.py >> local.sh cat unlocker.py >> local.sh
echo END >> local.sh echo END >> local.sh
echo /etc/init.d/hostd restart >> local.sh
chmod +x local.sh chmod +x local.sh
cp local.sh /etc/rc.local.d/local.sh cp local.sh /etc/rc.local.d/local.sh
echo Success - please now restart the server! echo Success - please now restart the server!

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
set -e set -e
echo VMware Unlocker 2.0.5 echo VMware Unlocker 2.0.6
echo =============================== echo ===============================
echo Copyright: Dave Parsons 2011-15 echo Copyright: Dave Parsons 2011-15

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
set -e set -e
echo VMware Unlocker 2.0.5 echo VMware Unlocker 2.0.6
echo =============================== echo ===============================
echo Copyright: Dave Parsons 2011-15 echo Copyright: Dave Parsons 2011-15

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
set -e set -e
echo VMware Unlocker 2.0.5 echo VMware Unlocker 2.0.6
echo =============================== echo ===============================
echo Copyright: Dave Parsons 2011-15 echo Copyright: Dave Parsons 2011-15

View File

@ -2,7 +2,7 @@
set -e set -e
set -x set -x
echo VMware ESXi 6.x Unlocker 2.0.5 echo VMware ESXi 6.x Unlocker 2.0.6
echo =============================== echo ===============================
echo Copyright: Dave Parsons 2011-15 echo Copyright: Dave Parsons 2011-15
@ -35,6 +35,11 @@ ln -s /unlocker/vmx-debug /bin/vmx-debug
rm -fv /bin/vmx-stats rm -fv /bin/vmx-stats
ln -s /unlocker/vmx-stats /bin/vmx-stats ln -s /unlocker/vmx-stats /bin/vmx-stats
# Copy the libvmkctl.so file
cp /lib/libvmkctl.so /unlocker
rm -fv /lib/libvmkctl.so
ln -s /unlocker/libvmkctl.so /lib/libvmkctl.so
# Patch the vmx files # Patch the vmx files
logger -t unlocker Patching vmx files logger -t unlocker Patching vmx files
python <<END python <<END

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
set -e set -e
echo VMware Unlocker 2.0.5 echo VMware Unlocker 2.0.6
echo =============================== echo ===============================
echo Copyright: Dave Parsons 2011-15 echo Copyright: Dave Parsons 2011-15

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
set -e set -e
echo VMware Unlocker 2.0.5 echo VMware Unlocker 2.0.6
echo =============================== echo ===============================
echo Copyright: Dave Parsons 2011-15 echo Copyright: Dave Parsons 2011-15

View File

@ -20,6 +20,7 @@ being patched:
* Fix vmware-vmx and derivatives to allow Mac OS X to boot * Fix vmware-vmx and derivatives to allow Mac OS X to boot
* Fix vmwarebase .dll or .so to allow Apple to be selected during VM creation * Fix vmwarebase .dll or .so to allow Apple to be selected during VM creation
* Fix libvmkctl.so on ESXi 6 to allow use with vCenter
* A copy of the latest VMware Tools for OS X is included * A copy of the latest VMware Tools for OS X is included
Note that not all products recognise the darwin.iso via install tools menu item. Note that not all products recognise the darwin.iso via install tools menu item.
@ -47,7 +48,38 @@ require Python to be installed.
3. Limitations 3. Limitations
-------------- --------------
No known limitations. If you are using VMware Player or Workstation on Windows you may get a core dump.
Latest Linux and ESXi products are OK and do not show this problem.
+-----------------------------------------------------------------------------+
| IMPORTANT: |
| ========== |
| |
| If you create a new VM using version 11 hardware VMware will stop and |
| create a core dump.There are two options to work around this issue: |
| |
| 1. Change the VM to be HW 10 - this does not affect performance. |
| 2. Edit the VMX file and add: |
| smc.version = "0" |
| |
+-----------------------------------------------------------------------------+
To remove the check for server versions for OS X Leopard and Snow Leopard
(10.5 and 10.6) you must use a replacement EFI firwmare module from the firmware
folder.
If you are using a 32-bit installation of OS X:
1. Copy efi32-srvr.rom to guest folder.
2. Edit the vmx file and add:
efi32.filename = "efi32-srvr.rom"
If you are using a 64-bit installation of OS X:
1. Copy efi64-srvr.rom to guest folder.
2. Edit the vmx file and add:
efi64.filename = "efi64-srvr.rom"
4. Windows 4. Windows
---------- ----------
@ -102,38 +134,6 @@ Note:
2. The unlocker runs at boot time to patch the relevant files and it now survives 2. The unlocker runs at boot time to patch the relevant files and it now survives
an upgrade or patch to ESXi as local.sh is part of the persisted local state. an upgrade or patch to ESXi as local.sh is part of the persisted local state.
8. Notes
--------
+-----------------------------------------------------------------------------+
| IMPORTANT: |
| ========== |
| |
| If you create a new VM using version 11 hardware VMware will stop and |
| create a core dump.There are two options to work around this issue: |
| |
| 1. Change the VM to be HW 10 - this does not affect performance. |
| 2. Edit the VMX file and add: |
| smc.version = "0" |
| |
+-----------------------------------------------------------------------------+
To remove the check for server versions for OS X Leopard and Snow Leopard
(10.5 and 10.6) you must use a replacement EFI firwmare module from the firmware
folder.
If you are using a 32-bit installation of OS X:
1. Copy efi32-srvr.rom to guest folder.
2. Edit the vmx file and add:
efi32.filename = "efi32-srvr.rom"
If you are using a 64-bit installation of OS X:
1. Copy efi64-srvr.rom to guest folder.
2. Edit the vmx file and add:
efi64.filename = "efi64-srvr.rom"
8. Thanks 8. Thanks
--------- ---------
@ -153,7 +153,9 @@ History
- Refactored Python code - Refactored Python code
07/01/15 2.0.4 - Added View USB Service to Windows batch files 07/01/15 2.0.4 - Added View USB Service to Windows batch files
- Fixed broken GOS Table patching on Linux - Fixed broken GOS Table patching on Linux
15/06/15 2.0.5 - ESXi 6 working 18/06/15 2.0.5 - ESXi 6 working
- Latest tools from Fusion 7.1.1 - Latest tools from Fusion 7.1.2
20/06/15 2.0.6 - ESXi 6 patch for smcPresent vCenter compatibility
(c) 2011-2015 Dave Parsons (c) 2011-2015 Dave Parsons

View File

@ -1,7 +1,7 @@
""" """
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2014 Dave Parsons Copyright (c) 2014-2015 Dave Parsons & Sam Bingner
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the 'Software'), to deal of this software and associated documentation files (the 'Software'), to deal
@ -303,12 +303,28 @@ def patchbase(name):
offset += 33 offset += 33
# # Tidy up # Tidy up
f.flush() f.flush()
f.close() f.close()
print 'GOS Patched: ' + name print 'GOS Patched: ' + name
def patchvmkctl(name):
# Patch file
print 'smcPresent Patching: ' + name
f = open(name, 'r+b')
# Read file into string variable
vmkctl = f.read()
applesmc = vmkctl.find('applesmc')
f.seek(applesmc)
f.write('vmkernel')
# Tidy up
f.flush()
f.close()
print 'smcPresent Patched: ' + name
def main(): def main():
# Work around absent Platform module on VMkernel # Work around absent Platform module on VMkernel
@ -338,6 +354,7 @@ def main():
vmx_debug = vmx_path + 'vmx-debug' vmx_debug = vmx_path + 'vmx-debug'
vmx_stats = vmx_path + 'vmx-stats' vmx_stats = vmx_path + 'vmx-stats'
vmwarebase = '' vmwarebase = ''
libvmkctl = vmx_path + 'libvmkctl.so'
elif osname == 'windows': elif osname == 'windows':
reg = ConnectRegistry(None, HKEY_LOCAL_MACHINE) reg = ConnectRegistry(None, HKEY_LOCAL_MACHINE)
@ -353,6 +370,14 @@ def main():
print('Unknown Operating System: ' + osname) print('Unknown Operating System: ' + osname)
return return
# Test - remove
# osname = 'vmkernel'
# vmx = 'D:\\vmware\\test\\patched\\vmx'
# vmx_debug = 'D:\\vmware\\test\\patched\\vmx-debug'
# vmx_stats = 'D:\\vmware\\test\\patched\\vmx-stats'
# vmwarebase = ''
# libvmkctl = 'D:\\vmware\\test\\patched\\libvmkctl.so'
# Patch the vmx executables skipping stats version for Player # Patch the vmx executables skipping stats version for Player
patchsmc(vmx, osname) patchsmc(vmx, osname)
patchsmc(vmx_debug, osname) patchsmc(vmx_debug, osname)
@ -368,6 +393,9 @@ def main():
else: else:
print 'Patching vmwarebase is not required on this system' print 'Patching vmwarebase is not required on this system'
if osname == 'vmkernel':
patchvmkctl(libvmkctl)
if __name__ == '__main__': if __name__ == '__main__':
main() main()