yashsingh1/xdaforums huggingface dataset:
[Magisk] TechnoSparks:
[ Updated the ts-binds-bleeding here ]

(link no difference to the one in announcement post)

Still, I don't know if Android P have changed things although I am fairly certain nothing have changed. Try to check in /data/media/. If directory "obb" exists then you can update to the linked version above.

To bind obb folder, use this folder pair (change based on your need!):

folderbind $sd/Data/Android/obb $obb

If you don't like binding the whole folder, this work too:

folderbind "$sd/Data/Game Files/PUBG" $obb/com.tencent.ig

folderbind "$sd/Data/Game Files/Fortnite" $obb/com.epicgames.fortnite

This has been tested and is working correctly for me. :)

____________________________________

Currently also testing a reverse binding from $int to $sd. Although people will use this module for $sd to $int, reverse support is important for any special cases. Then I will formally promote the bleeding version to stable :angel:
[Magisk] arinpsycho:
I have updated the module in magisk. I tried to use $obb/com.tencent.ig but still the folder is empty. I tested on different folder and the file is there. I'm in Android P but when I check in the diskinfo I'm still in ext4 file type(for system & data). Is there additional I need to do?
[Magisk] zenaufa:
Hi OP,

First of all, thank you for all your hardwork :D really enjoy this module when i'm on Oreo, this is the best magisk module i've installed :D

I have an issue on Android Pie, where the log said that all binding is OK, but when i tried to access the file via file manager or FX File explorer, it said access denied.

Attached is my ts-binds folder list and log.

Thank you :)
[Magisk] TechnoSparks:
The folder is empty? Have you tried to move the files inside the internal obb of com.tencent.ig folder before initiating the module's binding process?

What i mean is, assuming you are using the following folderpair:

folderbind $sd/Data/Android/obb $obb

Before rebooting or running "tsbinds reinit", you will need to move everything inside Internal/Android/obb to External/Data/Android/obb. If you don't do that, you will get empty directory in Internal/Android/obb. This is obviously because of the empty folder in external storage which we are binding from.

____________________________________

Hello and thank you for the compliments. :)

This sounds to me like the SDCardFS issue with the old version 1.0.9. Can you tell me which version are you using, the 1.1-bleeding or the 1.0.9?
[Magisk] arinpsycho:
Hi Op. That's what I'm trying to say. The obb files already in the SD card. When I tried to bind with to the obb internal, it still shows empty but in the SD it's still there.

This is the command

#folderbind pubg "$sd/bind/obb/com.tencent.ig" $obb/com.tencent.ig

So, just to be sure I did correctly, I bind to $int/documents and able to see the file

#folderbind pubg "$sd/bind/obb/com.tencent.ig" $int/Documents/com.tencent.ig

Not really sure what I did wrongly
[Magisk] TechnoSparks:
Hmm :( Set it to the example I have given in the previous post then reinit/reboot.

Afterwards, get me this file: /proc/mounts . Please also upload ts-binds.log.
[Magisk] arinpsycho:
Ok I play around the whole day and finally I managed to bind with this

folderbind pubg "$sd/bind/obb/com.tencent.ig" $int/Android/obb/com.tencent.ig

Really weird bcoz I did the same config before but doesn't work. However the $obb doesn't work. Tried to re-download twice the module still can't make it work. I'll monitor for a few days to see it really works or not. Thanks Op!
[Magisk] VR25:
Hey, [MENTION=5765352]TechnoSparks[/MENTION]!

It seems we've been dealings with two distinct SDcardFS behaviors.

1) Newer (mature) versions have these mount points:

/mnt/runtime/default/emulated/0

/mnt/runtime/read/emulated/0

/mnt/runtime/write/emulated/0

Possibly /storage/emulated/0 as well...

2) From the list above, legacy versions only use /mnt/runtime/default/emulated/0

Remounting read and write runtimes with gid 9997 and mask 6 doesn't work because these are not mount points in the first place (even after bind-mounting folders within the default runtime).

I set fbind to automatically re-enable FUSE if it finds this issue.

Unfortunately, I'm on the second group and can't test the first myself. I'm pretty much working blindly on 1) at this point.

Upgrading to Oreo/Pie didn't improve SDcardFS. Reverted to LOS 14.1 (harpia) for the time being.

Until my Moto Z Play comes out of the repair shop, I can't work with SDcardFS first-hand.

I would like to work with you on this. That includes interacting with ts-binds users here. What do you say?
[Magisk] TechnoSparks:
Oh hello!

I see. By (2) you meant SDCardFS on Nougat I presume? I will certainly check out that soon. My original test device running LOS 14.1 is far away from me at the moment, but my mid-semester break is approaching this weekend which will grant me access to the old device. So I will certainly test my module on it like I have always been doing previously. I will mention you with any progress made. Until the holidays, we both pretty much not have anything to do.

I will also force enable FUSE if the device detected is Android verion <8 to prevent any problems.

As for interacting with users in this thread, sure! But be noted that this thread is so slow. :p It took a lot of days waiting for the sdcardfs version to be tested. Right when I think the version is good enough for stable promotion then another post came up basically deferring the bleeding version. Dang, SDCardFS sure is making things quite hard. So yes, my say is that I am open for any discussions about this issue.

Also may I know if the error for LOS 14.1 have something along the lines of "Invalid argument"? Like this one:

mount: mounting /mnt/media_rw/26A2-1B04 on /mnt/runtime/read/emulated/0/WhatsApp failed: Invalid argument

And this, what do you mean by "didn't improve"?

____________________________________

Okay glad it worked out for you but it would be appreciated if you could give me your current props configuration. What happened to you is something really fishy.

To get props and other required files, run this in a terminal emulator after running "su":

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

Then package the files into a zip, and upload it here. Your help would be greatly appreciated.

https://www.technosparks.net/pages/product-documentation/ts-binds?q=troubleshoot#support
[Magisk] arinpsycho:
Here it is.

Note: I'm using redmi note 4 snapdragon model and uses android P custom rom(Havoc 2.0)
[Magisk] VR25:
Same for fbind...

It seems not many candidates are available to test bleeding edge or beta builds at the moment. :p

Pretty much, yes...

The issue is, we can't remount what's not a mount point. More specifically, the error is, not in /proc/mounts.

I meant for my device (moto G4 Play, harpia), the SDcardFS situation/version is the same from Nougat to Pie.

I found a custom LOS 15.1 kernel with updated SDcardFS, though (but didn't try it yet).

Since we can't depend solely on Nougat to determine whether SDcardFS is mature, I use the following method to properly go around that and enable FUSE when SDcardFS doesn't satisfy basic bind-mounting requirements...

mount -o bind "$1" "$2"
if ! is_mounted /mnt/runtime/read/emulated/0/"${2##*/}"; then
# SDcardFS is immature; switch to legacy mode (FUSE) and reboot
cp -f $modPath/system.prop.FUSE $modPath/system.prop
am start -a android.intent.action.REBOOT || reboot

So basically, I check whether /mnt/runtime/read/emulated/0/FOLDER is a mount point (as it's expected to be). If it isn't, then I enable FUSE and reboot the phone afterwards, so that users don't have to manually do that.

Now, my installer has the following...

# use SDcardFS (Oreo+) or FUSE (Nougat-)
[ $API -lt 26 ] && cp -f $MODPATH/system.prop.FUSE ./common/system.prop \
|| cp $MODPATH/system.prop.SDcardFS ./common/system.prop
[Magisk] zenaufa:
Sorry for the late reply,

i think the problem is coming from ext sdcard permission, i tried to flashed this module (https://xdaforums.com/apps/magisk/module-exsdcard-write-access-enabler-t3670428/) and after that everything is working perfectly on my pie :D

Pardon for the false alarm :')
[Magisk] TechnoSparks:
Okay, I just found out that the SDCardFS implementation is kernel based thanks to you and a kernel repo online. This is a huge face palm for myself, because I thought it is a ROM-implementation (you know, like FUSE and other VFSs). Now I understand why it didnt work for you even if you upgrade to the latest versions. Im afraid that this may also mean supporting older devices may be a hit and miss because of kernel.

If you do tried that kernel, please notify me with the outcome.

Uh oh! Thank you for the script especially the reboot intent. That is certainly new and will be useful for me! :D

In the meantime, may I know what attempts/tests have you tried with your Harpia in regards to this issue? I have an idea at the moment, but I need to know first if you have tried it already. It would be also neat to have your fresh /proc/mounts when fbind is disabled/dormant (no bind mounts set).
[Magisk] TechnoSparks:
Added to my things-to-check list because the linked module is affecting something out of my expectation. Still, I would be really happy to know if you are using the bleeding version or the stable from Magisk Manager. We have an issue here specifically with SDCardFS, which me and VR25 is trying to solve. Any information will be helpful.

It would also be extra helpful if you could disable ts-binds and the ExSDCard Write Access Enabler, reboot and run this in terminal. Like before, run "su" first:

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

EDIT: AHA! Found out that the module disables SDCardFS here https://github.com/Magisk-Modules-Repo/ExSDCard/blob/master/common/post-fs-data.sh

You might be affected with what VR25, developer of fbind reported above. It would be really helpful if you could cooperate :)
[Magisk] VR25:
I tried it. Unfortunately, nothing changed in regards to our issue with SDcardFS. :rolleyes:

Team work! :D

Well, I've tried remounting all mount points in /mnt/runtime/ and /storage/emulated/ to no avail, unfortunately. SELinux mode was set to permissive beforehand. Group IDs and masks don't change. If these did, it would be a breakthrough.

There are a couple of things to note, though

1) Bind-mounts actually work. I can see these in /proc/mounts. However, SDcardFS won't populate these mounts to the read and write runtimes, nor ...emulated/0.

2) Using the raw paths (as you like to call these :p), /mnt/media_rw/$sdName and /data/media/0 turns bound folders into files. BUT, Root Explorer actually sees the folders and respective contents! So, that's the permissions ghost again.

NOW, what I didn't try yet...

Using...

alias mount="/sbin/su -Mc mount -o rw,gid=9997,noatime" # enforces the global mount namespace and other options

The stable fbind (which still uses FUSE) relies on that alias.

The interesting thing to note here, though, is that since apparently we're not allowed to remount the runtimes with different gids/masks, we should try bind-mounting folders under gid=9997 OR (more advanced), unmount all runtimes and mount these backup under 9997 gid.
[Magisk] TechnoSparks:
VR25, I have peeked into your proc mounts and I can see that there is read & write runtime. I think I may have misunderstood things here.

In the previous post, you mentioned that the immature SDCardFS only uses /mnt/runtime/default. What I could understand from this is: the read and write is not a mountpoint in this immature SDCardFS environment. Am I correct? Or if I am wrong please clarify..

Hmm this is so unfortunate indeed.

:highfive:

1) This looks like can be remedied (hopefully). If I understand correctly, your situation seemed to point out that SDCardFS/kernel/Android do not automatically bind (populate) the respective paths for the read & write runtime. If this is the case, I suggest for you to try to also mount bind the other runtimes. Example:

mount -o bind /mnt/runtime/default/sdsd-sdsd/test /mnt/runtime/default/emulated/0/test # initial

mount -o bind /mnt/runtime/read/sdsd-sdsd/test /mnt/runtime/read/emulated/0/test # read

mount -o bind /mnt/runtime/write/sdsd-sdsd/test /mnt/runtime/write/emulated/0/test # write

mount -o bind /mnt/media_rw/sdsd-sdsd/test /data/media/0/test # raw

You might be wondering why I left the /storage path. Well, because I guess at the moment it is irrelevant... During my test of EncFS, I found out to make FUSE play nice with SDCardFS like they aren't arch enemies, I need to mount an encrypted folder to the runtime paths and also the raw path. Hopefully this would bring us to somewhere

If the above do not work, let us throw in one more bind mount and see if it would change anything:

mount -o bind /storage/sdsd-sdsd/test /storage/emulated/0/test

2) Called them "raw" because I have no idea what to refer them as. :D That is the only word that came up to mind when I was furiously trying to relevantly name them. What you have found here is reason why the old way of mounting doesn't work. The kernel knows that the paths are binded, but at the ROM-level don't as the result of it relying on the SDCardFS VFS. The outcome of this is that the paths become files.

Maybe you could try as such. Doesn't hurt to try, although I think it may not work given by your previous statement about remounting the bind mount won't work. Of course, I can be very wrong here.

Why I am not confident myself is because when I "found" how to bind mount with SDCardFS, I actually tried binding that way, albeit I added "bind" in the list of options, i.e. "mount -o bind,rw,gid=9997,mask=6". Unfortunately the options got ignored altogether and the resulting bind mount still derived options from the source path (SD card). Hence why the remount is inevitable in my blog post and my script.

That is an area that I am quite afraid to cross. Last time I unmounted the runtime path, my Android froze :C
[Magisk] VR25:
I meant...

/mnt/runtime/default/emulated/0

/mnt/runtime/read/emulated/0

and

/mnt/runtime/write/emulated/0

Definitely worth trying! :D

I was going to include -o bind later on. As per what you stated, though, eventually this wouldn't work anyway. So, fair enough...

Yeah, that's forbidden territory. But I'll see if there's a way to go about it without causing issues. The ultimate goal of this is replacing VFSs with bind-mounts.
[Magisk] zenaufa:
Pardon for the late reply, i'm currently using ts-binds 1.1 bleeding.

After i disabled the ts-binds and extSDcard enable, and i tried to run the command on terminal, it said "Can't create /cache/tsbindsdebug/ts-mounts-pre : No such file or directory" "Can't create /cache/tsbindsdebug/ts-props-pre : No such file or directory" "Can't create /cache/tsbindsdebug/ts-binds-pre : No such file or directory" :(
[Magisk] TechnoSparks:
If those didn't work, still in the same setup (binded the previous test mountpoints except /storage/emulated/0/test):

umount /storage/emulated/0/test # just to make sure

# then

mount -o bind /mnt/media_rw/sdsd-sdsd/test /storage/emulated/0/test

Having the -o bind or not is no different for Busybox's mount. Busybox automatically "bind" if the first argument is not a block file/device. So what you did as of far is correct! :D

Vold oversees these things, and I blame vold for the freeze. About replacing the VFSs, AFAIK you already did this successfully with FUSE, correct?
[Magisk] TechnoSparks:
Very sorry for my mistake. My post actually had a script to create the folder in /cache, along with other things. But then I removed it because later I found out that the other module you were using disable sdcardfs.

You can create the folder in cache then it would work. Here are the updated commands:

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
[Magisk] zenaufa:
Hi, the commands were successful and there's no error. but when i check ts-binds log and /tsbindsdebug/ts-binds-pre.log i've found that the file are empty ._.
[Magisk] TechnoSparks:
How about the other files? For now I think the log file is not needed :)
[Magisk] zenaufa:
Roger, attached on this post :)
[Magisk] VR25:
[MENTION=4074798]zenaufa[/MENTION], since you were using that module which enables FUSE, simply disabling/uninstalling won't re-enable SDcardFS. You have to remove the following files in /data/property/ and reboot:

persist_esdfs_sdcard

persist.fuse_sdcard

persist.sys.sdcardfs

[MENTION=5765352]TechnoSparks[/MENTION], bind-mounting folders under the 3 runtimes in /mnt/runtime/ works, but I get read-only access to the folders and respective files.

The procedure is as follows:

d=/mnt/runtime/default
alias mount="/sbin/su -Mc mount -o rw,gid=9997"
mount -o bind $d/$sdName/FOLDER $d/emulated/0/FOLDER
mount -o bind ${d/%default/read}/$sdName/FOLDER ${d/%default/read}/emulated/0/FOLDER
mount -o bind ${d/%default/write}/$sdName/FOLDER ${d/%default/write}/emulated/0/FOLDER

This successfully populates under /storage/. As a regular user, I only have read access to the folders and files. As super user, I have full access.

Notes:

- Group IDs didn't change to 9997.

- I don't try bind-mounting the read and write paths with mask=6.

We're getting somewhere! :D
[Magisk] zenaufa:
Hi, i've checked with root explorer and in /data/property there's only persistent_properties file ._.
[Magisk] TechnoSparks:
I don't think he needs to do that, because his mounts that he uploaded said sdcardfs is being used.

Awesome. We really are getting somewhere. If the GID is really not 9997 in /proc/mounts, then this really indeed a weird phenomenon. Based on my attempts on matured sdcardfs implementation, anything not with GID 9997 makes the paths not readable. Your case is readable but not writable, which is really weird.

Anyway, the mask looks like the big boss here.

I highly suggest remounting the bind mounts with GID 9997 and mask 6!

Sorry for the late replies.
[Magisk] zenaufa:
Hi,

it seems that there's an error on ts-binds, my folderbind is suddenly not working after i'm rebooting. and i didn't do any change on the rom and magisk module :confused:

Can you please check it out? attached is my ts-binds log and folderlist :)

thank you :o
[Magisk] the gladiator:
I'm facing a problem trying to use the module:

I created a folder in the sd card (testsource)

I created a folder in the internal memory (testbind)

I added in the file ts-bind-folderlist.txt the line folderbind test $sd/testsource $int/testbind

I restarted the device

The folder in the internal memory disappeared but there is a file with same name with zero length in the root of the internal memory (where the file ts-bind-folderlist.txt is).

The log file says:

Copied user list to internal storage

Difference found between cached and original user list

Updated cached list

sdcard CA92-1107 mounted

Binding all entries

Bind successful: test

All entries were processed

Script execution completed

The full log (with the timing) is attached. I have a Huawei with EMUI v5 and android ver. 7.

Am I doing something wrong ? Any suggestion to solve my issue ?
[Magisk] HorrorLemons:
Hello. Please forgive my silly question. I would like to use this, and I think I know what this is for and how it works, but before I actually dive in could I clarify...

1. For apps that allow me to designate the folder to save media, e.g. Chrome, does it mean I just set the location to my sd card folder I want and that's it? Or do I not need to change anything in Chrome?

2. For apps that don't allow me to specify the sdcard folder, e.g. Whatsapp, I think the initial step before binding the folders would be to copy the Whatsapp folder to my sdcard then linking it... right? What happens from then on? Wouldn't Whatsapp continue to save future media to my internal storage? Do I have to periodically unlink and move from internal to external?

Please forgive if the questions come off really stupid. Thank you very much in advance!
[Magisk] the gladiator:
Waiting for TechnoSparks help I'll try to answer to your points:

1. in my view if the apps already allow you to save media on the SD card is pointless to use ts-bind: just use the functionality in the app (e.g. Chrome) to address the folder you like in the in the SD card

2. correct. I believe (well, I'm sure) you have to: a) copy the folders from the internal memory to the sd card b) delete the files inside the folders in the internal memory (you free-up memory) leaving only the folders structure c) link the WhatsApp folders (only the Media folder). From this moment only the folders in the sd card will be populated and no, Whatsapp will think to save images and media on the internal memory, actually everything will be saved on the linked folders on the sd card. Lastly: no, you don't have to do anything, just forget ts-bind
[Magisk] the gladiator:
I installed ver 1.1 following the info on page 10 (I suggest to move everything in the OP) and now the behavior is totally different. Looking at the log it seems to me that installation gives problems. I attach the log
[Magisk] TechnoSparks:
Unfortunately I have to postpone the new release because of a problem in regards to my course project. Expect the update at a later time, maybe in 24 hours.

Apologies.
[Magisk] VR25:
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:
[Xiaomi Redmi Note 4 Questions & Answers] ashkan-khatar:
Hi,

Can someone please share a data-less TB of their Notes app from MIUI 8? I'd be more than grateful.
[HTC 10 Questions & Answers] JgCurry:
Who can help me? http://cloud.tapatalk.com/s/59544171a2908/BetterBatteryStats-2017-06-29_014004267.txt

Gesendet von meinem HTC 10 mit Tapatalk
[HTC 10 Questions & Answers] fossils-n-dents:
The proper Better Battery Stats log must be at least 6 hours long in order for the majority of processes (And possible battery hogs) to reveal themselves. Do not touch the phone during this period. (Very important!)

Secondly, go here...

https://xdaforums.com/htc-10/how-to/guide-how-resolved-battery-drain-htc-10-t3619461

Follow the instructions. Do the proper BBS idle run afterward.

PM me, or meet back here.
[HTC 10 Questions & Answers] Cozmos23:
Yea your guide is awesome but it doesn't help with the android os battery drain.

Look at the stats.txt he posted.

He has around 1mio kernel wakelocks in under 3h lol

This problem happened to me too out of nowhere.

I found out:

- most kernel wakelocks are going crazy 5000-10000 wakelocks per minute

- happens only when screen is off

-the fastcharge message doesn't appear anymore while the charging is still fast

-ruu ing or wiping doesn't help

-unlock bootloader setting in developer settings is greyed out
[HTC 10 Questions & Answers] fossils-n-dents:
If you are using Better Battery Stats (Available on XDA & Playstore), go here...

.https://xdaforums.com/showthread.php?t=1179809

Then do this...

https://xdaforums.com/sho...809&p=72467976

Then submit your idle log for analysis, this may get to the root of your problem.

Any problems/ questions, let me know.
[HTC 10 Questions & Answers] Cozmos23:
Did already a dump but without watchdog, shows basically the same as the guy posted above. Another one is running right now, will post it today in the evening after work.

After ruuing again the quickcharge message appears again.

Maybe its a hardware fault but why is everything working fine except the missing deep sleep?

Checked sensors, storage cpu ram graphics card. No freezes or errors.