さっき決めたブログ

Android端末にLinuxの環境を構築する(①Termux関連)

総合目次はこちら

F-Droidのインストール

Google App Store版のTermuxは現在更新が停止しているので代わりにF-Droidというアプリからインストールを行う。
なので、まずはF-Droidを端末にインストールしておく。

  1. 以下のサイトにアクセスしF-Droid.apkをダウンロードする
    https://f-droid.org/ja/
  2. ダウンロードしたファイルを実行する。
    セキュリティの警告が出る場合、設定から「不明なアプリのインストール」を許可しておく。
    不明なアプリのインストールの許可

Termuxのインストール

F-Droidのインストールが完了し起動したら、F-DroidからTermuxのインストールを行う

  1. 検索にtermuxと入力して出てきたリストの中から「Termux」を選びインストールする
    Termuxの選択
  2. F-Droidの時同様にセキュリティの警告が出るので、設定から「不明なアプリのインストール」を許可しておく。
  3. 「安全でないアプリをブロックしました」の警告が出たら、インストールするを選んで強制インストールを行う
    安全でないアプリをブロックしました

Termuxの各種設定

ストレージのアクセス、他ツールなど

  1. Termuxの初回起動時に通知の許可を聞いてくるので許可を選択しておく。
    許可を選択
  2. 以下を入力し、パッケージを最新のものにする
    $ pkg update
    $ pkg upgrade
    選択肢はいずれもYを選択する。
  3. 以下を入力してAndroidのストレージを参照できるようにする
    $ termux-setup-storage
    下記のメッセージが出るので、許可を選択する。
    許可を選択

    下記のコマンドでAndroidのストレージを参照できていることを確認できる。
    $ ls -la storage/shared
    結果は次の通り(※端末によって内容は違ってきます)
    total 7
    drwx------ 2 u0_a280 u0_a280 3452 Jun 29 15:48 .
    drwx------ 5 u0_a280 u0_a280 3452 Jun 30 09:34 ..
    lrwxrwxrwx 1 u0_a280 u0_a280   24 Jun 29 15:48 dcim -> /storage/emulated/0/DCIM
    lrwxrwxrwx 1 u0_a280 u0_a280   28 Jun 29 15:48 downloads -> /storage/emulated/0/Download
    lrwxrwxrwx 1 u0_a280 u0_a280   48 Jun 29 15:48 external-1 -> /storage/9C33-6BBD/Android/data/com.termux/files
    lrwxrwxrwx 1 u0_a280 u0_a280   26 Jun 29 15:48 movies -> /storage/emulated/0/Movies
    lrwxrwxrwx 1 u0_a280 u0_a280   25 Jun 29 15:48 music -> /storage/emulated/0/Music
    lrwxrwxrwx 1 u0_a280 u0_a280   28 Jun 29 15:48 pictures -> /storage/emulated/0/Pictures
    lrwxrwxrwx 1 u0_a280 u0_a280   19 Jun 29 15:48 shared -> /storage/emulated/0
    自分の環境の場合、SDカード(external-1)へのアクセスがうまくいかないようなので、そこだけ手動で修正する。
    $ rm storage/external-1
    $ ln -s /storage/9C33-6BBD storage/external-1
  4. その他必須ツールのインストール
    $ pkg install proot android-tools wget curl git

PhantomProcessKiller対策

Android12以降の場合PhantomProcessKillerという機能が実装されている、これによりバックグラウンドで起動しているTermuxが頻繁に停止する現象が発生するため、その対策を行う。
端末以外にも基本的にPCが必要となるので若干面倒、Wifi経由端末単体で行う技についてはリンクを参照してください。
  1. 端末側で開発者オプションのUSBデバッグを有効にする
    USBデバッグの有効化
  2. PC側にAndroid SDK Platform-Toolsをインストールする。
    以下のサイトより、SDK Platform-Tools for Windowsをダウンロード
    https://developer.android.com/tools/releases/platform-tools?hl=ja
  3. ダウンロードした.Zipファイルを任意のフォルダに解凍する。
  4. PCと端末をUSB接続する。
    その際に端末側に下記のメッセージが出てくるので、「このパソコンからのUSBデバッグを常に許可する」にチェックを入れて許可を押す
    接続の許可
  5. PC側でコマンドプロンプトを起動し、.Zipファイルを解凍したフォルダまで移動し、以下のコマンドを実行
    D:\platform-tools> adb shell settings put global settings_enable_monitor_phantom_procs false

OpenSSHのインストール、設定

OpenSSHのインストールを設定を行い、パソコンなどの外部端末から端末を操作できるようにしておく
Android端末がパソコンと同じローカルネットワーク環境に接続されていることが前提となります。

Termux側の作業

  1. OpenSSHをインストールする
    $ pkg install openssh
  2. 各種設定と必要なツールのインストール
    $ pkg install termux-am-socket termux-api
  3. パスワードを設定する
    $ password
    設定したパスワードは忘れないように覚えておく
  4. IPアドレスを確認する 以下のコマンドを入力
    $ ifconfig
    以下のような結果が返ってくるので、赤字の部分のIPアドレスを控えておく
    Warning: cannot open /proc/net/dev (Permission denied). Limited output.
    lo: flags=73  mtu 65536
         inet 127.0.0.1  netmask 255.0.0.0
         unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
    
    wlan0: flags=4163  mtu 1500
            inet XXX.XXX.X.XX  netmask 255.255.255.0  broadcast XXX.XXX.0.XXX
            unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 3000  (UNSPEC)
    ここで表示されたIPアドレスは変更される可能性があるので、基本接続前に毎回確認する必要がある。
    以下で説明しているIPアドレスの固定化作業を行えばIPアドレスが変更されることはないので、毎回確認する必要はなくなる。
  5. 以下のコマンドで起動する
    $ sshd
    Termux起動時に自動起動できるよう、.bashrcを設定しておく
    $ echo sshd > ~/.bashrc
  6. ssh経由で作業している時に、端末がスリープに入ると処理速度が極端に落ちる。
    それを抑止するには以下のコマンドを入力する
    $ termux-wake-lock
    これを入力することで、Termuxを起動している限り端末がスリープ状態にならなくなる。
    しかし、電池の消費が激しくなるので、作業が終わったら以下のコマンドで下に戻しておくようにする。
    $ termux-wake-unlock

クライアント側の作業

ここではWindows10のパソコンを用いて接続を行う

  1. コマンドプロンプトを起動して、以下の通り入力
    C:\> ssh -p 8022 XXX.XXX.X.XX
    赤字の部分は上で控えたIPアドレスになります。
  2. 初回は次のようなメッセージが表示されるのでyesと入力してEntetr
    The authenticity of host '[XXX.XXX.X.XX]:8022' can't be established.
    ECDSA key fingerprint is SHA256:XXXXxXxXXXXxXXxXXXXXXXXXXXXXxXXXXXXXXXXxxXX.
    Are you sure you want to continue connecting (yes/no/[fingerprint])?
  3. パスワードを聞かれるので、こちらも上で設定したパスワードを入力する。

PCからファイルを共有出来るようにする

以下必須ではないが、Andorid端末のストレージをSSHを用いてWindowsパソコンのExplorerから参照できるようにしておく。
これをやっておくと、写真のダウンロードや通勤・通学中に見たい漫画や動画をアップロードする作業が捗るので設定することをお勧めします。

IPアドレスの固定化

自宅のWifi環境等から接続した場合に限定されるが、IPアドレスを固定化しておいた方が色々と便利なので設定する
このあたりの設定方法は端末によって際があるので、あくまでも自分の端末の場合の説明となる

  1. Wifiに接続した状態でWifi設定を開き、接続されているSSIDをタップして詳細を開く
    Wifi設定
  2. 詳細画面の右上の編集ボタンを押す
    編集ボタン
  3. ネットワーク設定を変更する。
    IPアドレスはDHCPの範囲に被らないようにする。
    ネットワークの設定

SSHFS-Winのインストールと設定

  1. 以下のサイトよりSSHFS-Winのmsiファイルをダウンロードして、インストールを行う
    https://github.com/winfsp/sshfs-win/releases/
  2. PC側でExplorerを起動し、以下のアドレスを入力する。
    \\sshfs\XXX.XXX.XX.XXX!8022
    赤字部分はIPアドレス
    各自設定した内容のものにする
  3. パスワード入力画面が出てくるので、設定したパスワードと、「このアカウントを記憶する」にチェックを入れる。

    パスワードの入力

    以下のようにエクスプローラにTermuxのホーム画面が表示されたら成功

    エクスプローラの画面
  4. 残念な事に端末内部で設定したシンボリックリンクはSSHFS-Win上では無効なので、~/storageフォルダは使用する事はできない。
    Android端末側のファイルを確認する場合は以下のアドレスを入力する。
    \\sshfs.r\XXX.XXX.XX.XXX!8022\storage\emulated\0
    ここのWindowsショートカットをホームに作成しておくと便利
  5. ネットワークドライブに割り当てるには、コマンドプロンプト上で以下のコマンドを入力
    C:\> NET USE Z: \\sshfs\XXX.XXX.XX.XXX!8022

今回は以上となります。
次回はproot-distroを使ってUbuntuをインストール・設定していきます。

投稿者プロフィール

KARASU
うーん いろいろ考え中。。。

コメント

コメント取得中...

関連記事

TOPへ