yashsingh1/xdaforums huggingface dataset:
[Android Apps and Games] tliebeck:
FX 6.1.0.2 Released (Beta Channel)

A new 6.1 beta is available, mostly minor changes.

Added "rename" option to transfer conflict dialog, such that files copied into a directory with conflicting names will be renamed filename(#).ext.

Transfer conflict dialog becomes a "Duplicate" dialog when copying files and pasting them into the same directory (I've personally wanted this forever).

Busybox fix for SDK 22/Android 5.1

Package thumbnails for /data/user/#/app and /data/user_de/#/app directories

Verifying file size after writing files via storage access (@gazzacbr, this will at least error the transfer out even if device incorrectly reports success)

Bugfixes

Direct Download: http://android.nextapp.com/fx/r6102/FX_r6102.apk

Beta Testing G+ Community: https://plus.google.com/communities/101301040394875566704 (join community, then go to https://play.google.com/apps/testing/nextapp.fx )
[Android Apps and Games] gazzacbr:
Hi, just tried with total commander and working fine. No message from fx about not completing and takes just as long to get a file only 24mb.

Side pop out says completed.
[Android Apps and Games] tliebeck:
Thanks, from 6.1.0.2 on it should fail if file size is incorrect. It shouldn't be necessary to check this, as the Storage Access API isn't behaving correctly by not reporting the failure.

One thing I want to make sure of here, make sure Total Commander cannot use root access to perform the operation. I'm not sure how they do it, but some file managers bypass the "normal" method of writing to an SD card if root is present. FX does not (unless you specifically use the "Root" catalog to perform the transfer).
[Android Apps and Games] gazzacbr:
Hi, Total commander didn't have root, just accepted access to card.

ext sd card back to internal works with fx.

With fx, cutting the file back again does not work. Testing in an empty folder the initial file size 23.2mb didn't change and became the final cut file size. Movie is of course corrupted and cutting means original would be lost.
[Android Apps and Games] tliebeck:
I think I've figured it out....my Note3 actually does it too! I'm on Lineage 14.1, think I built it on October 7th.

It appears that requesting any information about the file during the operation truncates it. FX by default watches the displayed directory for updates, and refreshes its state accordingly. When I turn this option OFF in the settings, everything works correctly.

To workaround this problem: go to Settings, File Management, and uncheck "Auto Refresh". Avoid interacting with FX until the transfer is complete, simply refreshing that directory will truncate the file due to this bug.

I will be reporting this to Lineage when their bugtracker opens. I thought it opened at Midnight on Friday UTC (which has past) but maybe they meant Midnight end of day Friday.

I discovered this because my first action was to modify FX and start dumping each buffer write to the log. When I also told it to check the written file's length each time, I wound up seeing a file that was always the exact same size as the buffer (each length-check truncated it).

I even just tried creating a second extremely simple Android app that gets the size of specific test file as I'm writing it. The second app is able to truncate FX's transfer just by querying the file size!

Another extremely odd behavior I noticed is that as root/shell user, the written file has 0 length. E.g. ls -l in a shell produces this:

-rwxrwx--x 1 root sdcard_rw 0 2017-10-13 06:05 test.dat

When I view that file in FX, it's reporting it's correct size. And If I do "cat test.dat" in the shell, the contents are displayed.

Could you try one more thing for me: perform the transfer in Total Commander, and then refresh the directory listing in Total Commander while the transfer is in progress. in the background. Make sure it's a view that shows file sizes so that Total Commander is forced to re-query that info.
[Android Apps and Games] osm0sis:
Hmm all kinds of "failed to parse line" logcat spam with this one
[Android Apps and Games] gazzacbr:
Hi, thanks for the research. Total Commander only has a cancel button so app is locked completely while copying.

Maybe they discovered this already or just are lucky?
[Android Apps and Games] osm0sis:
[MENTION=2954544]tliebeck[/MENTION], I was talking with [MENTION=4470081]topjohnwu[/MENTION] about the weird hangs that occur in FX with Magisk, especially when one tries to view the System (Root) directly after boot (before boot.completed).

He was saying there seem to be some oddities to the root calls:

"It will first call su once, then exits, wait for whatever things before it requests the second time, which is the actual root call"

Hopefully that's a bit of a lead. :fingers-crossed:
[Android Apps and Games] topjohnwu:
Hello, [MENTION=2954544]tliebeck[/MENTION], I'm the author of Magisk.

From reports and my personal experience, the root addon does not play well with Magisk's root, however which works perfectly on SuperSU. I'd like to have some input directly from the developer.

From what I've seen, you will first call su once, wait for something, then call su for the second time.

This issue is severe when the device just booted up: the "wait for something" stage will never get a response, and ultimately the app will crash with ANR.

May you disclose what you're actually doing when starting the root explorer?

I've tested tons of other root apps, including my own app (Magisk Manager, which heavily depends on root), none of them have the same issue as your app.

I'm willing to work with you to figure this issue out, thanks for your attention!
[Android Apps and Games] jaybz:
I'm not sure if this has been reported already, but when copying a whole directory, files containing only plain text but do not have a .txt extension gets the .txt extension added when it gets copied to the destination. This is particularly important when copying the TitaniumBackup directory, for example, as each backup includes a .properties file while contains plain text. This file is no longer recognized by TitaniumBackup in the destination due to the additional extension.
[Android Apps and Games] tliebeck:
Thanks for your help/interest, very much appreciated!

If it's the first call that's having trouble, I may have a lead on the problem. The very first command is just "true", to make sure root access is available. Problem is, this test is being triggered too early and is being run from the main UI thread, which is not just bad form, but I believe expressly disallowed by most superuser interfaces to avoid this scenario. This will be corrected in next beta... my apologies for inconveniencing everyone if the problem was truly this dumb. No other root calls appear to have this issue except the very first one.

If this turns out not be the issue... after "true", we have a call to "cat /proc/mounts"

After that the calls are all just to grab directory listings.... these look like this:

/data/user/0/nextapp.fx/app_Exec/busybox ls -dAlnp --color=never --full-time "/data"
/data/user/0/nextapp.fx/app_Exec/busybox readlink -f "/data"
/data/user/0/nextapp.fx/app_Exec/busybox ls -Alnp --color=never --full-time "/data/"

To test the theory that the wrong thread is to blame... try going to the overflow menu on the home screen and selecting "Filesystems" as your first action with the root feature enabled. That will also use root access to do a "cat /proc/mounts", and on the correct thread.

Again thanks for the help and definitely want to get this working properly!
[Android Apps and Games] tliebeck:
Total Commander is immune only because they're not querying the file size as the transfer progresses. I installed Total Commander and wrote a quick-and-dirty app that just gets a directory listing of the SD card to make absolutely sure I can replicate everything without having FX involved. If I use TC to start a copy to the SD card, then switch to the test app to perform the directory listing, Total Commander has its file "truncated" as well.

I've also discovered that the file isn't actually truncated at all though. The copy does actually complete perfectly, the only problem is the file size is reported incorrectly. When querying the file using Android's standard "java.io.File" API, the file size is reset to 0 if the transfer is still ongoing. So until the write is finished, the file size will presented as "the number of bytes written to the file since you last checked". But if you view the file size using "ls -l" in a shell, the size is always reported as 0. If you attempt to grab a stream to the file though, it will return every byte to the correct size (e.g., if you use FX's "Details" section to get calculate checksums, they'll be correct).

Bear in mind that the file size being incorrect is going to in most/many cases be equivalent to having the file truncated, especially for apps that use random file access (like movie players).

Unmounting and remounting the SD card (via Mount/Eject) option on the home screen will reset the file size correctly. It appears the filesystem is remaining intact.
[Android Apps and Games] tliebeck:
Thanks, yes, this needs suppressing. It doesn't know how to parse the "Total:" line at the bottom of the directory. It's harmless, but I too hate logcat spam.
[Android Apps and Games] gazzacbr:
Hi, you are right. Copy from int to ext and file size is wrong and doesn't play. Reboot and all is well!

Also, 'sometimes' I have noticed a problem when connected to a pc where a file size is reported wrong or not found until I restart android, I guess this is related to the bug?

There was something similar a long time back with twrp backup. On reboot, people reported no files found, I had noticed this already and suggested a restart whereby the backup files appeared.
[Android Apps and Games] tliebeck:
PC-Android connectivity by MTP/PTP is it's own horror with it's own set of brokenness. One of the worst designs ever in my opinion, it's just embarrassing.

Android has a media database that's supposed to be kept in sync with the filesystem. There's an Android API that's poorly designed, poorly implemented, missing critical functionality, and poorly documented that apps are supposed to use to keep the media database up to date. The database has triggers in it that will actually delete files from the filesystem if they don't line up with the database (this is the most significant design flaw...the database should be subservient to the filesystem, not the other way around).

So the problem with MTP/PTP stuff is that it relies entirely on this stupid database, ignoring the state of the filesystem entirely. Rebooting can cause the database to sync, fixing issues.

Regarding the FX/Lineage problem...

Bug is now in Lineage JIRA here: https://jira.lineageos.org/browse/BUGBASH-1122

Made them a video:

https://www.youtube.com/watch?v=gu5XF3KnJKk
[Android Apps and Games] GeTex:
So when do we write a fully open source non junk version of android outside of this super broken set of API's? Cause Every week i find another major issue with android which looks to be Google being special.

It's a pipedream but seriously, This is sad. I find it more reliable to use FTP server on my phone and connecting a remote FTP folder on my desktop to the phone easier to work with the files stored on device
[Android Apps and Games] tliebeck:
Wow. Looks another bug/undocumented feature in the "Storage Access Framework". Only happens writing to SD cards. It's changing the file name for me when I ask to create a new file because I spec the media type (correctly) as text/plain. I'm now passing a big fat null as the media type and everything seems to work properly.

This I why I love Google's "documentation". Here's the method I'm calling: https://developer.android.com/refer....net.Uri, java.lang.String, java.lang.String)

No mention of this behavior whatsoever. No idea if passing null as the mimeType is legal or will break in the future (well they didn't mark it [MENTION=923100]Nonnu[/MENTION]ll).

Anyway, huge thanks for reporting this! So far I've only seen it happen for properties files. Will be fixed in next release.
[Android Apps and Games] gazzacbr:
Hi,

"There's an Android API that's poorly designed, poorly implemented, missing critical functionality, and poorly documented that apps are supposed to use to keep the media database up to date"

hmm, but apart from that, its great :D

Thanks for the follow up on this. I know what to look out for now anyway.
[Android Apps and Games] tliebeck:
:D

In better news, may have a workaround. Looks like asking the Storage Access Framework to rename the file, even if I pass it the same name, fixes the size. It still shows up as 0 bytes when I do "ls -l" in a shell, so it may still cause problems, albeit that will be much less of an issue for most apps. Next version will do this automatically when the problem is detected.
[Android Apps and Games] tliebeck:
Anyone using SSH?

Just curious...this was replaced entirely in 6.1 with a new/faster library, haven't had any feedback on it. Hoping that means it's working fine for everyone. Would greatly appreciate any feedback on this, just want to make sure it's not creating problems.
[Android Apps and Games] osm0sis:
Just tested this out on my Magisk test device and Filesystems still works great even when System (Root) would be giving a hang. :good:
[Android Apps and Games] tliebeck:
FX 6.1.0.3 Released (Beta Channel)

Another 6.1 is available, the "fixes and workarounds for dumb mistakes edition".

Workaround for LineageOS bug where writing files to SD card results in file with incorrect size (data is not truncated, size is simply wrong).

Improved method for obtaining write access to SD cards on Android 7+.

Fixed bug in initial root access request (was causing problems with Magisk, likely others).

Workaround for undocumented "feature" in Android Storage Access Framework where text files were renamed.

Fixed copy/paste in same folder (duplicate) option for folders.

Other bugfixes.

Direct Download: http://android.nextapp.com/fx/r6103/FX_r6103.apk

Beta Testing G+ Community: https://plus.google.com/communities/101301040394875566704 (join community, then go to https://play.google.com/apps/testing/nextapp.fx )
[Android Apps and Games] osm0sis:
Confirmed fixes the Magisk issue! :)

Still I think there must be something Magisk could also make a little more robust if SuperSU was somehow able to avoid the hang, but I'm glad it's fixed one way or the other. :good:
[Android Apps and Games] tliebeck:
Trying to get root access on the UI thread was previously an issue with SuperSU, I don't have a clue what changed.

On my Nexus 5 with Lineage 14.1/Magisk 14 it never had an issue.

That is 100% the fault of the app though. It's trying to wait on the UI thread which is automatic ANR.
[Android Apps and Games] mbc07:
Had the opportunity to test it today and... Just like normal file transfers, FX still is unbelievable slow when dealing with a lot of small files. It took nearly 2 minutes just to start the transfer and almost 10 minutes after the copy started to transfer a folder from a remote SSH server to the Internal Storage of my device. The total size of this folder was just 30 MB but it contained 1014 files inside it...
[Android Apps and Games] Oblias:
I had the same exact experience as you. I tried all sorts of file explorers, with the same result. In the end, I just installed Windows 10 Enterprise LTSB, and I can now use my favorite exporer, FX again ! I would rather change versions of Windows than to change versions of file explorer.
[Android Apps and Games] tliebeck:
Thanks for the report!

Working on this, I did find a flaw where FX can wait an extra 10ms per file, which decreased the time of my 2048-file test from 50s to 20s. This is 2048 files in a single directory (not quite sure why this is saving 30s rather than 20s). The files in this test are tiny, 1.4k each.

Regarding the initial wait for size calculation, there are a few options to improve this, but unfortunately none are ideal. I don't know of a means to recursively query using size/item count with SFTP. I can do it via SSH and invoking an "ls -anR" on the directory and processing the result, but not all SFTP access also supports SSH shell access, and I'm not sure if people are going to be okay with an Android app directly invoking shell commands on their computer, even if they're very safe/sane.

I can also just avoid calculating the size, or make it an option. Size calculation isn't critical, but it will ensure the user doesn't start downloading 500GB when they meant to grab 500KB. Another option would be to fire transfer and size calculation at the same time (will be looking into this, again could be an option, would require two connections and could cause other issues, but might be just perfect).

Next release will have improvements here though.
[Android Apps and Games] Japil:
Support for end-users?

Hi Tod. Is there any support for the normal user of this app - apart from filing bug reports as stated in the app's Help Contents?

I like File Explorer (Plus Add-On) but learning to work with it sometimes needs the developer's help. I wrote 2 emails since last year to the address that is provided at Google Play Store. But there was never an answer.

What's your attitude to help-seeking end-users? Sorry for getting at you here in the developer's corner ... but how else?

Regards

Jan
[Android Apps and Games] tliebeck:
Sorry about this, my fault for failing to reply, but that address gets hit pretty hard by marketers and people with email reports like "It's broken", "can't connect", "my wifi doesn't work", or "FX won't root my phone" in the subject line and literally zero additional information, which makes it quite easy to miss legitimate requests.

I personally like communicating best in this thread, what's causing you trouble might be causing other people trouble as well, and can lead to bugs/issues/flaws being corrected.
[Android Apps and Games] deadlast_28:
Windows 10 1709 Regression

Please let me know how I can assist in troubleshooting the new SMB issues introduced after the Windows 10 1709 Upgrade recently.

All was fine when it was Windows 10 1703, but the Windows 10 1709 upgrade has definitely broken SMB access via FX File Explorer.

ES File Explorer is also broken (and only SMBv1, lame), and Solid Explorer is broken as well. (SMBv2/v3 capable).

Cheers and love your App!!
[Android Apps and Games] Japil:
'Open With' Options (URL-files)

Is it possible to tell FX to handle files (share/send to a specific application) in a once predefined way?

This is what happens when clicking on an *.url file:

First pop-up "OPEN WITH": I click on "OPEN AS" (lower right)

The next pop-up follows "OPEN AS": I click on Application in the absence of something more suitable*.

Finally in the last pop-up "OPEN WITH" I can choose an application. Firefox though is not presented, although I have it registered as the standard browser application on my Samsung tablet SM-T800. At least I can choose a helper app ("Toggelis Url Opener") that forwards this file's content to Firefox.

And there is no "Always act this way with URL-Files" as an option. So next time around, I repeat the complete process.

BTW: Solid Explorer can do this ...

Cheers

Jan

*This is not a text file nor a video etc., but still it's a file and not an application - so this is not logical: "open AS application". Rather: "open WITH application" would be logical. The user has to learn this by trial and error instead of understanding unmistakably in the first place.
[Android Apps and Games] thedicemaster:
"open as" is correct wording, since that screen is for opening a file of 1 type as if it's a different file type.

and .url files are actually shortcut files which are only really supported by Windows and Mac.

since Android's shortcuts aren't actual files, browsers on Android don't actually register themselves for opening shortcut files.

and the reason you have to dig so deep is because the .url file handler you use didn't register itself for .url files, so FX doesn't know to use it.

if the app actually registered itself properly(instead of saying "I only open plain text files") FX would open it right away without you having to select an app.
[Android Apps and Games] tliebeck:
FX 6.1.0.4 Released (Beta Channel)

And yet another 6.1 is available. This is pretty much ready to go to production (I hope), want to get this out ASAP due to change #1, greatly appreciate you all trying to break it!

Workaround for bug in Microsoft Windows 10 "Fall Creators Update" SMB2 implementation. This does appear to be Microsoft not obeying Microsoft's spec.

Improved transfer performance for large numbers of (small) files.

Natural sort order for filenames. e.g. "File100" comes after "File99".

More descriptive SMB error messages.

Improved "New File" dialog selection handling.

Bugfixes, bugfixes, and bugfixes.

Direct Download: http://android.nextapp.com/fx/r6104/FX_r6104.apk

Beta Testing G+ Community: https://plus.google.com/communities/101301040394875566704 (join community, then go to https://play.google.com/apps/testing/nextapp.fx )
[Android Apps and Games] nickpapagiorgio:
I can confirm it works again. Thank you.
[Android Apps and Games] tliebeck:
FX 6.1.0.5 Released (Beta Channel)

This release contains only the most trivial, verifiably non-breaking bugfixes. Intent is to begin staged production rollout shortly. Huge thanks again to all here for helping get this release to where it is!

Direct Download: http://android.nextapp.com/fx/r6105/FX_r6105.apk

Beta Testing G+ Community: https://plus.google.com/communities/101301040394875566704 (join community, then go to https://play.google.com/apps/testing/nextapp.fx )
[Android Apps and Games] tliebeck:
FX 6.1.0.6 Released (Beta Channel)

One more minor tweak. Apologies for the double release. I just saw that I'd missed an activity-not-found error because apparently some Android 7 devices don't support a particular Android 7 API...and this issue would've caused users those users to be unable to get SD card write access.

Direct Download: http://android.nextapp.com/fx/r6106/FX_r6106.apk

Beta Testing G+ Community: https://plus.google.com/communities/101301040394875566704 (join community, then go to https://play.google.com/apps/testing/nextapp.fx )
[Android Apps and Games] Oblias:
No apologies needed, in fact, I think it's brilliant of you to be on top of things this way. Excellent work!! Thanks very much for a top-notch file explorer. As I wrote before, I'd rather change my version of Windows rather than change my Android file explorer, namely FX!!
[Android Apps and Games] tliebeck:
Has anyone ever seen a crash when changing the sort order to "by type"? I'm trying to hunt down a crash bug logged on Google Play, it's rare, but it should be never. Have written test code to list every directory and sort by type, both in user storage and in root, and run on everything I can get my hands on, and it never fails. Would love to see a directory listing for a place where it breaks.
[Android Apps and Games] Marko Indaco:
Hallo, I'm trying right now the latest release - build 6.1.0.6 (r6106) - and it's works fine on my devices. I also try to switch from/to different dislpaying settings, all OK (my spec's on signature).

And thank you for the best File Explorer :) :good:
[Android Apps and Games] Oblias:
Never once here, and I use that feature many times a week in my download folder.
[Android Apps and Games] kallardo:
Can I backup / restore user apps (multi select) with root this application?
[Android Apps and Games] ayamgoreng:
anyone know how to disable auto adding .txt for text files ?

for example if I move test.sub it will test.sub.txt
[Android Apps and Games] paul c:
Nope, I've tried sorting by type on a few big directories including root ones, and it sorts quickly and without issues on my S7 Edge with Nougat :good:
[Android Apps and Games] tliebeck:
Update to 6.1. This is a bug (or possibly an "undocumented feature") in Android's "Storage Access Framework". 6.1 works around it.