Creates the scripts.

This commit is contained in:
2026-08-25 12:18:46 -06:00
commit 67e1cd9d3b
3 changed files with 259 additions and 0 deletions

91
android-watch-scrcpy Executable file
View File

@@ -0,0 +1,91 @@
#!/bin/bash
list_devices() {
adb devices | awk '/(^[[:alnum:]]+[[:blank:]]+device$)/ {print $1}'
}
first_device() {
devices="$(adb devices | awk '/(^[[:alnum:]]+[[:blank:]]+device$)/ {print $1}')"
if [ -z "$devices" ]
then
echo ""
return
else
set -- "$devices"
echo $1
fi
}
has_devices() {
[ ! -z "$(list_devices)" ] && return
false
}
which adb >/dev/null 2>/dev/null
if [ $? != 0 ]
then
echo "ADB not installed or not located in $PATH" >&2
exit 4
fi
which scrcpy >/dev/null 2>/dev/null
if [ $? != 0 ]
then
echo "scrcpy not installed or not located in $PATH" >&2
exit 4
fi
declare -A serial_map
declare -A bluetooth_map
while true
do
devices="$(list_devices)"
while read serial;
do
if [ -z "$serial" ]
then
continue
fi
if [ -z "${serial_map[$serial]}" ]
then
echo "New device $serial connected" >&2
scrcpy -s "$serial" &
serial_map[$serial]=$!
android-lock -u -s "$serial"
# Link the phone to bluetooth as well.
bluetooth_mac="$(adb -s "$serial" shell settings get secure bluetooth_address)"
bluetoothctl devices | grep "$bluetooth_mac" >/dev/null 2>/dev/null
if [ $? != 0 ]
then
# Pair the devices
bluetoothctl scan on
adb -s "$serial" shell am start -a android.bluetooth.adapter.action.REQUEST_DISCOVERABLE
sleep 1
bluetoothctl pair "$bluetooth_mac"
bluetoothctl scan off
else
adb -s "$serial" shell am start -a android.bluetooth.adapter.action.REQUEST_ENABLE
fi
bluetoothctl connect "$bluetooth_mac"
bluetooth_map[$serial]="$bluetooth_mac"
fi
done <<< "$devices"
# Check for devices that have disconnected.
for serial in "${!serial_map[@]}"
do
adb -s "$serial" get-state >/dev/null 2>/dev/null
if [ $? != 0 ]
then
# The device has since been disconnected, and we should remove it.
echo "Device $serial disconnected"
kill "${serial_map[$serial]}"
unset serial_map[$serial]
echo "Disconnecting bluetooth ${bluetooth_map[$serial]}"
bluetoothctl disconnect "${bluetooth_map[$serial]}"
echo "Bluetooth disconnected"
unset bluetooth_map[$serial]
fi
done
done