#!/usr/bin/env bash
# 通过 ADB 安全释放手机存储：系统缓存裁剪 + 常见临时/缩略图（不卸载应用、不清登录态）
# 用法：手机 USB 调试已连接后执行
#   bash sdk/scripts/android_free_space.sh
# 多设备：ANDROID_SERIAL=序列号 bash sdk/scripts/android_free_space.sh
# 更激进（仍不 pm clear 应用）：加参数 --more
set -euo pipefail

ADB=(adb)
if [[ -n "${ANDROID_SERIAL:-}" ]]; then
  ADB=(adb -s "$ANDROID_SERIAL")
fi

if ! "${ADB[@]}" get-state 2>/dev/null | grep -q device; then
  echo "❌ 未检测到已授权的 ADB 设备。请：USB 连接 → 开启 USB 调试 → 本机执行 adb devices 出现 device。"
  exit 1
fi

echo "=== 设备 ==="
"${ADB[@]}" shell getprop ro.product.model 2>/dev/null | tr -d '\r'
"${ADB[@]}" devices -l | grep -v "^List"

echo ""
echo "=== 清理前 /data（或整机存储）==="
"${ADB[@]}" shell df -h /data 2>/dev/null | tr -d '\r' || "${ADB[@]}" shell df -h | head -20 | tr -d '\r'

# 系统级裁剪各应用 cache（Android 7+，无需 root）
echo ""
echo "=== pm trim-caches（按目标剩余空间触发缓存回收）==="
# 部分机型参数为「希望至少腾出/保持」的数值，单位因版本而异；依次尝试常见写法
"${ADB[@]}" shell pm trim-caches 999999M 2>/dev/null | tr -d '\r' || true
"${ADB[@]}" shell "pm trim-caches 8589934592" 2>/dev/null | tr -d '\r' || true

echo ""
echo "=== 临时目录 ==="
"${ADB[@]}" shell "rm -rf /data/local/tmp/*" 2>/dev/null || true

echo "=== DCIM 缩略图（可再生成）==="
"${ADB[@]}" shell "rm -rf /sdcard/DCIM/.thumbnails/*" 2>/dev/null || true
"${ADB[@]}" shell "rm -rf /storage/emulated/0/DCIM/.thumbnails/*" 2>/dev/null || true

if [[ "${1:-}" == "--more" ]]; then
  echo "=== --more：常见缓存目录（不含微信/QQ 聊天记录）==="
  "${ADB[@]}" shell "rm -rf /sdcard/Android/data/*/cache/*" 2>/dev/null || true
  "${ADB[@]}" shell "rm -rf /storage/emulated/0/Android/data/*/cache/*" 2>/dev/null || true
  "${ADB[@]}" shell "rm -rf /sdcard/.Trash/*" 2>/dev/null || true
  "${ADB[@]}" shell "rm -rf /sdcard/Download/.tmp/*" 2>/dev/null || true
fi

echo ""
echo "=== 清理后 /data ==="
"${ADB[@]}" shell df -h /data 2>/dev/null | tr -d '\r' || true
echo "✅ 完成。若空间仍不足，可在手机「设置 → 存储」里清理各 App，或卸载不常用应用。"
