我破解了你的破解

背景

用MAC电脑偶尔有些时候需要用到windows,之前还有双系统可以选择,但从M1芯片开始,双系统就玩不了了,好在有虚拟机,而且性能还不错,日常够用了。

我用的是Parallels,之前有个PD Runner,适用于Parallels Desktop的启动器, 可无视试用期限强制启动客户机 (支持 PD17.1.0),但是最近用不了了。

一番搜索学习后,B站发现了个用PD Start的视频,也可以实现绕过限制。然而实际下载安装后发现有报错无法使用。从视频得知作者用的是python写的,比较对口,于是便开始对它二次开发。

本项目仅用于学习研究使用, 请支持正版!

过程

扒源码

作者本身是没有提供源码的,但是这个工程使用的py2app打包,因此可以分析源码肯定在应用包中。

分析源码

作者代码还是比较工整的,通过源码中分析不难看出,其核心步骤就是修改系统时间,调用系统命令启动虚拟机后再改回系统时间。

    # 修改电脑时间
    (datestatus, dateoutput) = subprocess.getstatusoutput(
        "echo {} | sudo -S {}".format(config["password"], f"date {pc_time}2019"))  # 设置日期
    print(datestatus, dateoutput)
    
    prlctl = "/usr/local/bin/prlctl"  # 怕环境变量异常,尝试使用更粗暴的方式
    cmd = prlctl + " start " + "\"" + parm.title + "\""
    (status, output) = subprocess.getstatusoutput(cmd)  # 启动PD的系统
    
    # 将时间改回来
    (datestatus, dateoutput) = subprocess.getstatusoutput(
        "echo {} | sudo -S {}".format(config["password"], f"date {pc_time}{nowdate.year}"))  # 设置日期
    print(datestatus, dateoutput)
自定义开发

实际也没改啥,不过介于作者提供的版本运行报错,我自己装了相关的运行依赖debug来看,是没有出现了,估计是m1版本的问题。

于是就用pipenv管理下依赖,源码也用git管理下,后面有问题也好详细定位处理,顺手改了改文案重新打包吧。

pipenv --python=3.8
pipenv install
python setup.py py2app -A

使用

效果还不错,后面看需求再给它加功能吧。
亲测macbook m1 pro + PD 17.1 有效,需要自取:
链接: https://pan.baidu.com/s/1YjBHyUwwiVS6FsI3clB4jg
提取码: 评论回复获取。

总结

当是复习python的桌面应用开发了,有条件的还请支持原版吧,我比较穷。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容