一种解决各种 macos unlocker 无法下载 Darwin.iso 的方法

该文提供了一种自动化方法,将Darwin文件集成到VMware源程序的下载目录中。通过修改特定文件,首先从官方或镜像下载com.vmware.fusion.zip.tar,然后进行解压、移动和清理操作,确保Darwin.iso和darwinPre15.iso文件正确放置于tools目录下,从而实现工具的顺利获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决思路

将Darwin 文件集成到源程序下载目录,并修改相应文件

修改完成版

链接 提取码: t8ur

具体步骤

1.点击官方下载镜像下载vmware提供的com.vmware.fusion.zip.tar。并放到unlocker的tools文件下。
2.删除gettools.py的main函数
3复制下述代码在原来main.py处

注意保存 特别是用vscode

def main():

	dest = os.path.dirname(os.path.abspath(__file__))

	# Re-create the tools folder
	

	# Last published version doesn't ship with darwin tools
	# so in case of error get it from the core.vmware.fusion.tar
	print('Trying to get tools from the packages folder...')

	# Setup url and file paths
	# Get the list of Fusion releases
	# And get the last item in the ul/li tags
	
		
	print('Extracting com.vmware.fusion.zip.tar...')
	tar = tarfile.open(convertpath(dest + '/tools/com.vmware.fusion.zip.tar'), 'r')
	tar.extract('com.vmware.fusion.zip', path=convertpath(dest + '/tools/'))
	tar.close()
		
	print('Extracting files from com.vmware.fusion.zip...')
	cdszip = zipfile.ZipFile(convertpath(dest + '/tools/com.vmware.fusion.zip'), 'r')
	cdszip.extract('payload/VMware Fusion.app/Contents/Library/isoimages/darwin.iso', path=convertpath(dest + '/tools/'))
	cdszip.extract('payload/VMware Fusion.app/Contents/Library/isoimages/darwinPre15.iso', path=convertpath(dest + '/tools/'))
	cdszip.close()
		
		# Move the iso and sig files to tools folder
	shutil.move(convertpath(dest + '/tools/payload/VMware Fusion.app/Contents/Library/isoimages/darwin.iso'), convertpath(dest + '/tools/darwin.iso'))
	shutil.move(convertpath(dest + '/tools/payload/VMware Fusion.app/Contents/Library/isoimages/darwinPre15.iso'), convertpath(dest + '/tools/darwinPre15.iso'))
		
		# Cleanup working files and folders
	shutil.rmtree(convertpath(dest + '/tools/payload'), True)
	os.remove(convertpath(dest + '/tools/com.vmware.fusion.zip.tar'))
	os.remove(convertpath(dest + '/tools/com.vmware.fusion.zip'))
		
	print('Tools retrieved successfully')
	return
	
	# Tools have been found, go with the normal way
	
	# Extract the tar to zip
	tar = tarfile.open(convertpath(dest + '/tools/com.vmware.fusion.tools.darwin.zip.tar'), 'r')
	tar.extract('com.vmware.fusion.tools.darwin.zip', path=convertpath(dest + '/tools/'))
	tar.close()

	# Extract the iso and sig files from zip
	cdszip = zipfile.ZipFile(convertpath(dest + '/tools/com.vmware.fusion.tools.darwin.zip'), 'r')
	cdszip.extract('payload/darwin.iso', path=convertpath(dest + '/tools/'))
	cdszip.extract('payload/darwin.iso.sig', path=convertpath(dest + '/tools/'))
	cdszip.close()

	# Move the iso and sig files to tools folder
	shutil.move(convertpath(dest + '/tools/payload/darwin.iso'), convertpath(dest + '/tools/darwin.iso'))
	shutil.move(convertpath(dest + '/tools/payload/darwin.iso.sig'), convertpath(dest + '/tools/darwin.iso.sig'))

	# Cleanup working files and folders
	shutil.rmtree(convertpath(dest + '/tools/payload'), True)
	os.remove(convertpath(dest + '/tools/com.vmware.fusion.tools.darwin.zip.tar'))
	os.remove(convertpath(dest + '/tools/com.vmware.fusion.tools.darwin.zip'))

	# Download the darwinPre15.iso tgz file
	print('Retrieving DarwinPre15 tools from: ' + urlpre15)
	urlretrieve(urlpre15, convertpath(dest + '/tools/com.vmware.fusion.tools.darwinPre15.zip.tar'))

	# Extract the tar to zip
	tar = tarfile.open(convertpath(dest + '/tools/com.vmware.fusion.tools.darwinPre15.zip.tar'), 'r')
	tar.extract('com.vmware.fusion.tools.darwinPre15.zip', path=convertpath(dest + '/tools/'))
	tar.close()

	# Extract the iso and sig files from zip
	cdszip = zipfile.ZipFile(convertpath(dest + '/tools/com.vmware.fusion.tools.darwinPre15.zip'), 'r')
	cdszip.extract('payload/darwinPre15.iso', path=convertpath(dest + '/tools/'))
	cdszip.extract('payload/darwinPre15.iso.sig', path=convertpath(dest + '/tools/'))
	cdszip.close()

	# Move the iso and sig files to tools folder
	shutil.move(convertpath(dest + '/tools/payload/darwinPre15.iso'),
				convertpath(dest + '/tools/darwinPre15.iso'))
	shutil.move(convertpath(dest + '/tools/payload/darwinPre15.iso.sig'),
				convertpath(dest + '/tools/darwinPre15.iso.sig'))

	# Cleanup working files and folders
	shutil.rmtree(convertpath(dest + '/tools/payload'), True)
	os.remove(convertpath(dest + '/tools/com.vmware.fusion.tools.darwinPre15.zip.tar'))
	os.remove(convertpath(dest + '/tools/com.vmware.fusion.tools.darwinPre15.zip'))

注意保存 特别是用vscode

注意保存 特别是用vscode

注意保存 特别是用vscode

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值