Termuxからスマホの保存領域にアクセス

 Termuxからスマホ内のファイルにアクセスする方法について調べどのようなフォルダにアクセスできるのか調べました。

環境

携帯電話 Galaxy S24
 Android 14
 ホストOS Termux

現状の確認

 Termuxを標準インストールした状態では、スマホ内のフォルダにアクセスすることはできません。
 TermuxのhomeディレクトリをWinSCPから表示した様子です。

Termuxのhomeディレクトリの様子(権限追加前)

アクセス権限の付与

 Termuxからスマホ内の保存領域(DCIM等)にアクセスするためには、次の手順が必要です。

   ①Termuxアプリにファイルアクセス権限を付与
   ②Termuxからストレージのマウント
 Termuxから次のコマンドを入力します。

# Termux にスマホ内のフォルダにアクセス権限を付加する①
$ > termux-setup-storage

 初期状態では、Termuxにアクセス権限は付いていないので、「全てのファイルへのアクセス」という設定画面が開きます。
 Termuxにアクセス権を付与して、左上の「<」をタップして戻ります。
 ※使い終わったらアクセス権を切っておいた方が安全です

全てのファイルへのアクセスを開いた様子

 もう一度次のコマンドを入力します。

# Termux にスマホ内のフォルダにアクセス権限を付加する②
$ > termux-setup-storage

 これでアクセス権限の付与は完了です。
 クライアント上のWinSCPを再起動して、Termuxに接続します。
 Homeディレクトリを表示すると、「storage」フォルダがマウントされて表示されていることがわかります。
 ここからスマホ上のフォルダにアクセスできるようになります。
 ちなみに、ヘルプコマンドはありませんが、引数をつけると説明文が表示されるようですね。

# ヘルプメッセージの表示(引数はなんでもよさそうです)
$ > termux-setup-storage -h
usage: termux-setup-storage
Use without arguments to ensure storage permission granted
and symlinks to storage available in $HOME/storage

# 和訳
使用方法: termux-setup-storage  
引数なしで実行してください。そうすることで、ストレージへのアクセス許可が付与され、  
$HOME/storage にストレージへのシンボリックリンクが利用可能になります。
Termuxのhomeディレクトリの様子(権限追加後)

どのようなフォルダにアクセスできるのか

storageフォルダ内には、

  audiobooks → /storage/emulated/0/Audiobooks
  downloads → /storage/emulated/0/Download
  movies   → /storage/emulated/0/Movies
  podcasts  → /storage/emulated/0/Podcasts
  dcim    → /storage/emulated/0/DCIM
  external-0 → /storage/emulated/0/Android/data/com.termux/files
  music   → /storage/emulated/0/Music
  shared  → /storage/emulated/0
  documents → /storage/emulated/0/Documents
  media-0  → /storage/emulated/0/Android/media/com.termux
  pictures  → /storage/emulated/0/Pictures

といったフォルダのショートカットが入っています。
 これ以外のフォルダにはアクセスできないようですが、スクリーンショットや撮影した写真にはアクセスできました。
 これでスマホからクライアントへのデータ送受信ができるようになったので、助かります。

感想

 Termuxからスマホ内のデータにアクセスできることはいいのですが、OpenSSHを使って第三者にアクセスされたときにスマホ内のデータまで抽出されるのは危険すぎますよね。
 Termuxアプリはなんでもできてしまうので、スマホからデータを吸い出す必要がないときは、
    Termuxアプリのファイルアクセス権を無効
に戻しておくことを推奨します。