Eche un vistazo a la simulación de eventos clave en Android y busque "KEYCODE_VOLUME_UP" y "KEYCODE_VOLUME_DOWN".
Los eventos se pueden generar ejecutando "input":
#local shell:
input keyevent 24 #vol up
input keyevent 25 #vol down
#remotely using ssh
ssh your-phone input keyevent 24 #vol up
ssh your-phone input keyevent 25 #vol down
# 'su -c command' to make it run as root (if not already). EDIT: now escaped properly.
ssh your-phone su -c "input\ keyevent\ 24" #vol up
ssh your-phone su -c "input\ keyevent\ 25" #vol down"
Supongo que su shell necesita los permisos apropiados para disparar eventos de entrada. Si realiza la autenticación de clave pública y mantiene su clave privada cargada en la memoria (ssh-add), puede hacer una secuencia de comandos de envoltura y simplemente ejecutar esto sin que se le solicite una frase de contraseña. Nota: Hay una sobrecarga considerable tanto para 'su' como para 'input', en general, un solo ajuste de volumen tarda 2.5s en completarse en mi HTC Desire.
EDIT2:
shell@android:/ $ id
uid=2000(shell) gid=2000(shell) groups=1003(graphics),1004(input),[...]
shell@android:/ $ time input keyevent 24
0m0.92s real 0m0.29s user 0m0.06s system
Parece que tienes que ser miembro del grupo de entrada (aquí GID = 2004) para tener la capacidad de generar eventos clave usando 'input'. Además, noté que la pantalla no tiene que estar bloqueada (y / o apagada), porque el bloqueo eventualmente consumiría todos los eventos clave. Tenga en cuenta también que el comando tarda casi 1 segundo.