#!/usr/bin/env bash
if [ ! $(command -v adb) ]; then
	pkg i android-tools -y
fi
main (){
echo -e "1) 首次使用配对adb(如已配对过，请跳过这一步)
2) 连接无线调试(配对完成后请选择这项)
3) 解除自动恢复设置
   存在以下 3 种情况可能将该值重置为默认值:
   Android 系统重启
   Android 系统崩溃
   gms 同步更新配置
4) 恢复自动恢复设置
5) 设置最大进程数值
6) 查看当前进程数值
0) 退出
"
read -r -p "请选择: " input
case $input in
1) echo -e "\e[33m请把termux切换至小窗口，确保termux与开发工程模式同屏，打开'开发工程模式-无线调试-使用配对码配对'，记住端口与配对码。\e[0m"
read -e -p "请输入端口号: " PORT
adb pair 127.0.0.1:$PORT
#(随机的，开发者模式-无线调试：需分屏显示，不能切换后台)
#输配对码
;;
2)
echo -e "\e[33m请打开'开发工程模式-无线调试'，查看配对ip与端口。\e[0m"
read -e -p "请输入端口号: " PORT
adb connect 127.0.0.1:$PORT
#(固定的)
adb devices -l
#可看到已连接
;;
3)
adb shell "/system/bin/device_config set_sync_disabled_for_tests persistent"
#检查状态
adb shell "/system/bin/device_config is_sync_disabled_for_tests"
echo -e "如果显示\e[33mtrue\e[0m，即为已关闭"
;;
4)
adb shell "/system/bin/device_config set_sync_disabled_for_tests none"
#检查状态
adb shell "/system/bin/device_config is_sync_disabled_for_tests"
echo -e "如果显示\e[33mtrue\e[0m，即为已开启"
;;
5)
read -r -p "请输入设置值，最大2147483647: " VALUE
adb shell "/system/bin/device_config put activity_manager max_phantom_processes $VALUE"
adb shell dumpsys activity settings | grep max_phantom_processes
echo -e "如果没改变则为32，只有Android12有效果"
;;
6)
#查看当前系统最大进程数
adb shell dumpsys activity settings | grep max_phantom_processes
echo -e "如果没改变则小于64，只有Android12有效果"
;;
*) exit 0
esac
echo -e "\e[33m确认请回车\e[0m"
read
main
}
main "$@"
exit 0
:<<\eof
#设定最大数是65536
#adb shell device_config put activity_manager max_phantom_processes 65536
#停用
adb shell "/system/bin/device_config set_sync_disabled_for_tests persistent"
#恢复
adb shell "/system/bin/device_config set_sync_disabled_for_tests none"
#检查状态
adb shell "/system/bin/device_config is_sync_disabled_for_tests" "false为正常 true为关闭"
scrcpy --turn-screen-off # 连接时，可关掉手机屏幕
scrcpy --bit-rate 2M --max-size 800 # 降低无线链接的速率(2M)，与屏幕分辨率（800），以保持无线链接不卡线
eof
