ユーザ用ツール

サイト用ツール


linux:userland

LserLAnd

Android に install 可能な Linux 環境です。 PC の Linux Distribution と同等のものが利用できます。

  • 2019/02/12 現在: Alpine, Arch, Debian, Kali, Ubuntu

通常のアプリとして簡単にインストールできます。root 不要。 Console は SSH 経由でアクセスします。 GUI は VNC もしくは X Server XSDL を利用します。

Bluetooth Keyboard 、 Bluetooth Mouse を使うと PC のように使えます。

古い端末では動かない場合もあります。install し一見動くものの動作が不安定な場合もあり。試して動作した機種 ↓

Device Android SoC CPU RAM ROM SSH/VNC XSDL
ASUS ZenFone AR ZS571KL Android 7.0 Snapdragon 821 arm64 2+2 8GB 128GB Y Y
Google Nexus 5X Android 8.1 Snapdragon 808 arm64 2+4 2GB 16GB Y Y
Essential Phone PH-1 Android 9.0 Snapdragon 835 arm64 4+4 4GB 128GB Y -
Google Pixel 3 Android 9.0 Snapdragon 845 arm64 4+4 4GB 128GB Y -
Oculus Go Android 7.1 Snapdragon 821 arm64 2+2 3GB 32GB Y1) -
ASUS Chromebook Flip C101PA Android 7.1 Rockchip RK3399 arm64 2+4 4GB 16GB Y -
  • SD card 上にファイルシステムを作れないので、できるだけ内蔵ストレージが大きめの機種を使うことをお勧めします。

基本的な使い方

Install 方法

  1. UserLAnd のアプリを install します
  2. 任意の Linux Distribution を選択
  3. ストレージへの Access Permission を許可する。(/sdcard をマウントするために必要です)
  4. User 名と Password の入力
  5. SSH, VNC, XSDL の選択 (あとから変更可能です)
  6. VNC, XSDL 選択時は初回のみ Google Play に飛ぶ。bVNC Free (VNC) / XServer XSDL の install
    • install 後、もう一度 UserLAnd を起動して Distribution 名を再びタップ
  • 2019/01/18 現在: 新しいバージョンでは Connect Bot が不要になりました

開始方法

  1. UserLAnd アプリを起動して、Distribution 名をタッチ
  2. Install 時の選択に従い SSH Terminal, bVNC Free, XSDL の何れかに切り替わります。

しばらく待っても画面が切り替わらないときは、一旦 UserLAnd アプリを終了させてからもう一度起動してください。

停止方法

  1. UserLAnd アプリを起動して、起動中の Distribution 名を長押し
  2. Stop App を選択。
  3. その後 UserLAnd アプリ自体を終了する。

SSH / VNC / XSDL の切り替え

アプリの Distribution 名を長押しすると設定を変えることができます。先に Stop App しておく必要があります。

  • SSH / VNC / XSDL の切り替え手順
    1. Distribution 名を長押し → Stop App
      • 止まらないときは一度 UserLAnd アプリを終了しもう一度 Stop App
    2. Distribution 名長押し → App Info
      • 接続方法を選択する
        • SSH = 内蔵の Terminal で接続
        • VNC = bVNC Free で接続
        • XSDL = XServer XSDL で接続

設定等のメモ

日本語化&日本語入力対応化

VNC の画面解像度を変更する方法

Ubuntu の場合 ~/.vnc/tightvncserver.conf を作成し、下記のように書き込む。Debian の場合は ~/.vncrc に下記の内容を書き込む。

$geometry = "1280x720"

Smartphone の場合、等倍ピクセルだと画面が小さすぎて操作できなくなる可能性があります。 1280×720 あたりがおすすめです。 画面比率に応じて調節してください。 例: Pixel 3 (2:1 = 2160×1080) の場合 1440×720、Essential Phone PH-1 (1.84:1 = 2560×1312) の場合は 1330×720。

Ubuntu ~/.vnc/tightvncserver.conf
Debian ~/.vncrc
Arch Linux ~/.vnc/config

SSH 経由のアクセス

  • port 2022

SSH を選択している場合は普通に sshd (dropbear) が動いています。PC など他のマシンからもアクセス可能です。port 番号が 2022 なので注意。

$ ssh -p 2022 <AndroidDeviceIP> -l <UserName>

VNC/XSDL mode 時に SSH Server を起動する

$ sudo /support/startSSHServer.sh

Android ストレージへのアクセス方法

最初からマウントされており、/sdcard でアクセスできます。

自分自身への adb 接続

(1) PC に接続して、端末の adb mode を tcpip に変更

PC に予め Android SDK (adb command) を入れておく必要あり。 PC に USB 接続して、PC 側でコマンドを打つ “adb tcpip 5555”。

(2) Android (UserLAnd) 側での操作

$ sudo apt install android-tools-adb
$ adb devices

これで自分自身が「emulator-5554」として認識されている。

ブラウザ

Firefox

2019/01/10 現在 Ubuntu では Firefox が動きません。(黒画面のまま)

Debian では問題なく動いています。

Chromium

--no-sandbox を指定すれば Chromium Browser が動きます。Debian, Ubuntu 両方で確認しました。

Debian の場合

$ sudo apt install chromium
$ chromium --no-sandbox

Ubuntu の場合

$ sudo apt install chromium-browser
$ chromium-browser --no-sandbox

Android の併用

Android 7 以降なら画面分割機能が使えるので、Android のブラウザを併用する方法もあります。 速度も早く確実です。

複数のストレージの併用

UserLAnd の “Filesystems” tab でストレージを管理することができます。 同じ Distribution でも複数のストレージ領域をもたせることが可能です。

  1. Filesystems Tab に切り替える
  2. 右上の「+」から追加
    • 一番下の “Filesystem:” で、Distribution を選択
  3. 右上の FD アイコンで保存
  4. Sessions Tab に切り替える
  5. 右上の「+」から追加
  6. Filesystem: を上で作ったものに切り替え
  7. Service Type: を任意に選択する (SSH or VNC)
  8. 右上の FD アイコンで保存

他の Distribution ストレージへのアクセス

実際のファイルは /data/data/tech.ula/files 以下にあります。

  • /data/data/tech.ula/files/1

Filesystem を作るごとに、1~ の番号フォルダが作られていきます。 例えば最初に作ったのが Ubuntu で User name が “dench” なら、下記のように実パスでもアクセスできます。

$ cd /data/data/tech.ula/files/1/home/dench

同じように、他の Distribution の領域にもアクセスできます。 例えば、二番目に作ったのが Debian で User name が “hyper” なら、次のようになります。

$ cd /data/data/tech.ula/files/2/home/hyper

もし設定を変えて起動しなくなっても、他の動いている Distribution からアクセスしてファイルを書き換えることが可能です。 ただし .proot-meta-files.* や .proot.l2s.* 等のメタファイルに矛盾する修正はやめた方が良いでしょう。

PC の X11 server への接続

PC 側で X11 server が動いている場合、UserLAnd の X client (terminal 等) を直接 PC で操作することができます。

  1. 予め UserLAnd 上で ssh server を起動しておく。
  2. PC 上で X11 server を起動 (Windows の場合は X410 や VcXsrv 等)
  3. WSL 上の Linux (Ubuntu, Debian 等) で x11-server-utils を install しておく。
  4. PC 側で下記のように実行
$ sudo apt install x11-server-utils
$ export DISPLAY=localhost:0.0
$ xhost +<AndroidIPAddress>
$ ssh -Y <AndroidIPAddress> -p 2022
$ xterm

Windows の場合は、WSL + X11 server の併用をお勧めします。

ホイール欲しい ハンドル欲しい の関連記事

1)
VNC を使う場合は注意点があります。詳しくは blog 記事を参照してください
linux/userland.txt · 最終更新: 2019/02/25 21:00 by oga