Official Support for the Android platform

Is there any way to run rclone on Android without root? I am not looking for anything fancy, like mounting just the ability to use the rclone binary with a config to access a remote.

With root there are multiple options. Without root I can't find a way to do it. There are many non-root terminal emulators but they can't execute binary apps from /storage/emulated/0, nor can they access any directories outside of this path.

There is currently one 3rd party option- RCX (io.github.x0b.rcx) however it contains several Microsoft Analytics trackers. Asking a user to expose their sensitive rcone.conf file to an app that is streaming their data to 3rd party servers and app developers is an unacceptable security compromise.

Are there any possibilities others have found? Would the rclone dev's be willing to release an official rclone app? I don't need any fancy GUI just basic functionality, a simple black window that would allow me to run the basic rclone commands (rclone conf, rclone copy, rclone sync etc.)

Platform convergence seems to be the future and allowing users to access their files on mobile platforms like Android would be a huge benefit to the rclone project.

hi,

rclone runs on android

  • without root
  • able to access directores outside its path. for example, to sync keepass database between my cellphone and desktop computer and to backup andotp to clould.

i have a wiki here about using rclone on android.
tho i need to update it, as the latest termux cannot be installed from google play, only from f-droid website here.

"RCX (io.github.x0b.rcx) however it contains several Microsoft Analytics trackers."
i see you posted at the f-droid forum here
i think you meant "Google", not "Microsoft"
and that is for the google play store version, which should not be used.

the f-droid version does not have such trackers as documented here

perhaps @x0b can comment?

As stated by @asdffdsa, running rclone in Termux is the way for advanced users. I (and sometimes other contributors) make sure that the Termux version is always up to date.

As for official support, I have been working with ncw to launch gomobile support for rclone, which makes it much easier for other developers to integrate rclone into their apps. Since that was pretty recent, I'm not (yet) aware of any apps that make use of this option.

Asking a user to expose their sensitive rcone.conf file to an app that is streaming their data to 3rd party servers and app developers is an unacceptable security compromise.

I understand privacy concerns; I don't understand the baseless accusation of "an app that is streaming their [user's] data to 3rd party servers". All of the apps source code, and I mean all of it, can be downloaded at any time from GitHub, and reviewed. F-Droid builds are built by F-Droid from source and can be reproduced and inspected by everyone. We have also vendored the error reporting SDK and use a source-built version to ensure that everything is 100% proper.

We asked the F-Droid maintainers about error reporting; and opt-in error reporting is allowed on F-Droid. If a user does not want to help us out with error reports, that's fine. If you do not enable error reporting, nothing is stored or sent anywhere. If you have any indication to the contrary, please share your findings.

So, what happens if you do enable error reporting? The next time RCX encounters an unexpected error, it sends details about that error to Appcenter. The why and what is publicly documented. We then get those reports and can start fixing the bugs that caused the error in the first place. This is highly effective - almost all of our recent changes fix errors we only know about from Appcenter.

To give examples, we now have two fixes, one and two addressing issues that only happened to non-Google Play users. No user complained, created a GitHub issue or sent an email with error details.

We work on RCX because we want to. Error reporting is one of the major tools that makes this possible. If don't want to run any program that contains code capable of contacting remote server, even if that code segment is controllable by your choice, then RCX may not be the right tool for you.

2 Likes

Running rclone on termux is the most complete way of using almost all its features.

Except for the mounting which needs root.... You could serve files over ftp or any other serve command.
But yes, its for advanced users.
Use this command in termux
$rclone config file
It will give the directory for rclone config file
Then you could serve it using rclone as ftp
Use a file explorer to copy rclone config from pc or other devices if you need.

$ pwd
It will give the directory of termux
Then you could serve /data/data/com.termux/files/ using rclone as ftp
Then make simple files with common commands in rclone that you need and move them to the bin folder in
/data/data/com.termux/files/usr/bin

Eg say file name is ftp1
And it stores the command for serving remote1 over ftp and other parameters as per your need.

Then
$ chmod +X filename
It becomes executable
And you could simply
$ ftp1
To run the command

You could make commands like cleanup to delete vfs folder....etc
"rm -r /data/data/com.termux/files/home/.cache/rclone/vfs"

And to stop serving.... Just
$ pkill rclone

Once all the majorly needed shortcuts are setup. Using rclone in termux is so fun.

1 Like

You are describing using rclone inside the termux environment which may be the ultimate solution. I was looking for a way to run the rclone binary directly and I do not believe it is possible on Android without root, thanks for the reminder.

The exodus report that you linked in your exodus report (1.11.4) is an old version. All of the latest versions of RCX absolutely do contain user tracking.

Here is a Exodus scan of the latest version showing the tracking in the app:

To verify this, install RCX on your device and run the ClassyShark3xodus app from f-droid which will run the same Exodus scan on the app. It will detect:

Microsoft Visual Studio App Center Analytics
Microsoft Visual Studio Crash Center Crashes

It will even list all of the 67 specific tracking classes inside the RCX application.For example:

com.microoft.appcenter.analytics.channel.SessionTracker
com.microsoft.appcenter.analytics.AnalyticsTransmissionTarget
... etc

I am curious why this older version does not contain tracking but the newer version do. Thank you for bringing this to my attention, As long as 1.11.4 keep working, I think running 1.11.4 is an acceptable solution as it does appear to be free of Google and Microsoft tracking.

I understand that the recent version of RCX have two trackers in the code:

Microsoft Visual Studio App Center Crashes
Microsoft Visual Studio App Center Analytics

I also understand that the user can turn off crash reporting. What about the Analytics, can the user turn off the user tracking analytics reporting as well?

I learned earlier from asdffdsa that 1.11.14 is completely free of all user tracking. I am grateful for this discovery.

I understand that crash reporting and user tracking is useful to you as a developer however it is definitely an anti-feature. For example, does this data go directly to you on a locally controlled server or does it go to the Microsoft corporation servers? Crash reports can contain a lot of sensitive device and user information and once the data is out of the control of the user and the developer and in the hands of a 3rd party it can be sold, shared with business partners, given away, hacked leaked, aggregated etc.

Why did you remove Analytics from your app and created one tracking free version then added them in again in subsequent versions? Would you ever consider releasing another tracking free version that respects users privacy?

Rclone is a user empowering technology and it appears that RCX version 1.11.4 is as well. I am glad we had this discussion and other users who value privacy and autonomy will be able to find this thread and use RCX version 1.11.4 as a second Android rclone non-root solution.

1 Like

all this talk and 0 options for apple iphone users, which are like billions of people

The error reporting switch toggles the complete error reporting feature. Switch off == no Appcenter Crashes/Analytics.

The v1.11.4 F-Droid version was the result of weird development cycles in open source. Initially, when the F-Droid inclusion process got started, we got stuck trying to debug the complicated two-stage build. RCX has both a C-"native" (as in linux ABI) and another "native" (as in Java/ART-based)
component.

When the inclusion process continued, we were stuck - we couldn't use the old Firebase integration (proprietary) and the new Appcenter integration was still months away. So, in order to not block the process again, we wrote a specific build script for F-Droid that modified the build while building :exploding_head:. And one of effects of this was a version of RCX without either Firebase or Appcenter.

As an official, supported version of RCX? No.We could however add it as a GitHub build action artifact target (example, with Appcenter). Though I think people need a GitHub account to download those, so I'm not sure if that would be a solution for you.

1 Like

iOS support is a hard nut to crack. You need mac hardware, iPhones and a developer account, all of which are $$$. Rclone is a niche tool, and even with RCX being completely free, there are only about 1.5K MAU.

Let's calculate a little. I think we'd need a budget of 5-10K$ each month. That comes out to about a 10$ subscription each month for 1000 users, or about 150 000 users if we were to shoot for 10$/year/user.

You might think that these numbers are a bit high, but iOS developers don't exactly grow on trees. An most people aren't just going to sink hundreds of hours into something.

1 Like

The Exodus database has been updated to scan for the latest version of RCX. It now shows two trackers: εxodus

1 Like

The react based ui works on phones. I have compiled rclone to wasm so in theory you should be able to make the rclone web ui work entirely in the browser which should work on iOS too.

I haven't actually succeeded with that though (I got stuck gluing the webui to the rclone wasm due to lack of knowledge when I tried it) but it should be possible.

That isn't as nice a solution as RCX but it would be better than nothing. It would probably only work for http based backends (so no sftp/ftp) without some kind of proxy.

I didn't know that even http worked on wasm. That almost has a 'does it run doom?' quality to it. I was more thinking of compiling rclone as a shared library, and then slapping a native UI on top.

The wasm idea works without Apple hardware, which is nice. The gluing part is a critical step. OAuth would need to be changed as well.

Just adding a little extra here. If you have something specific that you're trying to do and do not need adhoc access, then I use an app called "Automate for Android" and create flows to start/stop functions on my NVIDIA shield servers (webdav for kodi and a local sftp server) and my phones (sync pics to drive directly on a schedule for example). I prefer this to termux depending on what you need as something like Automate can trigger off of other android API changes. It sounds like you need more adhoc access and this may not be for you, but its an option I use so thought I'd mention it.

You can bridge to Javascript so anything you can do in javascript you can do from wasm (handwaving).

He he!

Well that works too!

What is needed to make the glue work is replace the rpc in the react code with a call to the wasm library.

I got lost in a twisty turny maze of callbacks when I tried it, but with a bit of async it would probably be much easier. I'm not a JS expert though - I know just enough to shoot myself in the foot with it :wink:

I hadn't even thought about that!

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.