This implementation is not efficent as each command will spawn a
new ssh command, which has considerable overhead and latency.

Example usage:
  ./screencap.sh -h [email protected] -f OUTPUT.PNG

Signed-off-by: Denis 'GNUtoo' Carikli <[email protected]>
---
 screencap/screencap.sh | 29 +++++++++++++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/screencap/screencap.sh b/screencap/screencap.sh
index 53284b3..7ed7d8c 100755
--- a/screencap/screencap.sh
+++ b/screencap/screencap.sh
@@ -18,13 +18,25 @@
 set -e
 
 FFMEG="ffmpeg"
-ADB="adb"
+ADB=""
 FB_PATH="/dev/graphics/fb0"
+SSH_HOST=""
 
 TMP_FB="fb_raw"
 TMP_FB_RS="fb_raw_rs"
 RECOVERY=false
 
+ssh_wrapper()
+{
+        if [ "$1" = "shell" ] ; then
+               shift 1
+                ssh "${SSH_HOST}" "su -c \"$@\""
+        elif [ "$1" = "pull" ] ; then
+               shift 1
+                scp ${SSH_HOST}:$@
+        fi
+}
+
 print_usage () {
     echo
     echo "Usage: $0 [OPTIONS] -f OUTPUT.PNG"
@@ -33,6 +45,7 @@ print_usage () {
     echo "Options:"
     echo "-r, --recovery        Device is booted in recovery mode"
     echo "-s, --screen-size     Specify screen size (mandatory in recovery 
mode)"
+    echo "-h, --ssh-host        Connect to the given host through SSH"
     echo
 }
 
@@ -66,7 +79,8 @@ take_screenshot () {
        PIX_FMT="rgb565"
     fi
 
-    $ADB pull $FB_PATH $TMP_FB
+    $ADB shell "cat $FB_PATH > /data/local/tmp/$TMP_FB"
+    $ADB pull /data/local/tmp/$TMP_FB $TMP_FB
     dd bs=$BS count=$SCREEN_SIZE_Y if=$TMP_FB of=$TMP_FB_RS
 
     $FFMEG -vcodec rawvideo -f rawvideo -pix_fmt $PIX_FMT -s $SCREEN_SIZE \
@@ -91,6 +105,11 @@ do
            SCREEN_SIZE="$2"
            shift 2
            ;;
+       -h|--ssh-host)
+           SSH_HOST="$2"
+           shift 2
+           ;;
+
        "")
            break
            ;;
@@ -102,6 +121,12 @@ do
     esac
 done
 
+if [ -z "${SSH_HOST}" ] ; then
+       ADB="adb"
+else
+       ADB="ssh_wrapper"
+fi
+
 if [ "$OUTFILE" = "" ]; then
     echo "No output file specified"
     print_usage
-- 
2.13.0

_______________________________________________
Replicant mailing list
[email protected]
https://lists.osuosl.org/mailman/listinfo/replicant

Reply via email to