Androidでドテン君

 ドテン君で推奨されているAWS Cloud9ですが、いずれ有料になるので今のうちに自前で実行環境を持ちたく思い、色々試している中でAndroidでlinuxを動かせるtermuxなるものがあることを知り、試したくなりました。

 この記事ではXperia A(Android 4.1)という機種をXperia ZR(Android6.0)化したものを使用しています。一般的ではないので記事通りやっても、他の機種では上手くいかないこともあるかと思います。(2018/04/20追記:中華スマホで動作確認しました。文末参照)

 また筆者はpython・コーディングなどに関して初心者です。間違っているところ・理解していないところが多々あると思います。ご容赦ください。

 実行は自己責任にておねがいします。

1.インストール

 Playストアよりtermuxをインストールします。Android5.0以上必須です。

2.pythonとライブラリのインストール

 起動するとターミナルの画面になります。まずはpythonからインストールしてゆきます。下記コマンドでpipもインストールされるようです。

$ pkg install python

 続いてライブラリをインストールしますが、当初ccxtが上手く行きませんでした。

$ pip install requests
$ pip install pytz
$ pip install ccxt

 ccxtのインストールでエラーメッセージが出て、導入できません。色々調べ下記5つをインストールすることでccxtの導入でエラーを出さず完走させられました。

apt install clang
apt install python-dev
apt install libxml2-dev
apt install libffi-dev
apt install libcrypt-dev

 androidのエミュレータであるNOX6で上記と同じ事をしてもccxtのインストールが上手くいきませんでした。私のスキルではこれ以上問題を追求できませんでした。

3.androidの設定など

 androidがスリープモードになるとtermuxも止まるようですので、STAY AWAKEというアプリをplayストアからインストールしました。このアプリの「ALWAYS STAY AWAKE」にチェックをいれてスリープを抑制します。

 termux上で下記コマンドを入力することでもスリープ抑制できるようです。

$ termux-wake-lock

 同様にhacker's keyboardもインストールしました。ターミナルの操作は標準キーボードでは困難でした。

4.SSHでWindowsと接続

 SSHでPCから操作できるようにします。スマホでの操作は慣れないとむずかしいです。私はWindowsからTeraTermで接続しました。

 先ず、ストレージの設定。androidの内部ストレージにシンボリックリンクを作成してアクセスします。(この説明が正しいのかよくわかりませんが)

https://wiki.termux.com/wiki/Termux-setup-storage
$ termux-setup-storage

 

 そして、termuxにSSHをインストールします。

$ apt install openssh

 

 更に、鍵の生成。保存するディレクトリを聞かれますが、デフォルトで良いのでそのままエンターを押しました。パスフレーズも聞かれましたが、空のままエンターで進めました。

$ ssh-keygen

 

 権限付与など。

$ cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh


 鍵をストレージにコピーします。permission deniedとエラーが出ましたが、androidを再起動するとコピーできました。謎。

$ cp ~/.ssh/id_rsa ~/storage/downloads/

 android端末をPCに接続して、内部ストレージのDownloadsフォルダを見るとid_rsaファイルが……ないので、再度再起動すると見えるようになりました。謎。このファイルを後ほどTeraTermに読み込ませます。

 androidのIPアドレスは下記コマンド確認しておきます。

$ ip -4 a

 SSH起動は下記コマンドで。

$ sshd

 PCでTeraTermを立ち上げ、IPアドレスとポート(8022)を入力。バージョンはSSH2、プロトコルはUNSPECです。

 OKを押すとSSH認証のウインドウが開きますので、「RSA/DSA……」を選択し、秘密鍵ボタンからid_rsaを選択。OKボタンを押すと接続できるはずです。


5.ファイル作成と実行 

 ここまできたらcloud9と同様の手順で実行まで持っていけるはずです。

$ touch dotenkun.py
$ touch dotenkun.sh
$ chmod 755 dotenkun.py
$ chmod 755 dotenkun.sh

 エディタはvimを使いました。

$ apt install vim
$ vim dotenkun.py
$ vim dotenkun.sh

 ソースコードをそれぞれコピーして最後に

$ ./dotenkun.sh

 


 2018/04/20追記:中華スマホX5max_PROで上記内容をほぼ確認できました。ただ、なぜか./dotenkun.shすると下記のエラーが出ました。

/usr/bin/python: bad interpreter: No such file or directory

 仕方ないので、下記コマンドで表示されるパスにシェバンを変更することで回避しました。

$ which python
/data/data/com.termux/files/usr/bun/python

この記事が気に入ったらサポートをしてみませんか?