标签:过程 replace 解决办法 cmd ssi idp 运行 minimal extra
最近闲的突然想找点事来折腾一下, 于是随着苹果的发布会就盯上自己手上的 iPhone, 也想弄个 Mac 来搞 IOS. 于是就有了这个填坑故事.
为什么要修改补丁源码:
\1. 安装环境
\2. 系统硬件配置
填壹号坑: Unlocker 的最新版本 v3.0.2 仅支持 VMware 的 12~14 版本(终端输出的, 本人之前用的是15的, 总是报各种错, 所以就发现了这个坑).
一定要使用 Pro 版本, Player 版本安装的黑苹果不稳定, 经常会自动重启..
- cdr [推荐], 懒人安装包, 因为易装, 麻烦少.
填贰号坑: 试过使用神马HFSExplorer将dmg 转cdr的工具, 结果那工具不行, 老是弹出 error 框. 于是就搜索下载别人发的 cdr包进行安装
- dmg, 原始镜像, 没有试过这个格式的安装, 不了解填这个坑
- ISO, 可以使用 UltraISO 工具将 dmg 格式转为 iso 格式, 然后进行安装, 但是中途遇到了 boot 问题, 于是换用cdr 进行安装
能够让 VMware 选择 Mac 系统进行安装的补丁
windows 选择第一个 unlocker302.zip 进行下载即可
\1. 安装 VMware Pro 14, 并注册
此处网络上教程挺多, 安装也不复杂, 过程很顺利
注册看个人了, 惯用方式是网上搜索密钥进行注册, 密钥如:
ZC5XK-A6E0M-080XQ-04ZZG-YF08D
;
ZY5H0-D3Y8K-M89EZ-AYPEG-MYUA8
.
在任务栏的搜索框中, 搜索 cmd, 然后右击使用管理员运行 cmd
解压已经下载的 unlocker, 并在 刚才打开的终端中 cd 到目录下
执行 win-install.cmd
看到终端有 Successfully, Finished 等词, 先不要高兴太早, 因为那整句话是否定的.
报错内容有:
***.***
文件权限问题哪一个文件的权限出了问题, 就找到它并给它添加权限就可以了.
操作步骤: 右击选择属性 --> 选择安全选项卡 --> 点击编辑 --> 选择 Everyone (组或用户名) --> 允许完全控制.
没有找到
drawn*.*
文件看了一下终端是访问了
http://***
链接之后才报的错误, 认为是访问超时了结果重试了几次都不行, 然后打开浏览器进行访问该链接, 结果浏览器返回 not found. 一脸懵逼, 简直坑爹啊填叁号坑: 解决办法 - 修改源码后重新编译打包exe
修改文件: gettools.py, 修改后的完整代码放在最后, 有中文注释.
思路: 访问问题, 那就修改访问的链接; 由于VMware 服务器识别 UA, 所以伪装 UA.
打包exe: 需要 python3.x 环境, 依赖包: requests, PyInstaller; 打包命令pyinstaller -F gettools.py
替换 gettools.exe 文件: 打包 exe 后, 会生成 dist 文件夹, 找到里面的 exe 文件, 替换 unlocker 文件夹中的 gettools.exe 文件补充: 安装依赖包的命令:
pip3 install requests
;pip3 install PyInstaller
; 打包exe 前, 需要打开终端并切换目录到 gettools.py 文件所在目录下.
\3. 安装 mac
- 虚拟系统启动, 虚拟机报错问题:
打开
***.vmx
文本文件, 添加smc.version = "0"
配置项
- 安装盘问题:
选择菜单栏上的实用工具 --> 然后选择 VMware 硬盘 --> 点击抹掉按钮 --> 输入一个英文名称即可
关机mac, 在 CD/DVD 处选择 VMware Pro 安装目录下的 darwn.iso (Unlocker 生成的文件), 我的安装目录是
C:\Program Files (x86)\VMware\VMware Workstation
开机, 打开桌面上的光盘进行安装, 所以 drawn.iso 是用来安装 VMTools 插件的.
在VMware里装 VMTools 后发现全屏时的分辨率是 950 (HiDPI) 的, 在设置/显示器/缩放中, 点击1920 的死活切换不了
打开终端依次输入以下命令:
cd /Library/Preferences
, 切换目录.
plutil -p com.apple.windowserver.plist
查看现在的plist设置, 值应该是 1.
sudo plutil -replace DisplayResolutionEnabled -bool "NO" com.apple.windowserver.plist
修改plist 设置为 0.重启生效.
gettools.py
from __future__ import print_function
import os
import shutil
import sys
import tarfile
import zipfile
# 添加处, 方便伪装 User-Agent
import requests
# 添加处
def download_drawn(url, path):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
}
resp = requests.get(url, headers=headers, timeout=180)
with open(path, "wb") as fp:
fp.write(resp.content)
def convertpath(path):
# OS path separator replacement funciton
return path.replace(os.path.sep, '\\') # 修改处
def main():
# Check minimal Python version is 2.7
if sys.version_info < (2, 7):
sys.stderr.write('You need Python 2.7 or later\n')
sys.exit(1)
# Setup url and file paths
url = 'http://softwareupdate.vmware.com/cds/vmw-desktop/fusion/'
dest = os.path.dirname(os.path.abspath(__file__))
# Re-create the tools folder
shutil.rmtree(dest + '/tools', True)
os.mkdir(dest + '/tools')
# 删改处
urlpost15 = url + '11.1.0/13668589' + '/packages/com.vmware.fusion.tools.darwin.zip.tar'
urlpre15 = url + '11.1.0/13668589' + '/packages/com.vmware.fusion.tools.darwinPre15.zip.tar'
# Download the darwin.iso tgz file
print('Retrieving Darwin tools from: ' + urlpost15)
# 修改处
download_drawn(urlpost15, convertpath(dest + '/tools/com.vmware.fusion.tools.darwin.zip.tar'))
# 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)
# 修改处
download_drawn(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'))
if __name__ == '__main__':
main()
填坑黑苹果(VMware装MacOS) - 修改 Unlocker 补丁源码版
标签:过程 replace 解决办法 cmd ssi idp 运行 minimal extra
原文地址:https://www.cnblogs.com/trent-fzq/p/11564442.html