以前、AndoroidでNode-REDを導入するにあたってTermuxを使用してLinuxエミュレーションを行っていました。
Termuxは、Androidの環境内にLinux的な実行環境を提供する端末エミュレーターアプリとなります。特に端末のRoot化などを行うことをせずそのまま使えるのが利点です。
ただ、このTermuxはGoogle Playストアに置いてあるバージョンが古いのがたまに瑕でした。(Linux環境は導入はできるのですがインストール後のaptコマンドに失敗します)
これを回避するには、F-Droidという公式ではないアプリストアサービスに接続し、そこからインストールするかapkファイルを使ってインストールすることになります。ちょっと面倒ですよね。
そんな中以下のような記事を見つけました。
こちらの記事では、PlayストアからダウンロードできるUserLAndを使用してLinux環境を構築するというものでした。こちらはPlayストアから環境できる分、先程のTermuxに比べて敷居が低いように思います。こちらもRoot化は不要です。
では、今回もNexus7(2013)をAndroid11化(厳密にいうならばLineage OS 18.1)したAndroidタブレットに導入して、どの程度動くのかを確認してみようと思います。
導入に先立って
導入に先立ってVNC Viewerをインストールしておきます。というのもUserLAndではX環境を作成して、立ち上げることもできるためです。接続もSSH接続かVNC接続かを選択できるようになっています。VNC接続を選択すると自動的にVNC Viewerが起動します。
今回、私はVNC Viewerを使用していますが、その他のVNCアプリを使用しても良いようです。

UserLAndの導入
UserLAndはPlayストアにあるので検索してインストールしていきます。

インストール後にUserLAndを起動すると使用可能な環境(Alpine、Arch、Debian、Kali、Ubuntu)が選択できるようになっています。OSタイプ以外でもX環境のデスクトップ(Lxde、Xfce)やアプリ(Firefox、Gimp、LibreOfficeなど)で環境構築して使用することもできます。
今回はUbuntuを選択して設定します。メニューから選択すると初期のユーザーネーム、初期パスワード、VNC接続用のパスワードの生成をするダイアログが表示されます。

VNCのパスワードは桁数が少ないのでご注意ください。設定後はダイアログの下にある【CONTINUE】を選択します。

続いて接続方法をえらびますが、導入時はX環境がないのでSSHを選択しておきます。選択後は【CONTINUE】を選択します。その後、環境構築処理が起動しますので、しばし待ちます。

環境が構築されるとコンソールが開きます。ログインパスワードを求められるので、入力を行いましょう。

ログインすると以下のような表示が行われます。もうこれでLinuxの動作環境が手に入りました。

あとは、aptコマンドで必要なパッケージをインストールしていけば大丈夫です。

apt upgradeも問題なくできました。
外部からのネットワークアクセスに関してはAndroid側のアプリということもあり、AndroidのIPアドレスを使用できるようになっています。ですが、ウェルノウンポートに関しては制限があるので、サーバープロセスを動作させる場合にはポート番号を変更する必要はあるようです。

また、先程の初期メニューからXfceを選択すれば、X環境をそのまま整えて、接続もできるようになっています。以下は起動後にAndoroid上のVNC Viewerから接続した様子となります。

また、PCからもVNC接続して使用する事もできました。Chrome拡張から接続もできています。

おわりに
かなりお手軽にLinuxのCLI環境とX環境を整える事ができました。サーバープロセスのポート番号には制限はありますが、Root化なども必要なくしようできるというのは非常に便利ですね。動作に関してはインストール時には時間はかかりますが、起動後はそこまでの動作のもたつきは感じられないので、悪くない選択肢なのかもしれません。
なお、これらの動作に当たってはさすがにオンスクリーンキーボードでの操作は現実的ではないと思うので物理キーボードを使用するとともに、日本語/英数の入力切り替えの設定もしておかないと、ユーザー名やパスワードの入力が面倒になります。
先日のエントリをご参考にして設定変更をおすすめします。