仮想 Debian 環境

FIRERPA アドオンモジュールを利用して、Android 内で使用できる完全な Debian 環境を作成できます。Termux や androdeb が提供する機能に似ています。この環境では apt を使用してソフトウェアをインストールしたり、コードをコンパイルしたりできます。同様に、この環境で BPF 関連プログラムを自分でコンパイルして使用することもできます。これは、Android デバイス上で動作するほぼ完全な Linux 環境です。

ヒント

この Debian 環境には基本的なパッケージのみが含まれています。git、python3 などのよく使うコマンドは apt で各自インストールする必要があります。

環境のインストール

ヒント

バージョン 10.5 以降は、debian mod を手動でダウンロードする必要はありません。リモートデスクトップ端末で debian コマンドを実行するだけで、GitHub から rootfs が自動的にダウンロードされインストールされます。ただし、ネットワーク環境によってダウンロードが遅い、またはできない場合は、以下の手動手順でインストールすることもできます。

プロジェクトのリリースページで lamda-mod-debian-arm64-v8a.tar.gz を入手できます(マシンアーキテクチャに応じたインストールパッケージをダウンロードしてください)。ダウンロード後、リモートデスクトップを開き、ダウンロードしたファイルをデバイスにドラッグ&ドロップでアップロードします(リモートデスクトップのファイルアップロード先を変更していないことを前提とします)。その後、次のインストール操作を行います。このインストール操作を繰り返す必要はありません。

ヒント

リモートデスクトップでアップロードしたファイルは、デフォルトで ~/uploads ディレクトリに保存されます。

tar -C ~/modules -xzf ~/uploads/lamda-mod-debian-arm64-v8a.tar.gz

コマンドを実行すればインストール操作は完了です。次にシステムへの入り方を説明します。

環境への入り方

関連環境のファイルシステムをインストールしたら、コマンドを実行して仮想 Debian 環境に入ることができます。Debian 環境は ~/modules/debian にインストールされています。次のコマンドで Debian の対話型端末に入れます。

debian /bin/bash

一度だけコマンドを実行したい場合、例えば id コマンドを実行する場合は、次のように使用できます。

debian /bin/bash -c id

注目

仮想環境に入れるのは同時に 1 インスタンスだけです。debian /bin/bash を実行した後もそのセッションを維持している場合、別の端末で同じコマンドを再度実行するとエラーが返ります。先に前の debian セッションを終了してから再度お試しください。

応用的な使い方

ここでは簡単な応用例を紹介します。完了すると、環境内で SSH サービスを実行したり Python スクリプトを実行したりでき、セッション数の制限を受けなくなります。まず次のコマンドを実行して仮想環境に入ります。

debian /bin/bash

この時点で仮想環境内にいるはずです。そのまま次のコマンドを続けて実行してください。

apt update
apt install -y openssh-server procps python3 python3-pip python3-dev
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'StrictModes no' >> /etc/ssh/sshd_config
mkdir -p /run/sshd
# root パスワードを変更
echo root:lamda|chpasswd
# debian 環境を終了
exit

それでは、次のコマンドを実行して SSH サーバーを起動しましょう。

debian /usr/sbin/sshd -D -e

上のコマンドは現在の端末を占有します(固まります)。これを避けるには、内蔵のスケジュールタスク(cron)を使い、SSH サービスを FIRERPA サービスと共に自動起動させることもできます。次に、crontab -e を実行し、以下のルールを記述して FIRERPA サービスまたはデバイスを再起動してください。スケジュールタスクの使い方については スケジュールタスク の章も参照してください。

@reboot debian /usr/sbin/sshd -D -e >~/sshd.log 2>&1

デバイスの IP アドレスを確認し、お使いの PC で以下のコマンドを実行し、パスワード lamda を入力するとログインできます。

ssh root@192.168.x.x

あとは自由にアイデアを広げて、無限の可能性を試してみてください。これはそのまま小型 Linux サーバーです。