FakeStarSenseのPlateSolveを実行するUserLAndがどうもアップデートでデグレしたようで、Android14だとPictureフォルダにあるファイルが見えなくなってしまいました。

UAndroid側の/Android/data/tech.ula/files/storage フォルダが UserLAnd側の/storage/internalとして共有されていて、撮影した画像をUserLAndにわたすのが、以前はこのフォルダを介してできたのですが、Android11からアプリは自分のローカルなフォルダ以外は基本アクセスできなくなってしまいました。

で、代わりに共有フォルダとして/PicturesフォルダがAndroid側でもUserLAnd側からでも見えていたので、そこを介して画像を渡していたのですが、Android14になって、なのかUserLAndがアップデートされて、なのか理由はわかりませんが、UserLAndで/Picturesフォルダにあるファイルが見えなくなってしまいました。さて困ったどうしようというのが前回の話(長いフリだ)。

UserLAndとAndroidとはsshで通信しているので、じゃぁsftpでファイル転送すればいいじゃない?と調べてみると、どうもUserLAndはsftpサーバは動いていないっぽい。
sftpgoっていうsftpサーバもあるみたいですが、自分でビルドしないといけない。めんどくさい・・


で更に調べていたらftpを使うのが楽そうなことがわかりました。こちらのproftpdを試してみます。



インストールは簡単。UserLAndのUbuntu上で
ます。
sudo apt install proftpd-basic
以上。
それから設定を編集するためにエディタを入れておきます。
sudo apt install nano
続いてftpサーバの設定。/etc/proftpd/proftpd.confを編集します。nanoでこのファイルを開いて
cd /etc/proftpd
nano proftpd.conf
Portの行の値を
2021
に変更
Screenshot_20231126-174808


続いてUserとGroupの行を共に
userland
に変更。変更したらCtrl+O, Ctrl+Xを押してnanoを終了。

Screenshot_20231126-174855

これで
sudo service proftpd restart
と打てばftpサーバが動き出します。続いてUserLAndを再起動したときにftpサーバも自動起動するように設定します。

定番の手法はsystemctlコマンドを使って、
sudo systemctl enable proftp
とやりますが、UserLAndではsytemctlコマンドが使えません。じゃあどうするか、ググっていたら、こちらの記事を発見。


UserLAndは起動時に /support/startSSHServer.sh を実行するため、その中に書いてやれば良い、というアイデア。なるほど。
さっきと同じようにnanoで開いて、
cd /support
nano startSSHServer.sh
一番最後に
/etc/init.d/proftpd start
と追加してやります。こんな感じ。
Screenshot_20231126-194247


これでUserLAnd側は完了。後はAndroid側でftpでファイルを送ればOK。org.apache.commons.net.ftp.FTPを使います。

使い方はここらへんを見ればOkなので、略。