[Module] ts-binds (Abandoned)

Search This thread

the gladiator

Senior Member
Dec 16, 2010
292
34
Given the fact that more and more users claim the lack of the main folder (/data/ts-bind) I strongly suspect that there is something to be fixed in the app itself. Don't get me wrong: support from everybody is more than welcome, first of all wstephen's support, very active and valid in this thread.

My proposal/wish/suggestion would be: why TechnoSparks and VR25 (hoping he can read me), the author of fbind, the similar app, don't share efforts and knowledge coming out with a solid and definitive app as a solution?
 

wstephen

Senior Member
Jul 13, 2009
105
29
Hong Kong
no, in modules I have only ExSDCard Access Enabler

Now, try uninstalling the module, reboot to system. Reboot to Recovery and do a TWRP backup in case of anything would go wrong.

Then, re-install v1.1 again, to see if the re-installation can create "/data/ts-binds" with those runtime files.

---------- Post added at 23:50 ---------- Previous post was at 23:48 ----------

Given the fact that more and more users claim the lack of the main folder (/data/ts-bind) I strongly suspect that there is something to be fixed in the app itself. Don't get me wrong: support from everybody is more than welcome, first of all wstephen's support, very active and valid in this thread.

My proposal/wish/suggestion would be: why TechnoSparks and VR25 (hoping he can read me), the author of fbind, the similar app, don't share efforts and knowledge coming out with a solid and definitive app as a solution?

I absolutely agree! Thanks.
 

wstephen

Senior Member
Jul 13, 2009
105
29
Hong Kong
uninstalled exsdcard access enabler then reinstalled ts-binds but still no /data/ts-bind folder

No, no, only uninstall ts-binds, you need exsdcard access enabler if you don't have "/mnt/media_rw" in your directory.

Now, it is very clear that v1.1 has a problem with your device and/or rom. I would advise you not to install any earlier version of it, because that might cause more complications. We'll just leave it for @TechnoSparks's return.

If you badly in need of folderbinding, I suggest you try Apps2SD which is currently deployed in my other devices running Oreo and Magisk 18.
 
Last edited:

TechnoSparks

Senior Member
Mar 9, 2014
1,434
820
24
Selangor
www.technosparks.net
Oh no! I didn't notice that there is a discussion in the thread! I didn't receive email from XDA for weeks and I find this slightly infuriating. Sorry on my behalf.

First and foremost, I would like to wish everyone a very happy new year. May 2019 provide us exciting opportunities ahead!

Okay, now, I would like to address my silence. From my last post, I have been in hot water with my college projects' issues and had to solve them myself, because, well do you know how it feels to be someone that knows stuff but your whole classmates don't? That is what I have to face throughout my studies. After the whole projects issues, I need to study for my final examination as it is now indeed my final semester. My finals haven't finished, yet, but I will surely restart development once I break free! :good:

It has also come into my attention that Magisk version 18 has been released. I still don't have issues with this module, but I see a lot of problems reported in this thread. Here is what I have in mind when I start development again: make compatible with Magisk v18, inspect the code (again) and fix a bug on my end (unbind all yields error), release an updated version with hopefully minimal bugs, and request some of the bug reporters to test the new version. Most importantly, a rewrite is needed on how ts-binds read config file. Since the project have attracted big attention (thank you to all of you users), it is important to eliminate an elephant in the room: sourcing the config file can execute unintended arbitrary code (thanks to SebiderSushi reminding me about this on GitHub)

I hope you guys hang on tight. Expect to hear from me again soon. Apologies for the silence, and Thank you for reporting the issues!
 
Last edited:

VR25

Senior Member
Apr 20, 2013
1,965
4,779
github.com
Given the fact that more and more users claim the lack of the main folder (/data/ts-bind) I strongly suspect that there is something to be fixed in the app itself. Don't get me wrong: support from everybody is more than welcome, first of all wstephen's support, very active and valid in this thread.

My proposal/wish/suggestion would be: why TechnoSparks and VR25 (hoping he can read me), the author of fbind, the similar app, don't share efforts and knowledge coming out with a solid and definitive app as a solution?
Thanks for the suggestion (and I just saw your PM).
We don't work together per se and our scripting styles are a bit incompatible. Occasionally we share our findings/codes, though. :)

By the way, @TechnoSparks, some devices lock and reboot after remounting /mnt/runtime/write/.... They work fine without that.
 
Last edited:
  • Like
Reactions: the gladiator

TheMDJ

Member
Sep 22, 2017
18
2
Oh no! I didn't notice that there is a discussion in the thread! I didn't receive email from XDA for weeks and I find this slightly infuriating. Sorry on my behalf.

First and foremost, I would like to wish everyone a very happy new year. May 2019 provide us exciting opportunities ahead!

Okay, now, I would like to address my silence. From my last post, I have been in hot water with my college projects' issues and had to solve them myself, because, well do you know how it feels to be someone that knows stuff but your whole classmates don't? That is what I have to face throughout my studies. After the whole projects issues, I need to study for my final examination as it is now indeed my final semester. My finals haven't finished, yet, but I will surely restart development once I break free! :good:

It has also come into my attention that Magisk version 18 has been released. I still don't have issues with this module, but I see a lot of problems reported in this thread. Here is what I have in mind when I start development again: make compatible with Magisk v18, inspect the code (again) and fix a bug on my end (unbind all yields error), release an updated version with hopefully minimal bugs, and request some of the bug reporters to test the new version. Most importantly, a rewrite is needed on how ts-binds read config file. Since the project have attracted big attention (thank you to all of you users), it is important to eliminate an elephant in the room: sourcing the config file can execute unintended arbitrary code (thanks to SebiderSushi reminding me about this on GitHub)

I hope you guys hang on tight. Expect to hear from me again soon. Apologies for the silence, and Thank you for reporting the issues!
I installed ts-binds but there is no text file in internal storage to add syntax
 

ZzManRoolez

Senior Member
Jul 6, 2007
61
2
Strange Problem

Hi! I'm trying ts-bind for a game, at first run no /data/tsbind folder and no txt created on internal memory, I have created the folder and the file then mounted a game data folder (/data/media/0/Android/data/"gamefolder") on the already created link2sd folder where is mounted ext2 file system (/data/sdext2). Bind seems to work, if I run unbind files on internal SD disappears and if I rebind all files re-appears, but when I run the game and the game downloads something it seems that the files are not saved, the game works but re-downloads the content every time!
 

TechnoSparks

Senior Member
Mar 9, 2014
1,434
820
24
Selangor
www.technosparks.net
Hiatus Announcement

I can't help but feel guilty as days went without me voicing my progress. Today I would like to announce that the project will be on hold for the time being. I had a huge turn of event for my life (towards the better) and I would like to invest my time on that aspect. Additionally, I am employed at a location that is quite far from my home, and the transport time alone have consumed a lot of my "idle" time.

As of far, the progress I have made on the source code is that I have worked on an alternative to the sourcing method hence would be safe from arbitrary code execution. And that would be the only change for the time being. The problem with /data/ts-binds not creating is still haven't looked into. I intend to change to another directory anyway as Magisk v18 has its directory paths changed.

I do not have a specific duration for the development break. But my plans is to resume the development once I am enrolled into Degree of CS.

For the time being, if folder binding is crucial to you like it is to me, your best bet is to use fbind by VR25, or App2SD.

Apologies if this caused inconvenience.

Regards
 
Last edited:
  • Like
Reactions: zenaufa

zenaufa

Senior Member
May 9, 2011
115
41
Jakarta
Hiatus Announcement

I can't help but feel guilty as days went without me voicing my progress. Today I would like to announce that the project will be on hold for the time being. I had a huge turn of event for my life (towards the better) and I would like to invest my time on that aspect. Additionally, I am employed at a location that is quite far from my home, and the transport time alone have consumed a lot of my "idle" time.

As of far, the progress I have made on the source code is that I have worked on an alternative to the sourcing method hence would be safe from arbitrary code execution. And that would be the only change for the time being. The problem with /data/ts-binds not creating is still haven't looked into. I intend to change to another directory anyway as Magisk v18 has its directory paths changed.

I do not have a specific duration for the development break. But my plans is to resume the development once I am enrolled into Degree of CS.

For the time being, if folder binding is crucial to you like it is to me, your best bet is to use fbind by VR25, or App2SD.

Apologies if this caused inconvenience.

Regards

Thank you for all of your work, wish you all the best in your enrolling process :eek:
 
  • Like
Reactions: TechnoSparks

bobbyp1086

Senior Member
Man, I was coming to ask about the non creating folder, but that post summed it up. I could always look at the source code and if I find a fix post it here, if that's OK. I haven't had a chance to use your module but I'm in dire need. My favorite app, Unipad, can see the directory but refuses you load from it and no help from devs yet, I have over 12gb of songs and covers for the app and transferring back and fourth is a hassle.
 

TechnoSparks

Senior Member
Mar 9, 2014
1,434
820
24
Selangor
www.technosparks.net
Man, I was coming to ask about the non creating folder, but that post summed it up. I could always look at the source code and if I find a fix post it here, if that's OK. I haven't had a chance to use your module but I'm in dire need. My favorite app, Unipad, can see the directory but refuses you load from it and no help from devs yet, I have over 12gb of songs and covers for the app and transferring back and fourth is a hassle.

I managed to find flaws in my logic that made the folder not creating. I still do not know if what I find is the exact cause of bug, but it is high on my checklist at the moment. I wish I could say a new version would be released right now, but then no, I haven't tested the changes yet, and I don't think it is suitable for pre-release either.

As of now, you can use the module with no problems, but you will need to manually create the /data/ts-binds folder first, and copy over "fresh-folderlist.txt" file from within the module installation zip. Yes, you can do this before or after installation, should be of no issue. If you did this after installation though, make sure to issue command "tsbinds reinit" in a terminal emulator.

I have to say, if this module doesn't work for your setup even after small attempts to make it work, you shouldn't spend your precious time trying to fix it. Instead, I highly recommend to hop over to VR25's module as it is well supported. :)

I am pleased that you dropped by this thread, by the way. Cheers!
 

Full House

Senior Member
Aug 25, 2018
274
72
Samsung Galaxy S20 FE
Hi for me it does not work I do not see any file tsbinds anywhere ?

And when I open Terminal emulator :

:/ $ su -c tsbinds reinit
Unbinding all entries
/system/xbin/tsbinds[378]: .: /data/ts-binds/cached-folderlist.sh: No such file or directory
/sbin/.core/img/ts-binds/service.sh[10]: can't create /data/ts-binds/ts-binds.log: No such file or directory

Lineage 16 With SM-G901F
Can you help me please thank you...
 
Last edited:

TechnoSparks

Senior Member
Mar 9, 2014
1,434
820
24
Selangor
www.technosparks.net
Hi for me it does not work I do not see any file tsbinds anywhere ?

And when I open Terminal emulator :

:/ $ su -c tsbinds reinit
Unbinding all entries
/system/xbin/tsbinds[378]: .: /data/ts-binds/cached-folderlist.sh: No such file or directory
/sbin/.core/img/ts-binds/service.sh[10]: can't create /data/ts-binds/ts-binds.log: No such file or directory

Lineage 16 With SM-G901F
Can you help me please thank you...

You might want to try and follow my reply here: https://forum.xda-developers.com/showpost.php?p=79046552&postcount=234
 

TechnoSparks

Senior Member
Mar 9, 2014
1,434
820
24
Selangor
www.technosparks.net
It was fun while it lasted

Greetings everyone who still keeps an eye on this module. When I announce the development pause, it has never come to me that I would ever drop this module. However, in the span of weeks since the announcement, I have faced greater challenge in using Magisk on my device (Nokia 6). The experience is very bad for me and I had enough in the end. Thus I decided to get a new device instead. My new device do not have an SD Card slot. It is a feature I wanted, but I had to take compromise because other device options do not fit my important set of prerequisites.

Since this device do not have an SD Card, ts-binds is useless on it. And as I did maintain ts-binds because I myself used it, now there is actually no point in developing it when I myself stopped using it.

What used to be my own automated solution using init.d, it has now turned into a Magisk module with considerable attention. I am more than happy that although it does not reach the popularity like other modules do, this module did help people who wishes to bind folders.

I have made a promise to fix the bug involving the data folder. I will still deliver on that. Once the final version is released though, consider the project EOL. It may be reinstated in the future if I upgrade to a device with an SD card slot, but that might be long (i use my devices an average of 3 years). The final version may be usable for the foreseeable future, but again new Magisk template requirements or any changes to how storages are mounted on Android might ultimately kill this module.

As an alternative, I highly recommend using VR25's fbind module. It is very advanced and well tested, in addition to more popular than mine. My module is simple and do not handle certain quirks involving a few set of ROMs. Thankfully fbind does. VR25 is also a good developer, judging by his catalogue of interesting Magisk modules.

Thank you for using ts-binds. Have a nice day!
 
Last edited:

Full House

Senior Member
Aug 25, 2018
274
72
Samsung Galaxy S20 FE

TechnoSparks

Senior Member
Mar 9, 2014
1,434
820
24
Selangor
www.technosparks.net
Thank you for responding but I tried to do what you say it's too complicated this module before I used a module xposed (obb on sd) you just had to move the data on sd card ext ...I'm not comfortable with Terminal emulator there is not such a simple module on magisk?
Well, the world of Magisk modules depend quite much on the terminal (shell) and a slightly advanced knowledge of Linux environment. That is just what it is.

You can wait for a patched version of ts-binds, which again i can't give ETA on and it's not even close. My workplace has a project that I lead, and of course I have to prioritise that one first.

Or you can try fbind Magisk module first.
 
Last edited:
  • Like
Reactions: Full House

Full House

Senior Member
Aug 25, 2018
274
72
Samsung Galaxy S20 FE
Well, the world of Magisk modules depend quite much on the terminal (shell) and a slightly advanced knowledge of Linux environment. That is just what it is.

You can wait for a patched version of ts-binds, which again i can't give ETA on and it's not even close. My workplace has a project that I lead, and of course I have to prioritise that one first.

Or you can try fbind Magisk module first.
ok thank you for taking the time to answer, I Tried to follow the instructions with fbind too but without success, I would like a module as simple as obb on sd but in magisk.

I do not understand what I'm doing wrong I create the folder ts-binds But it does not work :(
 

Top Liked Posts

  • There are no posts matching your filters.
  • 16
    ts-binds
    ts-binds basically make use of “bind” parameter of the “mount” available in your Android environment

    Development Abandoned!
    This project has been abandoned. This is because I personally do not require ts-binds anymore. Refer announcement post here: https://forum.xda-developers.com/showpost.php?p=79150883&postcount=237

    What does it do
    Essentially, this "binding" method is widely used to save space on internal storage!

    Derived from a very long-living trick for users who are struggling with the internal storage space available on their phones, while at the same time has the benefit of inserting an SD card, ts-binds will make use of already available functions on your device, to mirror a path to another path, effectively making both paths indistinguishable.

    For example, if you mirror the `Download` folder on Internal with the `Stuff from Internet` folder on your SD Card, the same list of cat pictures will be shown on both directories when navigated via a file manager, and any changes will take effect on both paths but only the folder in the external path is physically modified.

    This saves space because the files physically reside on the external storage instead of internal storage.

    Further read
    To maintain a similar "Description" of the module, I had to trim down the OP of the thread. There are a total of 3 places where I host the module's description :eek: To read documentation, please go to my website :)

    Alternative modules with the same purpose

    Links
    5
    @benlm72 @wstephen @duromx @zenaufa

    Hello everyone, and thank you for reporting on the issues!

    This is overwhelming, because the module actually worked for me, except for one minor bug where `tsbinds unbind all` fails. Maybe this is by extreme luck, or another strange scenario of "welp it worked!" on tech things. I dont know how to react to these, unfortunately :eek:

    As of now, I am busy and cannot do extensive troubleshooting and questions of the reports, hence my silence for the past few days. Once I have the time I will certainly post a new post here quoting respective reports. Before i do that though, i will audit my code line-by-line again first. I do not have an exact timespan for this period of "busy-ness"

    If 1.0.9 is the last working version for you (and you are not on Pie), I recommend using it for the time being.

    Thank you again and have a great day.
    3
    v1.1 Released

    Updgrade Notice

    Please delete `/data/ts-binds` before updating.

    Regressions

    - Magisk version <17 is no longer supported due to template change

    Additions

    - New binding algorithm to support sdcardfs!
    --- SDCardFS seems to rely on `/mnt/runtime` mountpoints. The key is to set the bind paths from there, but the binded mount needs to be remounted with proper `gid=9997` and `mask=6`, thus making legacy `/storage/emulated/0` play nice with the permission of the binded folder
    --- It is assumed that as of Oreo, SDCardFS implementation is already mature. Hopefully this algorithm persists for long!
    --- Binding algorithm will also mount other runtimes if Android do not do it automatically
    - New `$obb` variable to ease things in folderlist
    --- OBB binding is dealt with the new algorithm
    - Detection algorithm if legacy mode (for FUSE) should be applied on your device
    --- Behaviour can be altered by using the new `mode` parameter for tsbinds. Run `tsbinds help` in terminal for more info
    - ts-binds is now licensed with ... Unlicensed! Read LICENSE file for info

    Modifications

    - Update minmagisk to version 17.0
    - Rename `disable.txt` to `disable`
    - No longer output to log file if ts-binds invoked from terminal. Parent process needs to manually pipe to a file
    --- `service.sh` output is redirected to the original log file
    --- This means that the log only represent the automated process of bind mounting when the system boots.
    - `service.sh` will finish if SD Card not found in 60 seconds.
    --- Previously the script will infinitely loop
    - Code refactor

    1. Of course, can be updated via Magisk
    2. GitHub Changelog
    3. XTRA verbose changes

    ____________________________________

    @the gladiator @zenaufa This is the intended release to check if your problem may be solved. Hopefully both of you could check it out if you are still interested in the module :) Very sorry for the days of delays. I had problems in accessing my workspace.

    ____________________________________

    Don't worry too much about this, man. Take your time and relax. This is not a paying job nor an emergency rescue robot after all. This is a hobby. Treat it as such. I'm sure most people understand that you have a life too. Forget those who don't. :rolleyes:

    Thank you for the motivation. It is just that I made promises to them and I failed to deliver. Sometimes, sh** happened, and that sh** for the past week is I lost access to my workspace (this is the day after the emergency project thingy!). Now I have reinstalled Linux and Windows on my new PC, I have been able to continue development. :fingers-crossed: :D

    ____________________________________

    I agree, don't feel guilty, we have always to thank you !

    Thank you so much! :D
    3
    Breakthrough Announcement

    After 5 hours trying to (pseudo-?)reverse-engineer how the SDCardFS work, I have managed to make `mount --bind` work under SDCardFS! The task was not simple and my Nokia 6 suffered many, many reboots throughout my attempts. I met with frustration near the holy solution, but who knows by doing crap for absolute "meh" suddenly turns out the solution to my final hurdle! Yay!?

    That is not without another 7 hours of fiddling and personal QA tests with `tsbinds` fakebin in order to implement the new algorithm while preserving legacy (FUSE) support!

    So, calling sdcardfs users! Especially Android Pie, I would like to invite for you to test if ts-binds work on your device!

    [ Get ts-binds-bleeding v1.1 ]

    NOTE to existing stable users upgrading to bleeding:
    Please remove the stable version of the module, reboot, then install the bleeding version. This is to make sure ts-binds select the correct algorithm for the binding procedure. Reason: ts-binds pre v1.1 forces FUSE using prop values.

    Changelog:

    Upgrade Notice
    Please delete `/data/ts-binds` before updating.

    Regressions
    - Magisk version <17 is no longer supported due to template change

    Additions
    - New binding algorithm to support sdcardfs!
    - SDCardFS seems to rely on `/mnt/runtime` mountpoints. The key is to set the bind paths from there, but the binded mount needs to be remounted with proper `gid=9997` and `mask=6`, thus making legacy `/storage/emulated/0` play nice with the permission of the binded folder
    - It is assumed that as of Oreo, SDCardFS implementation is already mature. Hopefully this algorithm persists for long!
    - New `$obb` variable to ease things in folderlist
    - OBB binding is dealt with the new algorithm
    - Detection algorithm if legacy mode (for FUSE) should be applied on your device
    - Behaviour can be altered by using the new `mode` parameter for tsbinds. Run `tsbinds help` in terminal for more info
    - ts-binds is now licensed with ... Unlicensed! Read LICENSE file for info

    Modifications
    - Update minmagisk to version 17.0
    - Rename `disable.txt` to `disable`
    - No longer output to log file. Parent process needs to manually pipe to a file
    - `service.sh` calls `tsbinds bind all` piped to the logfile in internal storage
    - This means that the log only represent the automated process of bind mounting when the system boots.
    - `service.sh` will finish if SD Card not found in 60 seconds.
    - Previously the script will infinite loop
    - Code refactor



    __________________

    Thanks a lot @TechnoSparks! I just installed your ts-binds module and it's working great on my LG V30 H932 running stock Oreo rooted with Magisk v17. My motivation for finding a way to mount bind an internal storage folder to an external SD card folder is I started using Google Camera ported from the Pixel phones instead of the stock camera app. The problem is GCam can only save photos to internal storage (because Pixel phones don't have an SD card slot). With your ts-binds module, GCam is now saving photos to the /DCIM/Camera folder on my SD card! I hope it's OK I posted about your Magisk module on the ported GCam thread here:
    https://forum.xda-developers.com/showpost.php?p=77820701&postcount=1563

    Thank you, I am really happy to share your excitement! Certainly it is okay to post about my module anywhere you like :D It may help others too. It is one of my goals to make sure ext sdcard is useful for our device. Adoptable storage seems like a good idea at first, but little did people know once adopted, the storage is only applicable for app data (in /data/data). In other words, the emulated /data/media/0 remains the place you store your files like media. This is counter-intuitive and is quite misleading, since most want to have their media stored on the SD more than apps do.

    Also I am also creating a module that will mount an ext4 sdcard. Such a module would allow you to do many many great things using what Linux has to offer. Such as softlinking/binding app folder like games, automatically rsync app data (insta backup!), without the need of adoptable storage and Android intervention :)
    2
    I'm afraid I'm not that experienced :/ Besides, I'm kinda drowning due to many assignments at university that are due too soon :p However, I'm willing to try any builds you make and report back whenever I find some free time!

    Unfortunately, I only have 1 person that reports ts-binds not working. I managed to find out why, but I don't know if it is a random occurrence or if it really is ts-binds at fault. In essence, the more users with problems, the better I could trace the issue. Since I am kind of in need of the debug files, I think I will create a simple debug script for you (and for the public later). I will mention your username when I have done so.

    Of course, you can always take your time too. I am busy as well as it is a test and quizzes season right now so there is no urgency here :good: