tramp: Android shell setup

 
 4.17 Android shell setup hints
 ==============================
 
 TRAMP uses the ‘adb’ method to access Android devices.  Android devices
 provide a restricted shell access through an USB connection.  The local
 host must have the Android SDK installed.
 
    Applications such as ‘SSHDroid’ that run ‘sshd’ process on the
 Android device can accept any ‘ssh’-based methods provided these
 settings are adjusted:
 
    ‘sh’ must be specified for remote shell since Android devices do not
 provide ‘/bin/sh’.  ‘sh’ will then invoke whatever shell is installed on
 the device with this setting:
 
      (add-to-list 'tramp-connection-properties
      	     (list (regexp-quote "192.168.0.26") "remote-shell" "sh"))
 
 where ‘192.168.0.26’ is the Android device’s IP address.  (See
 Predefined connection information).
 
    TRAMP requires preserving ‘PATH’ environment variable from user
 settings.  Android devices prefer ‘/system/xbin’ path over
 ‘/system/bin’.  Both of these are set as follows:
 
      (add-to-list 'tramp-remote-path 'tramp-own-remote-path)
      (add-to-list 'tramp-remote-path "/system/xbin")
 
 When the Android device is not ‘rooted’, specify a writable directory
 for temporary files:
 
      (add-to-list 'tramp-remote-process-environment "TMPDIR=$HOME")
 
 Open a remote connection with the command ‘C-x C-f
 /ssh:192.168.0.26#2222:’, where ‘sshd’ is listening on port ‘2222’.
 
    To add a corresponding entry to the ‘~/.ssh/config’ file
 (recommended), use this:
 
      Host android
           HostName 192.168.0.26
           User root
           Port 2222
 
 To use the host name ‘android’ instead of the IP address shown in the
 previous example, fix the connection properties as follows:
 
      (add-to-list 'tramp-connection-properties
      	     (list (regexp-quote "android") "remote-shell" "sh"))
 
 Open a remote connection with a more concise command ‘C-x C-f
 /ssh:android:’.