V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cmichael
V2EX  ›  macOS

macwk 的 app 安装非得搞成命令行的形式,是何用意?

  •  
  •   cmichael · 2021-04-11 23:22:40 +08:00 · 10980 次点击
    这是一个创建于 1352 天前的主题,其中的信息可能已经有所发展或是发生改变。

    技术上,是如何做到的?

    感觉和执行.exe 一个心态

    20 条回复    2022-10-21 14:02:46 +08:00
    Tink
        1
    Tink  
       2021-04-12 00:40:08 +08:00 via Android
    无非就是打个包封装一下啊,目的不知道
    ooops
        2
    ooops  
       2021-04-12 01:28:39 +08:00
    里面有文章说,不过根据规则,不建议这里讨论盗版软件站。。
    doveyoung
        3
    doveyoung  
       2021-04-12 09:23:31 +08:00
    怎么感觉最近讨论学习版软件的多了起来……
    Depth
        4
    Depth  
       2021-04-12 09:49:42 +08:00
    URL/article/macwk-dmg-install
    根据规则,不建议这里讨论盗版软件站
    avia1ae
        5
    avia1ae  
       2021-04-12 18:11:03 +08:00
    不是很喜欢这个站,破解也不是他们做的,非要自己再套个皮。
    虽然 macOS 已经相当安全,但是还是不放心。
    TNT 团队出的 dmg 包都是直接拖进应用程序就能用,不知道 macwk 会不会有别的小心思。
    avia1ae
        6
    avia1ae  
       2021-04-12 18:12:10 +08:00
    补充一条,macOS 正统的安装方式只有 pkg 和 dmg,做一个 unix 可执行文件安装我个人是不敢去用。
    cmichael
        7
    cmichael  
    OP
       2021-04-12 19:12:30 +08:00
    @avia1ae 对的 我也不敢 相信没有免费的午餐
    dioxide
        8
    dioxide  
       2021-04-12 21:11:38 +08:00
    是否有办法能到做将 这个被打包的可执行文件 放在一个沙盒环境中, 并能检测和记录其所做的所有动作,包括调用了哪些系统 API,写入了哪些文件?

    有这样的办法吗?
    avia1ae
        9
    avia1ae  
       2021-04-13 15:56:14 +08:00 via iPhone
    @cmichael 有倒是有,但是资源不好获取。很难相信现在这个年代还有人有互联网分享精神,但是的确是有的
    TongNianShanHe
        10
    TongNianShanHe  
       2021-04-13 16:42:56 +08:00 via Android
    据说是为了傻瓜化并且防被人盗用卖钱
    sirlion
        11
    sirlion  
       2021-04-13 17:15:40 +08:00 via iPhone
    这就是把开源的东西封闭化,现在确实是有人拿着开源的去卖钱给小白,它打包起来一定程度维护了自己的利益,但是后续做大做稳定了,它会不会加私货谁能保证呢
    macwk
        12
    macwk  
       2021-04-16 11:55:24 +08:00   ❤️ 7
    我是站长,统计来源到这儿来的,来回复一下,我尽量简单一点来说一下这个事儿。

    做这个网站最主要的原因是当初自己下软件遇到了不少问题,比如:需要开会员、无安装激活步骤或看不明白、有挖矿程序、被马克丁之类的代理商全内网下架、下载速度慢等等,总之下载个应用非常的麻烦。

    所以就做了这个网站,自己装软件方便顺带也方便大家,期间过程就不再赘述了。

    一、为什么不使用 TNT/HCiSO/官方包 而非得换一种打包方式并且使用二进制 bash 脚本的方式安装。

    换打包方式是为了操作体验的一致性,而且在下载页面明确标注了应用的来源是 TNT/HCiSO/开源 /官方 等渠道。还有几十款是我自己买的激活码发出来的。

    用和谐软件永远避不开一个运行损坏的问题,而要修复损坏需要开任何来源,开任何来源就需要执行命令,而它需要电脑密码。

    1. 最初并没有用二进制的方式,用的就是传统的拖拽安装+安装必读文档。逻辑是用户拖拽安装后,如果运行显示损坏,如果还不能解决就打开安装必读文档看看相应的解决方法,而网站的文章区我也把常见的问题都单独发了文章。

    但是呢,慢慢地发现不少的用户遇到问题几乎不会点开那个安装必读的文档查看,而是选择加你的 QQ/发邮件问你如何解决。

    2. 于是做了第二次打包的改进,加了一个修复损坏的脚本(本着分享精神,脚本是可查看源代码的,判断应用是否安装,运行异常代码是多少,判断代码执行不同的命令),遇到损坏的问题只需要执行一下它,然后输电脑密码回车即可。这时候的逻辑就成了用户拖拽安装后,如果运行显示损坏,就执行包内的修复损坏脚本,如果还不能解决就打开安装必读文档看看相应的解决方法。就这么个东西,用户还没帮多少就被那些同行改个名称拿去直接用了,免费分享站点没啥问题,大家目的是分享,而那些收费的站点看着实在膈应。

    3. 包内有文档,下载页的下载按钮下有问题解决方法,但是架不住不看呀。用户量慢慢变大后每天被无数同样的问题反复问来问去,如果刚好本身工作稍忙一点,你要心态就很炸,我还有一个强迫症,看到问题不回就惦记着。

    4. 因为我本身也是互联网的从业者,工作也比较多,而打包、更新、回答问题都挺费时间的。

    5. 是因为 TNT 的签名当 macOS 升级后往往会被苹果删除,一旦删除运行将会损坏 /闪退,甚至还会提示损害电脑。包括一些官方发的应用也是如此,偶尔也会掉签名,运行不了(比例较小),这个说明了什么?它说明了当初你下载安装的时候它可以正常运行,但是现在就运行不了!

    为了解决这几个问题,所以我就认真的来思考应该怎么做。经过认真思考后,无奈使用了 bash 脚本这个方案,最主要的是兼容性好!然后将其转为二进制加密(当初实在找不到更好的解决方案,不过前端时间我在学习 swift 的时候感觉到了一丝希望,就是直接调用系统的指纹解锁的模块,正在研究中...)。


    那现在的安装解决了用户什么问题?

    1. 会根据应用进行判断执行相关的命令行,安装后再也不会出现已损坏之类不能运行的提示了。(需提权)
    2. 会根据应用进行判断是否需要写入 hosts 屏蔽官方验证,并且 hosts 文件中会明确的标示屏蔽信息来自于哪个应用,你也可以选择手动屏蔽,方便你后期进行管理。(需提权)
    3. 会根据应用判断是否需要注册机,需要就运行注册机并打开激活步骤(运行注册机也需绕过签名,需提权)
    4. 会根据应用判断是否需要注册码,需要就打开激活步骤(内附激活码)
    5. 会根据应用判断是否需要许可证,需要就自动进行激活
    6. 会判断你电脑是否已安装此应用,已安装会提示你是否覆盖安装(需提权)
    7. 会检查应用是否正在运行,在覆盖前提示你保存当前工作(需提权)
    7. 会根据应用判断是否安装汉化包,需要就安装,不需要就不安装。(有些应用需提权)
    8. 安装完成后会提示你是否运行
    8. 运行时会判断应用的运行状态,如果需要签名则提示安装 command line tools 自动签名。(需提权)
    9. 安装完成后会提示你是否删除安装包节省电脑磁盘空间
    10. 安装完成后会自动关闭安装程序以及终端(偶尔也需提权)

    还有一点比较重要的是安装最开始会弹窗告诉你,软件下载是免费的,如果是从其它地方购买的,请联系对方退款。

    解决了我什么问题?

    全自动打包,我只需要将下载的 dmg/zip/pkg/app 放到指定的文件夹内,然后执行一键打包,会根把我设置的规则进行打包,打包过程中会读取应用的架构信息、用户版本号、构建版本号、大小、最低系统要求等信息,打包完成后通过接口将 dmg 上传到网盘,上传成功后判断网站数据库是否有此应用,有的话将版本、下载地址等信息更新到网站的数据库,没有的话则进行创建。

    以上有需提权的地方都需要密码。

    最后,你可以去网站的 IntelliJ IDEA 的评论区看看,使用传统打包,包内的激活步骤不看说激活不了的老花眼的人有多少。

    实在没有更好的办法,我想做个精品 mac 应用分享站,没有利益关系。网站是靠一部分用户的打赏来支付 cdn/带宽 等服务器支出,然后加上我的人力来维系,从来让大家可以免费下载到软件。但说来说去就我一个人,人力总归是有限的,我只能想方设法的在不牺牲体验的情况下节省自己的时间。

    综上,就是我的用意。另外,在我这儿,免费可以,开源不行,原因很简单,目前不具备开源的环境。但我可以保证除了和软件相关的操作,不会进行多一点点越权的操作,只有要,尽可各大平台曝光让我身败名裂。你可能没经历过直接在淘宝、咸鱼上假冒网站的名义卖软件建付费群的这些骚操作。还有不明白地方,可以在这继续提问。
    dcncy
        13
    dcncy  
       2021-04-17 14:41:40 +08:00
    @macwk 作为忠实用户,感谢站长的付出。用了近两年没出现什么问题。
    TikDoge
        14
    TikDoge  
       2021-07-22 11:39:49 +08:00
    其他的 Crack 的我就不说了,但是我搞不懂为啥开源软件还要搞打包封装
    cmichael
        15
    cmichael  
    OP
       2022-02-24 14:13:39 +08:00   ❤️ 1
    刚新闻:

    2022 年 2 月,微步情报局监测发现,macwk 上出现被 APT 组织投 du 的数据库管理应用 Navicat Premium
    dengshen
        16
    dengshen  
       2022-02-28 16:18:35 +08:00
    @cmichael 数据库也敢用盗版链接工具??? 生产环境就是送钱的操作啊
    Marathonk
        17
    Marathonk  
       2022-03-14 18:00:47 +08:00
    @macwk 老哥,为啥 macwk502 了,是出什么事情了吗
    HeraingBus
        18
    HeraingBus  
       2022-03-28 16:07:19 +08:00
    @macwk 感谢站长!
    SteveRogers
        19
    SteveRogers  
       2022-04-01 22:42:54 +08:00
    感谢站长
    zzkxxx
        20
    zzkxxx  
       2022-10-21 14:02:46 +08:00
    @macwk 挖到了坟,关站了,很难受。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5848 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 02:37 · PVG 10:37 · LAX 18:37 · JFK 21:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.