2012年12月2日日曜日

Android で telnetd

Android の ConnectBot (telnet クライアント) で作業するのに便利かと思って,Bluetooth キーボードの TK-GMFBP029BK 購入.
早速使ってみたけど,効率的にソフトキーボードと大差ない (ctrl キーが効かない) 事がわかって,普通の日本語入力とかもやりにくいので 5分で窓から投げ捨てた.
# ←ちなみに GalaxyNote のペンで書いてみたw べんりwww

で,今まで Android に telnet で入って作業するには,USB ケーブルでつないで adb shell で入ってたんだけど,いちいち USB 接続しなければならないのと,adb shell は色々とターミナル的に変 (vi が使えないとか Ctrl+C で adb もろとも抜けるとか) なので,Android で telnet サーバを立ててみることにした.

今回はアプリを入れるのではなく,(root とってるなら busybox が入っているので) busybox 内蔵の telnetd を使用することにする.
こんなスクリプト↓を書いて,
#!/bin/sh

home=/sdcard/home

case $1 in

sudo)
    shift
    su -c "sh $0 $*; sleep 1"
    ;;

start_telnetd)
    PATH=/system/xbin:$PATH
    export ENV=$home/.shinit
    /system/xbin/telnetd \
        -l /system/xbin/sh \
        -b `ifconfig wlan0 | awk '/inet addr:/{ print substr( $2, 6 ) }'`
    ;;

stop_telnetd)
    kill -9 `ps | grep 'tel[n]etd' | awk '{print $2}'`
    ;;
esac
ConnectBot の「ログイン後の自動実行」に「exec スクリプト名.sh sudo start_telnetd」と書いておけば,telnetd が開始される./sdcard/home/.shinit が sh の初期化スクリプトなので,いろいろ alias とか書いとくと便利.

ただしユーザ名もパスワードもなくいきなり Android にログインできてしまい,3G 回線とかでつながってると外からログインしまくりなので,telnetd の -b <アドレス> で,バインドする if を WiFi (wlan0) のみに限定することで,とりあえず宅内 LAN からしか繋げないようにしとく.

これで,PC から WiFi 経由で Android につなげるようになった.vi とかも普通に使えて快適ヽ(´ー`)ノ

0 件のコメント:

コメントを投稿