107 lines
3.9 KiB
Bash
107 lines
3.9 KiB
Bash
#!/bin/bash
|
||
# uninstall_clash_verge.sh
|
||
# 目标:完全清除 Clash Verge(app + service + 配置 + 缓存),保留 ClashX Pro
|
||
# 根因:Clash Verge TUN 模式把 h5api.m.goofish.com 解析到阿里内网 IP
|
||
# 203.119.238.12,代理出口到不了 → mtop 404 → 闲鱼 IM 长连接断。
|
||
# 彻底卸载 Verge = 根除 TUN 模式 = 闲鱼恢复 + 浏览器走 ClashX Pro。
|
||
# 用法:bash uninstall_clash_verge.sh
|
||
# 回滚:不可逆(删除动作)。如需重装,去 github.com/clash-verge-rev/clash-verge-rev 下载。
|
||
|
||
set -e
|
||
|
||
echo "=========================================="
|
||
echo " 彻底卸载 Clash Verge(保留 ClashX Pro)"
|
||
echo " 浏览器:ChatGPT Atlas(默认配置即可)"
|
||
echo "=========================================="
|
||
echo ""
|
||
|
||
# ---- 1. 退 launchd 服务(先停掉 TUN 拦截)----
|
||
echo "[1/7] 停 Clash Verge launchd 服务"
|
||
SERVICE_LABEL="system/io.github.clash-verge-rev.clash-verge-rev.service"
|
||
if sudo launchctl print "$SERVICE_LABEL" 2>/dev/null | grep -q "state = "; then
|
||
sudo launchctl bootout "$SERVICE_LABEL" 2>/dev/null && echo " OK service 已停" || echo " skip service 已退"
|
||
else
|
||
echo " skip service 未注册"
|
||
fi
|
||
echo ""
|
||
|
||
# ---- 2. 删 LaunchDaemon plist ----
|
||
echo "[2/7] 删 /Library/LaunchDaemons 下 plist"
|
||
PLIST="/Library/LaunchDaemons/io.github.clash-verge-rev.clash-verge-rev.service.plist"
|
||
if [ -f "$PLIST" ]; then
|
||
sudo rm -f "$PLIST" && echo " OK $PLIST"
|
||
else
|
||
echo " skip $PLIST 不存在"
|
||
fi
|
||
echo ""
|
||
|
||
# ---- 3. 删 PrivilegedHelperTools bundle ----
|
||
echo "[3/7] 删 /Library/PrivilegedHelperTools 下 helper bundle"
|
||
HELPER="/Library/PrivilegedHelperTools/io.github.clash-verge-rev.clash-verge-rev.service.bundle"
|
||
if [ -d "$HELPER" ]; then
|
||
sudo rm -rf "$HELPER" && echo " OK $HELPER"
|
||
else
|
||
echo " skip $HELPER 不存在"
|
||
fi
|
||
echo ""
|
||
|
||
# ---- 4. 删 /Applications/Clash Verge.app ----
|
||
echo "[4/7] 删 /Applications/Clash Verge.app"
|
||
APP="/Applications/Clash Verge.app"
|
||
if [ -d "$APP" ]; then
|
||
sudo rm -rf "$APP" && echo " OK $APP"
|
||
else
|
||
echo " skip $APP 不存在"
|
||
fi
|
||
echo ""
|
||
|
||
# ---- 5. 删 ~/Library/Application Support 下配置目录 ----
|
||
echo "[5/7] 删 ~/Library/Application Support 下配置 + 缓存"
|
||
VERGE_DIR="$HOME/Library/Application Support/io.github.clash-verge-rev.clash-verge-rev"
|
||
if [ -d "$VERGE_DIR" ]; then
|
||
rm -rf "$VERGE_DIR" && echo " OK $VERGE_DIR"
|
||
else
|
||
echo " skip $VERGE_DIR 不存在"
|
||
fi
|
||
echo ""
|
||
|
||
# ---- 6. 删 Preferences / Caches / Logs 下残留 ----
|
||
echo "[6/7] 删 ~/Library/Preferences / Caches / Logs 下残留"
|
||
for sub in \
|
||
"$HOME/Library/Preferences/io.github.clash-verge-rev.clash-verge-rev.plist" \
|
||
"$HOME/Library/Caches/io.github.clash-verge-rev.clash-verge-rev" \
|
||
"$HOME/Library/Logs/io.github.clash-verge-rev.clash-verge-rev" \
|
||
"$HOME/Library/Saved Application State/io.github.clash-verge-rev.clash-verge-rev.savedState" \
|
||
"$HOME/Library/WebKit/io.github.clash-verge-rev.clash-verge-rev"; do
|
||
if [ -e "$sub" ]; then
|
||
rm -rf "$sub" && echo " OK 删 $sub" || echo " WARN 删 $sub 失败"
|
||
fi
|
||
done
|
||
echo ""
|
||
|
||
# ---- 7. 验证 ----
|
||
echo "[7/7] 验证 Clash Verge 已彻底清理"
|
||
LEFT=$(mdfind "kMDItemCFBundleIdentifier=='io.github.clash-verge-rev*'" 2>/dev/null)
|
||
if [ -z "$LEFT" ]; then
|
||
echo " OK mdfind 已找不到任何残留"
|
||
else
|
||
echo " WARN 仍有残留:"
|
||
echo "$LEFT" | sed 's/^/ /'
|
||
fi
|
||
REMAIN_PID=$(pgrep -fl "clash-verge" 2>/dev/null || true)
|
||
if [ -z "$REMAIN_PID" ]; then
|
||
echo " OK 无 clash-verge 进程"
|
||
else
|
||
echo " WARN 仍有进程:$REMAIN_PID"
|
||
fi
|
||
echo ""
|
||
|
||
echo "=========================================="
|
||
echo " 卸载完成"
|
||
echo " ClashX Pro 保留 → 代理仍可用(HTTP 7890)"
|
||
echo " 浏览器:ChatGPT Atlas(默认配置即可)"
|
||
echo ""
|
||
echo " 验证闲鱼:"
|
||
echo " open -a '/Applications/ChatGPT Atlas.app' 'https://www.goofish.com/im'"
|
||
echo "=========================================="
|