Skip to content

Commit

Permalink
v1.5
Browse files Browse the repository at this point in the history
  • Loading branch information
Hakuin123 committed Jan 31, 2024
1 parent 643fdcf commit 5494b98
Show file tree
Hide file tree
Showing 4 changed files with 147 additions and 109 deletions.
118 changes: 64 additions & 54 deletions ADB,启动!- GB2312.bat
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
@echo off
chcp 936 > nul
::如果出现乱码请尝试使用UTF-8版本
title ADB,启动! v1.4 by 白隐Hakuin
:: 如果出现乱码请尝试使用 UTF-8 版本
title ADB,启动! v1.5 by 白隐Hakuin

:setVar
:: 开启“延迟环境变量扩展”
Expand All @@ -19,10 +19,10 @@ set Act_PermissionDog="/storage/emulated/0/Android/data/com.web1n.permissiondog/
:check
echo = 检查 ADB 环境 =
adb version
if not %errorlevel%==0 (
if not %errorlevel% == 0 (
echo [错误] 未找到 ADB(Android Debug Bridge)!请检查此脚本是否和 ADB 相关工具放在同一文件夹下,或确保这台计算机拥有 ADB 运行环境(可参考网络教程)
echo Android SDK 平台工具:https://googledownloads.cn/android/repository/platform-tools-latest-windows.zip
echo 请使用浏览器打开上面的链接,下载并解压 'platform-tools' 文件夹,将此.bat文件放在该文件夹下,再次运行此.bat文件
echo [提示] Android SDK 平台工具:https://googledownloads.cn/android/repository/platform-tools-latest-windows.zip
echo [提示] 请使用浏览器打开上面的链接,下载并解压 'platform-tools' 文件夹,将此.bat文件放在该文件夹下,再次运行此.bat文件
pause
exit
)
Expand All @@ -31,11 +31,11 @@ echo.
:start
echo = 启动 ADB 服务 =
adb start-server
if not %errorlevel%==0 (
if %IGNORE_ERROR%==1 (
if not %errorlevel% == 0 (
if %IGNORE_ERROR% == 1 (
echo [强制执行] 已选择强制执行模式,忽略错误并继续...
)
goto :fix
goto :fix-adb
)
echo 等待设备连接...
echo [提示] 请使用 USB 数据线连接设备,可能需要在设备上手动允许 USB 调试
Expand All @@ -49,19 +49,19 @@ adb devices -l
:wireless
echo = 启动无线调试 =
adb tcpip 5555
if not %errorlevel%==0 (
if %IGNORE_ERROR%==1 (
if not %errorlevel% == 0 (
if %IGNORE_ERROR% == 1 (
echo [强制执行] 已选择强制执行模式,忽略错误并继续...
)
goto :fix
goto :fix-adb
)
echo [注意] 无线调试启用后有一定风险,请勿允许来历不明的 ADB 调试请求
echo 等待重新连接...
echo 等待自动重新连接...
adb wait-for-device
echo.

:force
if %IGNORE_ERROR%==1 (
if %IGNORE_ERROR% == 1 (
echo [强制执行] 已选择强制执行模式,直接执行所有启动及激活命令...
adb shell sh %Act_Shizuku% %Act_Scene% %Act_IceBox% %Act_Brevent% %Act_Stopapp% %Act_PermissionDog%
goto :end
Expand All @@ -71,9 +71,9 @@ if %IGNORE_ERROR%==1 (
:shizuku
:: 检查是否安装 Shizuku
adb shell pm list packages | findstr /i "moe.shizuku.privileged.api" > nul
if %errorlevel%==0 (
if %errorlevel% == 0 (
echo 已安装 Shizuku,执行启动命令...
adb shell sh %Act_Shizuku% || goto :fix
adb shell sh %Act_Shizuku% || goto :fix-app
) else (
echo 未安装 Shizuku,跳过启动
)
Expand All @@ -82,9 +82,9 @@ echo.

:scene
adb shell pm list packages | findstr /i "com.omarea.vtools" > nul
if %errorlevel%==0 (
if %errorlevel% == 0 (
echo 已安装 Scene,执行激活命令...
adb shell sh %Act_Scene% || goto :fix
adb shell sh %Act_Scene% || goto :fix-app
) else (
echo 未安装 Scene,跳过激活
)
Expand All @@ -93,9 +93,9 @@ echo.

:icebox
adb shell pm list packages | findstr /i "com.catchingnow.icebox" > nul
if %errorlevel%==0 (
if %errorlevel% == 0 (
echo 已安装 冰箱,执行激活命令...
adb shell sh %Act_IceBox% || goto :fix
adb shell sh %Act_IceBox% || goto :fix-app
) else (
echo 未安装 冰箱,跳过激活
)
Expand All @@ -104,9 +104,9 @@ echo.

:brevent
adb shell pm list packages | findstr /i "me.piebridge.brevent" > nul
if %errorlevel%==0 (
if %errorlevel% == 0 (
echo 已安装 黑阈,执行激活命令...
adb shell sh %Act_Brevent% || goto :fix
adb shell sh %Act_Brevent% || goto :fix-app
) else (
echo 未安装 黑阈,跳过激活
)
Expand All @@ -116,21 +116,19 @@ echo.

:stopapp
adb shell pm list packages | findstr /i "web1n.stopapp" > nul
if %errorlevel%==0 (
if %errorlevel% == 0 (
echo 已安装 小黑屋,执行激活命令...
adb shell sh %Act_Stopapp% > nul
if %errorlevel%==0 (
if %errorlevel% == 0 (
echo 小黑屋 激活成功
echo 鉴于小黑屋执行激活命令后无论是否成功都会显示完整日志,此处已隐藏回显
) else (
echo 小黑屋 激活失败,重试并输出日志...
adb shell sh %Act_Stopapp%
echo [注意] 小黑屋可能无法正常激活
adb shell dumpsys package web1n.stopapp | findstr /C:"versionCode"
echo 若“versionCode”小于 297 请尝试更新应用至最新版本
set /p IGNORE_ERROR="请按回车键继续执行,或输入 0 打开常规自动修复功能:"
set /p IGNORE_ERROR="[提示] 请按回车键继续执行,或输入 0 打开常规自动修复功能:"
if "%IGNORE_ERROR%" == "0" (
goto :fix
goto :fix-app
)
)
) else (
Expand All @@ -140,19 +138,19 @@ echo.

:permissiondog
adb shell pm list packages | findstr /i "com.web1n.permissiondog" > nul
if %errorlevel%==0 (
if %errorlevel% == 0 (
echo 已安装 权限狗,执行激活命令...
adb shell sh %Act_PermissionDog% > nul
if %errorlevel%==0 (
if %errorlevel% == 0 (
echo 权限狗 激活成功
echo 鉴于权限狗执行激活命令后无论是否成功都会显示完整日志,此处已隐藏回显
) else (
echo 权限狗 激活失败,重试并输出日志...
adb shell sh %Act_PermissionDog%
echo [注意] 权限狗可能无法正常激活
set /p IGNORE_ERROR="请按回车键继续执行,或输入 0 打开常规自动修复功能:"
set /p IGNORE_ERROR="[提示] 请按回车键继续执行,或输入 0 打开常规自动修复功能:"
if "%IGNORE_ERROR%" == "0" (
goto :fix
goto :fix-app
)
)
) else (
Expand All @@ -176,46 +174,58 @@ echo.
echo ============ SUCCESS! ============
echo == 全部执行完成,关闭 ADB 服务 ==
adb kill-server
echo 请按任意键退出...
echo [提示] 请按任意键退出...
pause > nul
exit


:fix
echo == 执行遇到错误,尝试修复 ==
:fix-adb
echo == 执行遇到错误(ADB),尝试修复 ==
echo 尝试关闭正在运行的所有 ADB.exe 进程防止冲突...
taskkill /F /IM adb.exe || echo 若提示没有找到进程说明无 ADB 进程冲突,忽略即可
echo.

echo 检查 ADB 默认端口(5037)是否被占用...
netstat -aon | findstr 5037
if %errorlevel%==0 (
echo [注意] 5037 端口可能已被其他进程占用
echo [注意] 请关闭计算机上正在运行的“手机助手”类软件,如“360手机助手”“鲁大师手机助手”等
echo [注意] 若不能准确定位进程,上方回显最右侧为该进程对应 PID,请在任务管理器中手动将其关闭
echo 检查 ADB 端口占用情况...
for /f "tokens=5 delims= " %%a in ('netstat -ano ^| findstr :5037 ^| findstr "LISTENING"') do (
set process_pid=%%a
if not !process_pid! == 0 (
echo [注意] 检测到有进程占用 ADB 默认端口(5037),该进程 PID 为 !process_pid!
for /f "tokens=1*" %%b in ('tasklist /NH /FI "PID eq !process_pid!"') do (
set "process_name=%%b"
echo [注意] 占用端口的进程名为:!process_name!
)
echo 尝试强制结束该进程...
taskkill /F /PID !process_pid!
if !errorlevel! == 0 (
echo 已强制结束占用 5037 端口的进程,请尝试重新执行
) else (
echo [注意] 强制结束进程失败,请尝试手动关闭该进程对应的程序,然后重新执行
)
)
)
echo.
echo [提示] 若运行时提示“adb server version (xxx) doesn't match this client (xxx); killing...”,请关闭计算机上正在运行的“手机助手”类软件,如“360手机助手”“鲁大师手机助手”等
goto :restart

:fix-app
echo == 执行遇到错误(应用),尝试修复 ==
echo 检查应用激活脚本是否存在...
set "NOT_FOUND="
adb shell ls "%Act_Shizuku%" || set "NOT_FOUND=!NOT_FOUND! Shizuku"
adb shell ls "%Act_Scene%" || set "NOT_FOUND=!NOT_FOUND! Scene"
adb shell ls "%Act_IceBox%" || set "NOT_FOUND=!NOT_FOUND! 冰箱"
adb shell ls "%Act_Brevent%" || set "NOT_FOUND=!NOT_FOUND! 黑阈"
adb shell ls "%Act_Stopapp%" || set "NOT_FOUND=!NOT_FOUND! 小黑屋"
adb shell ls "%Act_PermissionDog%" || set "NOT_FOUND=!NOT_FOUND! 权限狗"
adb shell ls "%Act_Shizuku%" > nul || set "NOT_FOUND=!NOT_FOUND! Shizuku"
adb shell ls "%Act_Scene%" > nul || set "NOT_FOUND=!NOT_FOUND! Scene"
adb shell ls "%Act_IceBox%" > nul || set "NOT_FOUND=!NOT_FOUND! 冰箱"
adb shell ls "%Act_Brevent%" > nul || set "NOT_FOUND=!NOT_FOUND! 黑阈"
adb shell ls "%Act_Stopapp%" > nul || set "NOT_FOUND=!NOT_FOUND! 小黑屋"
adb shell ls "%Act_PermissionDog%" > nul || set "NOT_FOUND=!NOT_FOUND! 权限狗"
if not "%NOT_FOUND%" == "" (
echo [注意] 下列应用未找到激活脚本:%NOT_FOUND%
echo [注意] 下列应用未找到激活脚本:%NOT_FOUND% (若未安装请忽略)
echo [注意] 请尝试在设备上启动一次上述应用,并将运行模式设置为 ADB 模式
echo [注意] 若仍未解决问题,请尝试更新上述应用至最新版本
echo [注意] 若仍未解决问题,请尝试更新上述应用至最新版本,部分旧版激活可能出现问题
)
echo.
goto :restart

echo == 常见问题 ==
echo 1. 激活某个应用时若提示“no such file or directory”,请先在设备上启动一次该应用并选择对应的模式
echo 2. 若提示“adb server version (xxx) doesn't match this client (xxx); killing...”,请关闭计算机上正在运行的“手机助手”类软件,如“360手机助手”“鲁大师手机助手”等
:restart
echo.
set /p IGNORE_ERROR="请按回车键重新执行,或输入 1 忽略错误并重新执行"
set /p IGNORE_ERROR="[提示] 请按回车键重新执行,或输入 1 进入忽略错误并重新执行(强制执行模式)"
if "%IGNORE_ERROR%" == "1" (
cls
goto :start
Expand Down
Loading

0 comments on commit 5494b98

Please sign in to comment.