Files
karuo-ai/01_卡资(金)/金仓_存储备份/脚本/doubao_uninstall_full.sh
2026-07-19 00:21:46 +08:00

103 lines
3.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# 完整卸载豆包App + 浏览器 + 输入法 + 用户数据 + TCC
# 用法bash doubao_uninstall_full.sh
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
KARUO_SUDO="${SCRIPT_DIR}/karuo_sudo.sh"
HOME_LIB="$HOME/Library"
echo "==> 1/5 退出豆包相关进程"
osascript -e 'tell application "Doubao" to quit' 2>/dev/null || true
osascript -e 'tell application "豆包" to quit' 2>/dev/null || true
sleep 2
for proc in Doubao "Doubao Browser" DoubaoIme DoubaoImeSettings DoubaoImeInstaller; do
killall "$proc" 2>/dev/null || true
done
sleep 1
echo "==> 2/5 解除不可变标志Remote_State 等)"
if [[ -d "$HOME_LIB/Application Support/Doubao" ]]; then
while IFS= read -r -d '' f; do
chflags nouchg "$f" 2>/dev/null || true
done < <(find "$HOME_LIB/Application Support/Doubao" -flags uchg -print0 2>/dev/null)
fi
echo "==> 3/5 删除应用"
for app in \
"/Applications/doubao.app" \
"/Applications/Doubao.app" \
"/Applications/豆包.app" \
"/Applications/豆包浏览器.app" \
"/Library/Input Methods/DoubaoIme.app"; do
if [[ -e "$app" ]]; then
if [[ "$app" == /Library/* ]] && [[ -x "$KARUO_SUDO" ]]; then
"$KARUO_SUDO" /bin/rm -rf "$app"
else
rm -rf "$app"
fi
echo "removed: $app"
fi
done
echo "==> 4/5 删除用户数据"
paths=(
"$HOME_LIB/Application Support/Doubao"
"$HOME_LIB/Application Support/DoubaoIme"
"$HOME_LIB/Application Support/Doubao Browser"
"$HOME_LIB/Caches/Doubao"
"$HOME_LIB/Caches/com.bot.pc.doubao"
"$HOME_LIB/Caches/com.bot.pc.doubao.browser"
"$HOME_LIB/HTTPStorages/com.bot.pc.doubao"
"$HOME_LIB/HTTPStorages/com.bot.pc.doubao.browser"
"$HOME_LIB/Containers/com.bot.pc.doubao.FinderSyncExtension"
"$HOME_LIB/Application Scripts/com.bot.pc.doubao.FinderSyncExtension"
"$HOME_LIB/Saved Application State/com.bot.pc.doubao.savedState"
"$HOME_LIB/Saved Application State/com.bot.pc.doubao.browser.savedState"
"$HOME_LIB/Logs/Doubao"
"$HOME_LIB/Logs/Doubao Browser"
)
for p in "${paths[@]}"; do
if [[ -e "$p" ]]; then
rm -rf "$p"
echo "removed: $p"
fi
done
rm -f "$HOME_LIB/Preferences/com.bot.pc.doubao"*.plist 2>/dev/null || true
rm -f "$HOME_LIB/Preferences/com.bytedance.inputmethod.doubaoime.plist" 2>/dev/null || true
rm -f "$HOME_LIB/Application Support/CrashReporter/Doubao"*.plist 2>/dev/null || true
rm -rf "$HOME_LIB/HTTPStorages/com.bytedance.inputmethod.doubaoime"* 2>/dev/null || true
echo "==> 5/5 重置 TCC 权限"
for bid in \
com.bot.pc.doubao \
com.bot.pc.doubao.browser \
com.bot.pc.doubao.helper \
com.bot.pc.doubao.browser.helper \
com.bytedance.inputmethod.doubaoime; do
tccutil reset All "$bid" 2>/dev/null || true
done
echo ""
echo "==> 验收"
fail=0
for check in \
"/Applications/doubao.app" \
"$HOME_LIB/Application Support/Doubao"; do
if [[ -e "$check" ]]; then
echo "❌ 仍在: $check"
fail=1
fi
done
if pgrep -lf -i doubao >/dev/null 2>&1; then
echo "❌ 仍有豆包进程:"
pgrep -lf -i doubao || true
fail=1
fi
if [[ "$fail" -eq 0 ]]; then
echo "✅ 豆包已完整卸载App + 数据 + TCC"
else
echo "⚠️ 部分残留,见上方"
exit 1
fi