The Magisk module you linked is using fusermount
binary from this thread which is built for Termux environment. But LD_LIBRARY_PATH
environment variable is not being set properly in the module, so the error occurs. A simple approach is to use static fusermount
binary, I already posted in the same thread.
rclone
uses FUSE which you can mount manually from CLI without relying on Magisk module. I have explained in detail How to bind mount a folder inside /sdcard with correct permissions?. Some issues related to using FUSE on Android are explained in this post. Here I'm describing steps briefly related to rclone
only. I'm using Termux for explanation. You can use some other terminal emulator app or adb shell
with differences in paths.
Instructions below require that you have a rooted device.
Install rclone
binary available in Termux repos (by running pkg install rclone
) or download from official website official website. Download static fusermount
binary from here (available for both aarch64
and armeabi-v7a
). Extract the downloaded archive files. I assume that downloaded files are placed in /sdcard/Download/
.
For ease of repeated use create a shell script /sdcard/Download/rclone_mount.sh
using any text editor. Copy/paste the following lines:
#!/data/data/com.termux/files/usr/bin/bash -e
# must be run with root privileges
[ $(id -u) -eq 0 ] || exec su --mount-master -c "LD_LIBRARY_PATH=$LD_LIBRARY_PATH HOME=$HOME PATH=$PATH:$HOME/bin $0"
# make sure to be in root mount namespace
[ $(readlink /proc/1/ns/mnt) = $(readlink /proc/self/ns/mnt) ] || nsenter -t 1 -m -- "$0"
Unmount() {
fusermount -u /mnt/runtime/write/emulated/0/GDrive 2>/dev/null || :
}
# make sure it's not already mounted
Unmount
# make sure it's unmounted after rclone is killed
trap 'sleep 1; Unmount' EXIT
# mount remote in /sdcard/
rclone -v mount GDrive: /mnt/runtime/write/emulated/0/GDrive --gid 9997 --dir-perms 0771 --file-perms 0660 --umask=0 --allow-other
See rclone mount
manual for explanation on commandline options. Some options may impact the performance.
Make sure Termux is granted Storage permission and execute following commands:
~$ cd
~$ pkg install -y util-linux
~$ mkdir -p bin /sdcard/GDrive
~$ cp /sdcard/Download/{fusermount,rclone,rclone_mount.sh} bin/
~$ chmod -R 0755 bin
~$ dos2unix bin/rclone_mount.sh
~$ bin/rclone config
Follow the instruction on screen (see rclone config
manual for details) to create configuration file (~/.config/rclone/rclone.conf
) for Google Drive (or whatever remote service you want to use). I assume you chose the remote name GDrive
(as used in above script).
Whenever you need to mount rclone
, open Termux and run bin/rclone_mount.sh
(or create Termux Widget to run the script from home screen conveniently).
- All apps with Storage permissions should be able to explore
GDrive
folder (bind mounting to read
and default
views isn't necessarily required). But some apps may crash due to slow network activity, others may require more caching (see options) etc.
- Trigger a Media Scan if e.g. pictures on remote don't appear in gallery app.
- When done press
Ctrl ^C
to stop rclone
process and mount.
fusermount
binary built for Termux environment. ButLD_LIBRARY_PATH
isn't being set properly. A simple approach is to use staticfusermount
binary.