@echo off
:: 设置adb的文件路径
set "adb_path=E:\SDK\platform-tools"
:: 更新环境变量
set PATH=%adb_path%;%PATH%
:: 白名单包名
set "whitelist=magisk.term com.speedsoftware.rootexplorer org.lsposed.manager com.tencent.mm com.eg.android.AlipayGphone com.cjs.hegui30"
:: 列出连接的设备并选择设备
adb devices
set /p device=Please enter the device name:
:: 检查设备是否有效
if "%device%"=="" (
echo No device selected, exiting.
pause
exit /b
)
echo Uninstalling all packages except whitelisted ones...
:: 获取所有用户安装的应用包名并存储到 packages.txt 文件
adb -s %device% shell pm list packages -3 > packages.txt
:: 处理包名,逐个检查是否在白名单内
setlocal enabledelayedexpansion
for /f "tokens=2 delims=:" %%a in (packages.txt) do (
set "package=%%a"
set "found=0"
:: 检查包名是否在白名单中
for %%b in (%whitelist%) do (
if "!package!"=="%%b" (
set "found=1"
echo Skipping whitelisted package: !package!
)
)
:: 如果包名不在白名单中,卸载应用
if "!found!"=="0" (
echo Uninstalling package: !package!
adb -s %device% shell pm uninstall --user 0 !package!
)
)
endlocal
:: 删除临时文件
del packages.txt
:: 清除桌面布局
echo Clearing desktop layout...
adb -s %device% shell pm clear com.android.launcher3 > clear_result.txt
:: 判断是否包含 "Failed" 字符
findstr /i "Failed" clear_result.txt >nul
if %errorlevel%==0 (
echo Resetting desktop layout failed!
) else (
echo Desktop layout reset successfully.
)
:: 删除临时文件
del clear_result.txt
echo All other packages uninstalled except the specified ones.
pause
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术