diff options
author | Jean-Marc Lenoir | 2017-11-28 13:56:13 +0100 |
---|---|---|
committer | Jean-Marc Lenoir | 2017-11-28 13:56:13 +0100 |
commit | 73a116f0432eca9813cccf6280e5b10c3d259b1d (patch) | |
tree | d984a9d0b7511f1b785f9424373a63573d13f6e5 | |
parent | 0032b4ef43b89cef61a6e682e9d0aee7b24478f0 (diff) | |
download | aur-73a116f0432eca9813cccf6280e5b10c3d259b1d.tar.gz |
Update unlocker file
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 13 | ||||
-rwxr-xr-x[-rw-r--r--] | unlocker.py | 57 | ||||
-rw-r--r-- | vmware-networks.service | 2 |
4 files changed, 38 insertions, 38 deletions
@@ -70,7 +70,7 @@ pkgbase = vmware-workstation sha256sums = f9440479f3ae5ad0a39bba3150276627878bf83d6879444fb327c53a1dbb5a4d sha256sums = 70301aa4eff4f42d7d39b276445dc7d8f44b8a0e184775e8a9e3055bb9d8590a sha256sums = e3812b78158672c7d96b6a58877681462f3fbdfe99a948b32c80c755c8682450 - sha256sums = f9297948eba55fbaa6c9d1846b92070f27fda17afe78b41ed0e4c2eaa452b56c + sha256sums = a651de50e91f386057d69d11e2cdf6e020229aae0631f25073ca09fbb878d1db sha256sums = d7a9fbf39a0345ae2f14f7f389f30b1110f605d187e0c241e99bbb18993c250d sha256sums = 05e26d8b21d190ebabb7f693998114d9d5991d9dfb71acb4d990293a65b6b487 sha256sums = 6ce902b1dab8fc69be253abd8e79017011985eca850ff7acc7282f9ab668e35d @@ -78,7 +78,7 @@ pkgbase = vmware-workstation sha256sums = 4f07320c1f9e71e649cf3e98ec107ba5521d52e50ad781ccc9dc1b61817342ae sha256sums = 3aeee4ddad2e94e5dbd8da3f995ad3f887f35a241d82e8c64a22f792c159cc44 sha256sums = 2c6076d55da659723fb7b7871baaee95df3bdcd90e448955ed1ec53df6a1f2d0 - sha256sums = a3877c72e4eaed6546a2d066f73f71665c51ea87cc752655185d99340deb7d70 + sha256sums = 522203ef0fa9cc621a67ba3df9d2070bbc21d9fdc85536ed10ebd85b99b83251 pkgname = vmware-workstation @@ -104,7 +104,7 @@ sha256sums=( 'f9440479f3ae5ad0a39bba3150276627878bf83d6879444fb327c53a1dbb5a4d' '70301aa4eff4f42d7d39b276445dc7d8f44b8a0e184775e8a9e3055bb9d8590a' 'e3812b78158672c7d96b6a58877681462f3fbdfe99a948b32c80c755c8682450' - 'f9297948eba55fbaa6c9d1846b92070f27fda17afe78b41ed0e4c2eaa452b56c' + 'a651de50e91f386057d69d11e2cdf6e020229aae0631f25073ca09fbb878d1db' 'd7a9fbf39a0345ae2f14f7f389f30b1110f605d187e0c241e99bbb18993c250d' '05e26d8b21d190ebabb7f693998114d9d5991d9dfb71acb4d990293a65b6b487' @@ -135,7 +135,7 @@ source+=( sha256sums+=( '3aeee4ddad2e94e5dbd8da3f995ad3f887f35a241d82e8c64a22f792c159cc44' '2c6076d55da659723fb7b7871baaee95df3bdcd90e448955ed1ec53df6a1f2d0' - 'a3877c72e4eaed6546a2d066f73f71665c51ea87cc752655185d99340deb7d70' + '522203ef0fa9cc621a67ba3df9d2070bbc21d9fdc85536ed10ebd85b99b83251' ) _fusion_isoimages=(darwin darwinPre15) @@ -180,9 +180,7 @@ if [ -n "$_enable_macOS_guests" ]; then rm manifest.plist done - sed -i -e "s/vmx_path = '/vmx_path = '${pkgdir//\//\\/}/" \ - -i -e "s/vmwarebase = '/vmwarebase = '${pkgdir//\//\\/}/" \ - -i -e "s/vmx_version = .*$/vmx_version = 'VMware Player ${_pkgver/_/ build-}'/" "$srcdir/unlocker.py" + sed -i -e "s|/usr/lib/vmware/|${pkgdir}/usr/lib/vmware/|" "$srcdir/unlocker.py" fi } @@ -367,10 +365,9 @@ package() { sed -i 's,@@LIBCONF_DIR@@,/usr/lib/vmware/libconf,g' "$pkgdir/usr/lib/vmware/libconf/etc/$file" done - sed -i 's,@@BINARY@@,/usr/bin/vmware,' "$pkgdir/usr/share/applications/vmware-workstation.desktop" + sed -i 's,@@BINARY@@,/usr/lib/vmware/bin/vmware,' "$pkgdir/usr/share/applications/vmware-workstation.desktop" + sed -i 's,@@BINARY@@,/usr/lib/vmware/bin/vmplayer,' "$pkgdir/usr/share/applications/vmware-player.desktop" sed -i 's,@@BINARY@@,/usr/bin/vmware-netcfg,' "$pkgdir/usr/share/applications/vmware-netcfg.desktop" - sed -i 's,@@VMWARE_INSTALLER@@,/usr/bin/vmware,' "$pkgdir/usr/share/applications/vmware-workstation.desktop" - sed -i 's,@@BINARY@@,/usr/bin/vmplayer,' "$pkgdir/usr/share/applications/vmware-player.desktop" sed -i 's,@@AUTHD_PORT@@,902,' "$pkgdir/usr/lib/vmware/hostd/docroot/client/clients.xml" diff --git a/unlocker.py b/unlocker.py index 90fc9e0446d8..e89fb9b997b0 100644..100755 --- a/unlocker.py +++ b/unlocker.py @@ -58,13 +58,6 @@ if sys.platform == 'win32' \ from _winreg import * -def rot13(s): - chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz' - trans = chars[26:] + chars[:26] - rotchar = lambda c: trans[chars.find(c)] if chars.find(c) > -1 else c - return ''.join(rotchar(c) for c in s) - - def bytetohex(data): if sys.version_info > (3, 0): # Python 3 code in this block @@ -74,8 +67,8 @@ def bytetohex(data): return "".join("{:02X} ".format(ord(c)) for c in data) -def joinpath(folder, file): - return os.path.join(folder, file) +def joinpath(folder, filename): + return os.path.join(folder, filename) def printkey(i, offset, smc_key, smc_data): @@ -89,6 +82,18 @@ def printkey(i, offset, smc_key, smc_data): + ' ' + bytetohex(smc_data)) +def set_bit(value, bit): + return value | (1 << bit) + + +def clear_bit(value, bit): + return value & ~(1 << bit) + + +def test_bit(value, bit): + return value & bit + + E_CLASS64 = 2 E_SHT_RELA = 4 @@ -116,7 +121,7 @@ def patchelf(f, oldoffset, newoffset): for i in range(0, e_shnum): f.seek(e_shoff + i * e_shentsize) e_sh = struct.unpack('=LLQQQQLLQQ', f.read(e_shentsize)) - e_sh_name = e_sh[0] + # e_sh_name = e_sh[0] e_sh_type = e_sh[1] e_sh_offset = e_sh[4] e_sh_size = e_sh[5] @@ -140,7 +145,7 @@ def patchelf(f, oldoffset, newoffset): def patchkeys(f, key): # Setup struct pack string key_pack = '=4sB4sB6xQ' - smc_old_memptr = 0 + # smc_old_memptr = 0 smc_new_memptr = 0 # Do Until OSK1 read @@ -166,7 +171,7 @@ def patchkeys(f, key): # Write new data routine pointer from +LKS print('OSK0 Key Before:') printkey(i, offset, smc_key, smc_data) - smc_old_memptr = smc_key[4] + # smc_old_memptr = smc_key[4] f.seek(offset) f.write(struct.pack(key_pack, smc_key[0], smc_key[1], smc_key[2], smc_key[3], smc_new_memptr)) f.flush() @@ -296,34 +301,33 @@ def patchbase(name): f = open(name, 'r+b') # Entry to search for in GOS table + # Should work for 12 & 14 of Workstation... darwin = ( '\x10\x00\x00\x00\x10\x00\x00\x00' '\x02\x00\x00\x00\x00\x00\x00\x00' '\x00\x00\x00\x00\x00\x00\x00\x00' '\x00\x00\x00\x00\x00\x00\x00\x00' - '\x3E' ) # Read file into string variable base = f.read() - # Loop thorugh each entry and set top bit - # 0x3E --> 0x3F + # Loop through each entry and set top bit + # 0xBE --> 0xBF (WKS 12) + # 0x3E --> 0x3F (WKS 14) offset = 0 while offset < len(base): offset = base.find(darwin, offset) if offset == -1: break f.seek(offset + 32) - flag = f.read(1) - if flag == '\x3E': - f.seek(offset + 32) - f.write('\x3F') - print('GOS Patched flag @: ' + hex(offset)) - else: - print('GOS Unknown flag @: ' + hex(offset) + '/' + hex(int(flag))) - - offset += 33 + flag = ord(f.read(1)) + flag = set_bit(flag, 0) + flag = chr(flag) + f.seek(offset + 32) + f.write(flag) + print('GOS Patched flag @: ' + hex(offset)) + offset += 40 # Tidy up f.flush() @@ -372,8 +376,7 @@ def main(): vmx = joinpath(vmx_path, 'vmware-vmx') vmx_debug = joinpath(vmx_path, 'vmware-vmx-debug') vmx_stats = joinpath(vmx_path, 'vmware-vmx-stats') - vmx_version = subprocess.check_output(["vmplayer", "-v"]) - if vmx_version.startswith('VMware Player 14'): + if os.path.isfile('/usr/lib/vmware/lib/libvmwarebase.so/libvmwarebase.so'): vmx_so = True vmwarebase = '/usr/lib/vmware/lib/libvmwarebase.so/libvmwarebase.so' else: @@ -426,4 +429,4 @@ def main(): if __name__ == '__main__': - main()
\ No newline at end of file + main() diff --git a/vmware-networks.service b/vmware-networks.service index 587f52e82e8c..b501b8226ec8 100644 --- a/vmware-networks.service +++ b/vmware-networks.service @@ -6,7 +6,7 @@ After=vmware-networks-configuration.service [Service] Type=forking Restart=always -ExecStartPre=/usr/bin/modprobe vmnet +ExecStartPre=-/sbin/modprobe vmnet ExecStart=/usr/bin/vmware-networks --start ExecStop=/usr/bin/vmware-networks --stop |