ts-binds: Binding Algorithm
ts-binds have 2 modes of operation, one that is default, and another is legacy. You can change between the algorithm, or fall back to your device default.
Doing this will affect how your Android mounts the internal and external storage! Forcing the default algorithm on a legacy internal storage emulation require proper ROM and kernel support.
Although you have the option to change the underlying algorithm that Android use to virtualise the storages, there are no guarantee that the algorithm may work on your device if you are switching to an algorithm other than ts-binds detected during installation.
If changing doesn't work, you can run this in the terminal to get back to the originally detected mode for your device:
tsbinds mode device
Default algorithm (SDCardFS)
Since version 1.1, ts-binds now supports mounting two different folders if the device is using SDCardFS. For posterity of the announcement post, you can have a look here . For more technical information on how to do bind mounts under SDCardFS, read this blog entry.
The default algorithm utilises a different mountpoints-pair compared to the old FUSE-based method. In addition, it also remount the bind mount so that read write access could be accomplished.
If your device is detected as legacy, but you want to use SDCardFS because the performance that it offers, you can run this in the terminal:
tsbinds mode default
Please make sure your device and kernel supports SDCardFS (Nougat & newer) before forcing this algorithm.
Using a third-party file manager and then moving the files to the same storage gives an error and the file operation fails.
For example, you have binded the "Download" folder from internal storage and external storage. If you move the content of Internal/Download to the root of internal storage, error will occur. So does moving any file from internal to the Internal/Download folder.
Legacy algorithm (FUSE)
Since version 1.0, ts-binds works in the assumption that your device is using FUSE for the internal storage emulation. It even goes further by forcing the use of FUSE and disabling SDCardFS through prop value enforcement. This is because no known method for SDCardFS has been found. This is changed since version 1.1, as FUSE is now an optional method.
This algorithm is the same algorithm that have been shared with Android enthusiasts throughout the years. It can be found in many parts of the internet, especially from posts dated years ago.
If using the default algorithm is displeasing to you in any way, you can force your device to use FUSE-based internal storage emulation. You can run this in the terminal to use the legacy algorithm:
tsbinds mode legacy
Although Android supports FUSE because of the Linux kernel, FUSE-based internal storage emulation is no longer supported on Android Pie. This algorithm is named "legacy" for a reason.