ユーザ用ツール

サイト用ツール


linux:userland

文書の過去の版を表示しています。


LserLAnd

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

  • 2020/06/19 現在: Alpine, Arch, Debian, Kali, Ubuntu

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

Bluetooth Keyboard 、 Bluetooth Mouse を使うと PC のように使えます。Oculus Go / Quest ではマウスの代わりにモーションコントローラを使います。

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

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

基本的な使い方

Install 方法

  1. UserLAnd のアプリを install します
  2. 任意の Linux Distribution を選択
  3. User 名と Password の入力
  4. SSH, VNC, XSDL の選択 (あとから変更可能です)
  5. VNC, XSDL 選択時は初回のみ Google Play に飛ぶ。bVNC Free (VNC) / XServer XSDL の install
    • install 後、もう一度 UserLAnd を起動して Distribution 名を再びタップ
  • Android 10 では XSDL を選択することができません。
  • 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 の画面解像度を変更する方法

インストールすると ~/.vncrc が自動で作られます。書き換えることで解像度の変更が可能です。

$geometry = "1280x720";

Smartphone の場合、等倍ピクセルだと画面が小さすぎて操作できなくなる可能性があります。 1280×720 あたりがおすすめです。 画面比率に応じて調節してください。

例: 解像度対応表

Device Native 768p 720p
Google Pixel 3 2160×1080 1536×768 1440×720
ASUS ZenFone AR ZS571KL 2560×1440 1366×768 1280×720
Essential Phone PH-1 2560×1312(2423×1312) 1418×768 1330×720
Huawei P30 Lite 2132×1080 1536×768 1412×720

旧バージョンの場合

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 ストレージへのアクセス方法

  • /storage/internal にファイルを転送すると、Android の「ファイル」アプリからアクセスできるようになります。
  • 「ファイル」アプリを使って他のアプリや外部とデータのやりとりを行うことができます。
  • /storage は UserLAnd 内の複数の Unix Distribution で共有されます。
  • Android 10 よりセキュリティが強化されて仕様が変わりました
    • 従来の共有の内部ストレージ (/sdcard) は直接アクセスできず、storage はローカルな領域となります。
    • 他のソフトなど外部とのやり取りは Android の「ファイル」アプリを使う必要があります。
  • Termux では「ファイル」アプリから Termux 側の Home ディレクトリに直接アクセスできますが UserLAnd はできません。
    • ファイルシステムには proot によるシミュレートされたメタファイルが付加されているためです。

自分自身への 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

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.1592570160.txt.gz · 最終更新: 2020/06/19 21:36 by oga

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki