See also the docstring for the tramp-methods
variable. This part would appear noteworthy:
tramp-remote-shell
This specifies the shell to use on the remote host. This
MUST be a Bourne-like shell. It is normally not necessary to
set this to any value other than "/bin/sh": Tramp wants to
use a shell which groks tilde expansion, but it can search
for it. Also note that "/bin/sh" exists on all Unixen,
this might not be true for the value that you decide to use.
You Have Been Warned.
Edit:
So here's a way you could create a new method based on an existing one ("scpc" in this example), and then give the custom method a different remote shell:
(require 'tramp)
(let* ((base-method (cdr (assoc "scpc" tramp-methods)))
(new-method (copy-tree base-method))
(rshell (assq 'tramp-remote-shell new-method)))
(setcdr rshell "/system/bin/sh")
(add-to-list 'tramp-methods (cons "android" new-method)))
Note that in Emacs 23 (Tramp 2.1.20), this property was named tramp-remote-sh
. In Emacs 24 (Tramp 2.2.3-24.1) it has been changed to tramp-remote-shell
.
And I'm guessing that you can use this method by default for your specified host with this:
(add-to-list
'tramp-default-method-alist
(list "\\`myhost\\'" nil "android"))