文章

CFW修改Meta内核

将Clash for Windows修改为Meta内核

CFW修改Meta内核

简介

作者已于修改后3个月内转投Mihomo Party的怀抱😵。界面确实好看还能自定义,substore也确实好用。不过貌似该应用的资源占用有点高,对于老电脑的使用体验可能并不会变好。

由于Clash及其周边生态项目于2023年11月上旬删库跑路,因此其不再能支持新的特性以及协议。由于本人已经习惯使用Clash for Windows(CFW)的界面和操作逻辑,因此寻求将其内置的Premium内核修改为Meta内核(Mihomo内核)的方法。本文适用于不想抛弃CFW的UI又有新的支持协议需求及特性需求的使用者,若嫌麻烦请使用clash-verge-rev等其他客户端。本文中的步骤参考了多个博客并进行了实际操作,在作者的电脑上能够正常使用。

此修改具有一定的复杂性,若担心客户端因此出现问题请备份旧文件。

大致流程

图中带*的操作为必做。

---
title: 主要流程步骤
---
  flowchart TD
    A([开始]) --> B[*关闭CFW及Clash内核]
    B --> C[*下载内核文件]
    C --> D[*替换内核文件]
    D --> E{*适配新版本}
    E -->|内核版本<=1.16.0| F[强迫症选项]
    E -->|内核版本>1.16.0| G[两种方法]
    G -->|创建符号链接| F
    G -->|修改CFW路径| F
    F -->H([结束])

关闭CFW及Clash内核

关闭CFW进程及Clash内核的进程,如图所示 Clash进程-light Clash进程-dark

下载内核

下载适合自己操作系统及CPU架构的mihomo内核(作者使用的是1.18.6版本 mihomo-windows-amd64-compatible-go120-v1.18.6.zip

替换内核

打开CFW安装目录下的 \resources\static\files\win\x64 文件夹,将以上下载到的文件改名为 clash-win64.exe 并替换对应文件。

再次提示若担心出现问题请备份文件,下面将不再提醒。

适配新内核

根据使用内核版本的不同分为两种情况,即>1.16.0版本以及<=1.16.0版本。>1.16.0版本时

1. 使用了较旧版本

若使用的内核版本为1.16.0及以下的版本则不必进行适配。参考1中提到带compatible字样的也不必适配,但本人不适配无法连接内核,mihomo的wiki也提到compatible字样仅表示为了兼容特定的操作系统或架构而编译,因此本人认为1.16.0以上的版本即使带compatible字样也需要进行适配。

2. 创建符号链接2

打开cmd并执行以下命令。(可能需要管理员权限)

1
mklink /d "%USERPROFILE%\.config\mihomo" "%USERPROFILE%\.config\clash"

3. 修改CFW路径

此方法较为复杂,可以使用我修改好的文件英文界面版本中文界面版本来替换 \resources\app.asar 文件。中文界面版本基于Clash-for-Windows_Chinese修改。

以下为具体的修改步骤。

打开CFW的安装目录下的 resources 文件夹,将 app.asar 解包。推荐使用此工具3

解包后进入 \dist\electron 目录,打开 render.js 文件(运行内存较小的设备建议使用记事本打开,我使用VSCode也和参考博主一样卡死了。。。)。搜索 /.config ,将后面的 clash 改成 mihomo ,然后保存。

使用工具重新打包,改名为 app.asar ,替换原本的文件。

如果有之前的订阅数据建议进入 %USERPROFILE%/.config/clash 文件夹把里面的 profiles 文件夹复制到 %USERPROFILE%/.config/mihomo 里去。

测试。

打开CFW,在Clash内核的位置显示Unknown并可以正常使用,则修改成功。

强迫症选项。

Clash内核Unknown修改

本人和参考博主1同样看着Unknown难受,在此万分感谢博主提供的方法。我提供的asar文件中已经修改了强迫症选项中的内容。

同样解包 app.asar 后进入 \dist\electron 目录下,打开 render.js 文件,搜索 n.premium ,首先将后面的 0!==o&& 删除,然后找到后面的 "Premium":"" ,改为 "Premium":"Meta" ,然后重新打包替换即可。

修复服务模式小地球灰色

需要回退service的版本,据评论区反馈,应该是由于较新版本的Service Mode安全性有提高,因此应使用 v0.19.29 及以下版本的 clash-core-service.exe ,此处提供一个早期版本的exe文件。将下载到的文件替换目录 \resources\static\files\win\x64\service 里的文件

注意替换之后可能还是无法启动,可能是之前启动过较新版本的CFW。找到运行中的进程 clash-core-service.exe 打开程序位置进行替换(本人是在 C:\Program Files\Clash for Windows Service 路径下)。替换完成后可能需要重新进入CFW安装Service Mode。

完成

以下是完成后的效果

clash-finish-light clash-finish-dark

参考

本文由作者按照 CC BY 4.0 进行授权