menu TechnoSparks

 ts-binds: Troubleshooting


ts-binds is tested quite rigorously by me. However due to different configurations and usage scenarios, it is possible that an issue might occur while using ts-binds and is out of my expectations

Incompatibility Notice

Make sure you acknowledge the notice in the module's description.

Uninstalling from Recovery

If ts-binds managed to make your device unusable, it is important to remember that you can always uninstall ts-binds while in recovery. This can be done by mounting the Magisk image.

Download "SUmount script" from the thread Odds and Ends by osm0sis and flash it in your recovery.

Afterwards, navigate to /magisk and delete ts-binds' folder. This effectively uninstalls ts-binds.

Alternatively you can create an empty file (by using terminal) "disable" to disable the module on next boot, or "remove" to remove the module on boot.

touch /magisk/ts-binds/disable

If this is new to you, check out Didgeridoohan's Magisk and MagiskHide Installation and Troubleshooting Guide .

I think I lost my files!

The bind operation that ts-binds relies on is perfectly safe and will not cause any damage on its own. The automated part of the module is coded with file-safety in mind, and if you audited the code, you can see how it has no file operations at all.

Unfortunately, not everything will be full of roses. If you have did an operation of moving/copying files from the same binded folders (as mentioned on the main page), you will inevitably lose all of the files from within as they will turn into a 0-byte file.

If that was not the case, then check again if you are properly binding the folders you are intending to. One good thing to always do when you feel like something is wrong - is to try and unbind all the folderpairs and then check again.

Log file

ts-binds generates and writes to a log file located in your internal storage when ts-binds executes on boot. You can locate the file and inspect it to see what is going on. The file name is ts-binds.log

If you wish to log the output from the terminal, you can pipe or redirect the output to a file

# redirecting the output will not show anything on the terminal
tsbinds bind all >> /cache/mylogfile 2>&1

# piping allows you to see the output while also write to a file
tsbinds bind all | tee -a /cache/mylogfile

# NOTE that piping sometimes would cause rather annoying ghost indentation
# only to the standard output (the piped contents are fine in file)
# happens only on Android (Oreo tested so far) and I dont know why

You can alternatively just copy and paste what was written on the terminal. This is all depend on how you get your stuff done with the terminal ๐Ÿ˜Š

 When submitting requested terminal output by the developer, please do not use screenshots! Text files help tremendously with debugging as opposed to text on images.

Can I merge folders instead of mirroring them?

No. โ€œbindingโ€ a folder mirrors the contents, not merge them. Although ts-binds runs on Magisk, it doesnโ€™t necessarily mean it can do what Magisk does.


 Note that I do this project as a hobby and the features provided are free. I hate to say this but given to how hobbyist developers are treated online, I feel compelled to say that, please know support given is completely voluntary. Thanks.

If you acknowledge the short disclaimer above, let us start by going back to square one. Follow the instructions one by one below:

  1. First uninstall the ts-binds module
  2. Delete /data/ts-binds
  3. Rename ts-binds-folderlist.txt in internal storage to something else in order to preserve your current folder pairs
  4. Reboot device
  5. Open terminal. Run su first and then run this by copy and pasting:
    mkdir -p /cache/tsbindsdebug; mount > /cache/tsbindsdebug/ts-mounts-pre; getprop > /cache/tsbindsdebug/ts-props-pre; cp /data/media/0/ts-binds.log /cache/tsbindsdebug/ts-binds-pre.log; cp -rf /data/ts-binds /cache/tsbindsdebug/data-pre
  6. Install the module again, then reboot
  7. Create a test folder test in both root of internal and external storages
  8. Create a single text file in External/test named test.txt and put inside the file with word: test
  9. Edit Internal/ts-binds-folderlist.txt and add this folderpair line:
    folderbind test $sd/test $int/test
  10. Open terminal and run su and then tsbinds reinit. This will bind the folder pair
  11. Still in a terminal, run this:
    mount > /cache/tsbindsdebug/ts-mounts-post; getprop > /cache/tsbindsdebug/ts-props-post; cp /data/media/0/ts-binds.log /cache/tsbindsdebug/ts-binds-post.log; cp -rf /data/ts-binds /cache/tsbindsdebug/data-post
  12. Check if ts-binds work for the folder pair in the Internal/test. If test.txt exists and contain the word "test", this means ts-binds is functioning normally. Please check if your folderlist respects the syntax required by the module.
  13. If not, please zip (compress) the /cache/tsbindsdebug folder and then upload an issue report in either GitHub or XDA thread. You may delete the folder afterwards.
  14. Disable module in the meantime to prevent any errors

Please create an issue on GitHub or report on XDA thread, and give as many information as possible on the matter, both the issue before you did the steps above and after. Information-lacking issues will not be entertained.

GitHub XDA thread