mirror of
https://github.com/shadowsocks/ShadowsocksX-NG.git
synced 2026-10-29 05:33:45 +00:00
8d1cdf27d10a5113ede0ef340fb8a2cd6ceefa8e
与导入分离的「切换到 2.0」确认流程(spec #21 D12): - Domain/LegacyHandoff:硬编码白名单三个 Legacy label(.local/.http/.kcptun), bootout 按 service target(覆盖 plist 缺失错位形态),print 退出码验证 (0/113),`launchctl kill SIGTERM` 有文档后备,绝不泛匹配、不 pkill; 残留 plist(含 KeepAlive 形态)读内容判活跃性后 disable,阻止下次登录复活; 系统代理按特征值判定归属(Legacy 自身 off 模式的判定镜像:本地 PAC URL http://localhost:<port>/proxy.pac、SOCKS/HTTP 地址端口),仅清理归属为 Legacy 的服务,未知所有者点名保留;端口释放门禁用无复用选项的 bind 探测 (Legacy ss-local 带 --reuse-port),未释放不启动 2.0;Legacy 数据零删除。 - App 层:SystemConfigurationLegacyProxyCleaner(授权在最前、失败零影响、 事务回滚);WorkspaceLegacyAppController(共享 bundle id 需排除自身进程); LegacyHandoffSheet 确认/进度/报告呈现,含旧登录项人工指引与残留提示; 主窗口工具栏入口 + 导入完成后「切换到 2.0」入口;交接成功经正常启停入口 启动 2.0(健康门禁走 #29 路径)。 - bootout 实弹验证(Further Notes #5)闭环:docs/research/ legacy-handoff-bootout-live-fire.md——bootout 未加载 label 退出码为 3 (非 print 的 113),KeepAlive 残留 kill 后复活、bootout 后不再加载, 结论已回写产品代码与测试。
ShadowsocksX-NG
🚧 重新实现进行中 —— 本仓库正在使用现代技术栈重写 ShadowsocksX-NG macOS 客户端。
新工程不再通过 git 子模块在仓库内构建依赖,而是直接复制上游项目发布好的可执行文件,以简化构建流程。
目录结构
.
├── ShadowsocksX-NG2/ # 新工程:现代化重写版本(开发中)
└── Legacy/ # 旧版工程完整源码,仅供参考,不保证可构建
旧版工程的功能说明与使用文档见 Legacy/README.md。
Languages
Swift
95.8%
Python
2.5%
Shell
1.4%
C
0.3%