Cifs support in Android 4.3 - Nexus 10 Q&A, Help & Troubleshooting

Hi all,
Have any of you been able to get a Cifs share mounted under android 4.3 on the N10.
I've tried various kernels and managers like Cifs manager but with no joy, they complain of invalid argument.
It seems like there has been success on the N7 according to this thread http://forum.xda-developers.com/showthread.php?t=2107224&page=7 but I can't see anything for the N10.
If it does work for you could you let me know what ROM / Kernel combo you use?

Not only 4.3. I haven't managed to make it work on 4.2.2 either
Sent from my GT-I9505 using Tapatalk 4

http://forum.xda-developers.com/showthread.php?t=2430056

^^^^^^^ What zod said. Working fine for me

I tried several combinations to mount CIFS shares with mountmanager:
Trinity + Carbon Rom, Sentinel, CM10.2 = works without problems
Flaming Monkey + Carbon Rom, Sentinel, CM10.2 = works - but without UTF-8 (for special characters like öäü...)
KTManta + Carbon Rom, Sentinel, CM10.2 = doesnt work.
Any Kernel + Purity Rom, AOKP, PA = doesn't work.

Could someone please confirm if CIFS is finally dead on Android? I haven't seen a single user manage to make it work. I even asked kernel developers to patch their kernel with this only solution provided here and even though they were happy in the beginning they never wanted to talk about it later which makes me think it was a hell or them.
I'd really like to know if I should just uninstall all CIFS related staff and just forget about it.
Edit:
Sorry I think it's wrong threat

andreasy said:
Could someone please confirm if CIFS is finally dead on Android? I haven't seen a single user manage to make it work. I even asked kernel developers to patch their kernel with this only solution provided here and even though they were happy in the beginning they never wanted to talk about it later which makes me think it was a hell or them.
I'd really like to know if I should just uninstall all CIFS related staff and just forget about it.
Edit:
Sorry I think it's wrong threat
Click to expand...
Click to collapse
Google sure seems to be trying really hard to kill CIFS (and any network filesystems for that matter) on Android. As it stands now (in 4.3) there is no possible way to get CIFS working properly on the stock ROMs with a stock kernel. This is because the geniuses at Google removed loadable module support from the stock kernel and because of the way they implemented the multi-user stuff (using filesystem namespaces). The thing that kills me is that there is absolutely no reason for Google to make this so difficult. They could have simply compiled support for network filesystems into the kernel if they wanted to remove modules for "security". It would also be trivial for them to add a mount point which propagates to the user namespaces. They did this crap on purpose. And that is exactly the reason why my next tablet will not be an Android one. You shouldn't have to hack your tablet to get basic functionality that should just work out of the box. I'm done being scroogled.
Anyhow, I did manage to get CIFS working on my Nexus 7 which is running 4.3. See my post here for details. Now, I don't think my kernel will work on your Nexus 10. But, if you flash someone else's custom kernel (or compile your own) for the Nexus 10 which does have CIFS support/modules you should be able to use my update.zip which does not contain the kernel. I don't have a Nexus 10 to test on, so I can't promise anything but I don't see why it wouldn't work.

With new 4.3.1 Rom Versions I have troubles with CIFS Mount.
I can mount my NAS without problems with Terminal command, and I can see all mounted Files and Folders in Terminal.
But any App (like ES Fileexplorer, Solidexplorer, Power-Amp....) can't see any files. The Folder always keeps empty.
I have tried several mount points: /sdcard/cifs, storage/emulated/legacy/cifs, /data/media/cifs. Always the mount is visible in Terminal but not in all apps.
I have tried many mount options like: noperm, rw, file_mode, dir_mod, gid.....

cien12 said:
With new 4.3.1 Rom Versions I have troubles with CIFS Mount.
I can mount my NAS without problems with Terminal command, and I can see all mounted Files and Folders in Terminal.
But any App (like ES Fileexplorer, Solidexplorer, Power-Amp....) can't see any files. The Folder always keeps empty.
I have tried several mount points: /sdcard/cifs, storage/emulated/legacy/cifs, /data/media/cifs. Always the mount is visible in Terminal but not in all apps.
I have tried many mount options like: noperm, rw, file_mode, dir_mod, gid.....
Click to expand...
Click to collapse
Hi there, could you post the command line you use to mount your NAS drive ? I keep getting "Invalid argument", this is what I've tried
Code:
mount -t cifs //192.168.1.3/music /mnt/music

pkfox said:
Hi there, could you post the command line you use to mount your NAS drive ? I keep getting "Invalid argument", this is what I've tried
Code:
mount -t cifs //192.168.1.3/music /mnt/music
Click to expand...
Click to collapse
You have to get su access first with "su"
mount -r -o noperm,rw,file_mode=0777,dir_mode=0777,uid=1000,gid=1000,unc=\\\\192.168.0.10\\music,username=***,password=*** -t cifs none /sdcard/cifs

Thanks that worked, do you know of a way to mount automatically at boot time on Android ? I notice there is no /etc/fstab
Thanks again.

Hi all, if your goal is simply to play music and video from your NAS to your android device, you can use Kodi (xbmc) that can access cifs path directly!

Related

[Q] ext4 and insanitycm009

Hi all
can't post in the dev forum so i'm posting here instead. I have installed insanitycm009 and i love it so far, much faster than the previous insanity rom (none cm one) but i'm having some problems with random reboots.
I believe that it may have something to do with my filesystem as i was previously running ext4 on the last insanity rom. i loaded the ext4 manager app i have and it is unable to help me as i don't have a cf-root kernel installed. i am running glitch kernel v10.
ext4 manager shows my filesystems as follows:
/system = yaffs2
/dbdata = unknown
/data = unknown
/cache = yaffs2
as you can see the os is unable to identify the filesystems so i think this is the cause for the reboots. How can i fix this?
insanity cm is based on cyanogenmod 7
this is a custom built rom from the google sources that has nothing to do with other custom roms that are usually based on Samsung roms.
cm7 and miui and of course insanity cm need another type of kernel that is built to support a rom built in that fashion. the filesystem is also handled differently for example other partions are created and other filesystems used (yaffs for example) that means that probably the ext4 manager can't handle the environment. If you want to check what filesystems and partitions you have open the adb shell and type "mount" the same thing works in terminal emulator (an app from the market)
If there really was a problem with your filesystem that would cause you not to be able to read what it, the phone would probably not even boot.
read the insanity thread to see whether other people have the same problem or even a solution.
EDIT:
I know that's not really helpful, I'm sorry
thanks very much for your response.
I have had a quick look through the thread and have been unable to find anything remotely similar to what i am experiencing. (granted it was a quick look)
Don't suppose you have any thoughts do you as to what might be causing the reboots?
If i can't solve it i might just go back to a stock rom and see if i still get the reboots then.

[Q] How Run Ubuntu On Nexsus S - CM7

I just followed this article to run ubuntu on my nexus s with CM7 running on it.
but each time I typing "bootubuntu"
I got this error:
mount: mounting /dev/loop1 on /data/local/ubuntu failed: Invalid argument
This error should happen when executing this line in bootubuntu:
mount -t ext2 /dev/block/loop1 /data/local/ubuntu
Any ideas ?
Are you sure that the kernel you are using supports the ext2 filesystem and loopback device?
Last lines of "dmesg" command might be helpful (if it exists).
how-to-install-ubuntu-on-your-android
This is the article I followed.
I'm not sure whether CM7 support ext2 and loop device, but I see somewhere people said they run ubuntu on CM7 successfully, that's why I post this thread and hope someone can confirm it and show me the steps.
Or let me know your experience on how to run Ubuntu on nexus s.
I like the busybox way to run ubuntu, means if I run a native ubuntu, I can't use my phone feature anymore.
If you read this: http://androlinux.com/android-ubuntu-development/how-to-install-ubuntu-on-android/
Just a few lines into the text there is this paragraph:
For example, G2 Phone and Nexus One both come with loop device support so there’s no need for us to compile a new kernel for it but for others, you may have to.
Click to expand...
Click to collapse
I don't know whether the cm7 kernel kernel supports loop either, but there are many kernels floating around this forum. Maybe one of them does.
Thanks man.
Finally I figure this out. When I got this phone, the seller had already pre-installed a rooted CM7 and busybox. That may cause the problem.
After I re-install the busybox with the latest version, it works.
So CM7 and Nexus S are good to run Ubuntu.
Thanks for taking your time once again.

Script to mount CIFS and share on boot

I have been trying to get a few winodws shares to auto mount at boot on the Touchpad for my kids. I have tried CIFS Manager, but the mounts are not remounted at boot.
I looked into alternative options and saw the Script Manager option floating around. I figured this could work since I am somewhat handy with code.
So here is what I would like to do. Set a script to run at boot to do the following:
1. Pause for a number of seconds to allow wifi to connect successfully and completely (say 60).
2. Load the CIFS modules (i think this would work):
Code:
insmod /system/lib/modules/cifs.ko
insmod /system/lib/modules/nls_utf8.ko
3. Pause if needed to allow them to load successfully and completely.
4. Mount the shares as needed (prob not correct, but maybe close):
Code:
mount -t cifs -o user="your username",password="your pass" //192.168.10.4/Video /sdcard/Video
5. Exit
I would like to see if I can do this without user intervention and without the user noticing (no tray notification, etc.). If anyone else has any other ideas I am certainly open to them (such as CIFS Manager doing this somehow for me.)
Thanks in advance for any input.
Any additions here would be welcome as well. For instance, being Wifi SSID aware to unmount and remount upon connect would be gravy.
Can the "at" command be used in Android to run something at a future time?
Code:
at now + 15 minutes -f your_script
Mount Manager seems to work. Can also reconnect and disconnect on wifi connection events
HI Mate!
Short Question:
You are mounting CIFS from NAS or else?
Is it working smooth and in an acceptable speed?
Tried many apps and mount managers but network speed is so whorse that even little mp3 files over the network stutter...........
A chead Hawaii Phone or a Galaxy S Plus does the Job like a charm in the same Network. So it must belong to the TP! Maybe the cifs.ko is not working well......
Hoping for a nfs.ko to mount NFS Share but.............
I tried rootzwiki.............IRC.......... dalingrins tweet but it seems that all DEVS are mute...........
Without a good working Network the Touchpad worthless, sorry...........
I abandoned this b/c of wifi flakiness. However I think some of it may be due to Adfree (wierd...). Not sure yet, haven't had enough time to really troubleshoot.

[Q] Empty CIFS-mounted directories

I'm currently running an OMNI build for everest, which is working delightfully well. The only thing I can't seem to achieve is to mount a CIFS directory. Actually, it can be mounted, but its contents are only visible to root.
While doing some research I found this thread. For what the description says, I assume this fix has been applied in CM, since I was able to mount CIFS (outside of /storage) before switching from CM to OMNI.
Would these patches be applicable for OMNI? If so, I would try to ask the everest ROM creator to apply them, or even try myself. But I'm afraid I may be lacking the knowledge to judge whether it'd just be a waste of time.
Thanks in advance for any tips on this matter.
Any update on the topic? I've tried Omni on my Nexus 10 and it runs perfectly well but this is the last thing that stops me from using the ROM. After mounting the data from my CIFS or NFS share the data is only available from the app performing the mount. The patches in the link from the previous post seems to work around this issue, is there any chance it could be applied to OmniROM?
Try to mount your folders manually (or by GScript) with Superusers --mount-master switch to make the mounts available to all processes. Something like this.
The su binary now also has a "--mount-master" option that connects you to a su session in the main mount namespace. Mount commands in this session should affect all processes. This is still a bit experimental, and getting it working requires a reboot after upgrading the binaries from a pre-1.93 version. This feature has been asked for a lot by devs, and it escapes the need to hijack system services to affect system-wide mounts, which is becoming more complicated with every Android release. A new version of StickMount will be released in a few days as well, taking advantage of this feature, and thus avoiding a number of issues some are seeing.
https://plus.google.com/+Chainfire/posts/hLKytCwUm6k
Click to expand...
Click to collapse
Alternatively, there is still the possibility to hijack a system service (like SSH one) to point to a script instead that will bring up your mounts. I'm personally using this so i haven't checked the SU method yet.
Good Luck!
DualJoe said:
Try to mount your folders manually (or by GScript) with Superusers --mount-master switch to make the mounts available to all processes. Something like this.
Alternatively, there is still the possibility to hijack a system service (like SSH one) to point to a script instead that will bring up your mounts. I'm personally using this so i haven't checked the SU method yet.
Good Luck!
Click to expand...
Click to collapse
Thanks, --mount-master works like a charm!

How can I get write access to smb network shares mounted via Shield Experience 7.2.2?

The option to mount network shares is nice but only grants read permissions to the shares.
I know it's because of security concerns, I also know there's some api and app whitelisting allowing Plex app write permissions.
I don't use the Plex app.
My Shield is rooted through Magisk.
I want all my installed apps to have write permissions to the shares. Imho Shield Experience should allow the user to make this decision.
Without write permissions, for me the mount option is useless.
Can anyone help me to get write permissions to my mounted shares?
ABSOLUTELY ++++++1000000 for this.
Did you get this working @trohn_javolta !??!
That's exactly my problem !! I have two ShieldTV (2017 / 16GB / 8.0.1). Both successfully rooted with Magisk.
How can I give all my installed apps WRITE RIGHTS to my network drive (NAS)?!? Or even specific apps I CAN CHOOSE !!!
It is very annoying that eg RetroArch can not save the scores, savestats, controller settings, ...
Or even xFile Explorer can not write to the my NAS.
IMHO, as long as i am rootet, i should decide by my own how "secure" i want my system !!
Please help us to write on a network drive as normal.
On my Phone i can write to my NAS (ES File explorer) without any problems... So why is the shield not allowed?!
Thank you
Kamikaze01 said:
ABSOLUTELY ++++++1000000 for this.
Did you get this working @trohn_javolta !??!
That's exactly my problem !! I have two ShieldTV (2017 / 16GB / 8.0.1). Both successfully rooted with Magisk.
How can I give all my installed apps WRITE RIGHTS to my network drive (NAS)?!? Or even specific apps I CAN CHOOSE !!!
It is very annoying that eg RetroArch can not save the scores, savestats, controller settings, ...
Or even xFile Explorer can not write to the my NAS.
IMHO, as long as i am rootet, i should decide by my own how "secure" i want my system !!
Please help us to write on a network drive as normal.
On my Phone i can write to my NAS (ES File explorer) without any problems... So why is the shield not allowed?!
Thank you
Click to expand...
Click to collapse
Hi, yes I managed to do so Idk if I recall all required steps but I'll try. Let me know if it worked.
First in Magisk Manager Settings under "mount namespace" set "global namespace".
Then under Download, search and install the Busybox module and restart your shield.
Now open up a terminal, I prefer Termux. Type su, enter.
Now you create the folder where you'll mount your smb share to. Make sure it's in /mnt/cifs:
mkdir -p /mnt/cifs
mkdir -p /mnt/cifs/hdd
chmod -R 777 /mnt/cifs
mount -t cifs -o username=<username>,password=<pw>,rw,dir_mode=0777,file_mode=0666,iocharset=utf8,noperm,sec=ntlmssp,rsize=32768,wsize=32768 "//<ip>/<path to share>" /mnt/cifs/hdd
Since this has to be executed after every reboot, I set up a profile in Tasker App that does this automatically after a reboot. Hope this works for you :good:
trohn_javolta said:
Hi, yes I managed to do so Idk if I recall all required steps but I'll try. Let me know if it worked.
First in Magisk Manager Settings under "mount namespace" set "global namespace".
Then under Download, search and install the Busybox module and restart your shield.
Now open up a terminal, I prefer Termux. Type su, enter.
Now you create the folder where you'll mount your smb share to. Make sure it's in /mnt/cifs:
mkdir -p /mnt/cifs
mkdir -p /mnt/cifs/hdd
chmod -R 777 /mnt/cifs
mount -t cifs -o username=<username>,password=<pw>,rw,dir_mode=0777,file_mode=0666,iocharset=utf8,noperm,sec=ntlmssp,rsize=32768,wsize=32768 "//<ip>/<path to share>" /mnt/cifs/hdd
Since this has to be executed after every reboot, I set up a profile in Tasker App that does this automatically after a reboot. Hope this works for you :good:
Click to expand...
Click to collapse
WoW !! Thank you thausand times !!
I will give it a try at home later and report back
Kamikaze01 said:
WoW !! Thank you thausand times !!
I will give it a try at home later and report back
Click to expand...
Click to collapse
No problem, hope it works.
It's a shame that this still isn't possible without root on latest Shield Experience!
Btw: Are you on latest Shield Experience 8.0.1 (Android Pie) or did you also stay on 7.2.3?
trohn_javolta said:
No problem, hope it works.
It's a shame that this still isn't possible without root on latest Shield Experience!
Btw: Are you on latest Shield Experience 8.0.1 (Android Pie) or did you also stay on 7.2.3?
Click to expand...
Click to collapse
Many thanks for the help !! I am already at 8.0.1 ... Hopefully your workaround will still work: - /
Yes, it is really a shame for nvidia that it is still not possible to have write access to its own network drives.
Above all, this restriction is not widely publicized. I had to deal with it for a long time and I've been looking for the bug for a very long time ON MY SIDE, until I read on the Internet that this problem (write permission on network) is caused by the shield.
Anyway thank you very much for your tips - I'll try it that way and maybe later in the evening i can report.
Currently i am at work and come home later... :good:
Okay... I just tried your tips but got an error from Terminux, that my NAS is read only
So same problem as before... Damn.
Terminux output:
https://imgur.com/a/8gTQYWe
Kamikaze01 said:
Okay... I just tried your tips but got an error from Terminux, that my NAS is read only
So same problem as before... Damn.
Terminux output:
https://imgur.com/a/8gTQYWe
Click to expand...
Click to collapse
Hmmm.. and you did use username and password? Cause it's not in the command on the screenshot.
The message suggests that the share you're trying to mount is read only.
Hello and thanks for the answer.
I have entered the commands exactly as you told.
Terminux does not display the complete command, but I entered PW and USER correctly
I had to do it with controller, because I had no keyboard and mouse available. But i don't think i did any mistakes.
At the moment I use the app "FolderSync" and matched the required folder directly under the two shields.
That's an ugly workaround, but it works ...
Anyway, I thank you very much for the tips and the hint. I will try again with keyboard later maybe...
Still find it very sad from nVidia that they does not give us the freedom (write on NAS) on our own devices
Kamikaze01 said:
Hello and thanks for the answer.
I have entered the commands exactly as you told.
Terminux does not display the complete command, but I entered PW and USER correctly
I had to do it with controller, because I had no keyboard and mouse available. But i don't think i did any mistakes.
At the moment I use the app "FolderSync" and matched the required folder directly under the two shields.
That's an ugly workaround, but it works ...
Anyway, I thank you very much for the tips and the hint. I will try again with keyboard later maybe...
Still find it very sad from nVidia that they does not give us the freedom (write on NAS) on our own devices
Click to expand...
Click to collapse
Make sure to hit the "reply button" under my post, this way I get notified upon your answer :good:
Did you unmount the share via the offcial way before trying to mount in terminal? I mean go to settings -> storage and unmount the share there?
I'll take the leap shortly and will update to latest shield experience version...I just have to decide whether to wait for another update or not.
I'll report back but I see no reason why it shouldn't work on pie.
trohn_javolta said:
Make sure to hit the "reply button" under my post, this way I get notified upon your answer :good:
Did you unmount the share via the offcial way before trying to mount in terminal? I mean go to settings -> storage and unmount the share there?
I'll take the leap shortly and will update to latest shield experience version...I just have to decide whether to wait for another update or not.
I'll report back but I see no reason why it shouldn't work on pie.
Click to expand...
Click to collapse
Hello and thank u for your answer.
I tried again WITH keybord *g* and unmount my NAS before.
THIS time something seem to work, cause Terminux Output sais "Operation beeing performed..." (or beeing executed or something like this).
But another 2 hourl later nothing changed... i restart my shield but only the cifs folder disapeared.
No write access
Did you tried with Shield experience 8.0.1
Thank you
Kamikaze01 said:
Hello and thank u for your answer.
I tried again WITH keybord *g* and unmount my NAS before.
THIS time something seem to work, cause Terminux Output sais "Operation beeing performed..." (or beeing executed or something like this).
But another 2 hourl later nothing changed... i restart my shield but only the cifs folder disapeared.
No write access
Did you tried with Shield experience 8.0.1
Thank you
Click to expand...
Click to collapse
Hmm.. ok. It is expected behaviour that the cifs folder is gone after reboot, that's why I use Tasker to automatically create it and execute mount command after every reboot.
Is it possible that maybe Termux didn't get root rights? You can check that by opening Magisk Manager app and going to "Superuser" tab. There should be Termux entry and root rights enabled, if not do so and try again. I always go to the settings in Magisk Manager first and set "automatically grant root rights".
trohn_javolta said:
Hmm.. ok. It is expected behaviour that the cifs folder is gone after reboot, that's why I use Tasker to automatically create it and execute mount command after every reboot.
Is it possible that maybe Termux didn't get root rights? You can check that by opening Magisk Manager app and going to "Superuser" tab. There should be Termux entry and root rights enabled, if not do so and try again. I always go to the settings in Magisk Manager first and set "automatically grant root rights".
Click to expand...
Click to collapse
Yeah... I remember - you already told me about this problem at reboot.
Is it possible to get your Tasker Profile for that *g*
I know Tasker and already use it on my phone...
Kamikaze01 said:
Yeah... I remember - you already told me about this problem at reboot.
Is it possible to get your Tasker Profile for that *g*
I know Tasker and already use it on my phone...
Click to expand...
Click to collapse
It's a really simple one. As event I chose "booting device" and as task I use a simple execute shell task.
I did more digging and maybe can give more info. Just as a quick checklist:
You installed busybox magisk module? (maybe not required for mount command)
SE Linux mode is set to permissive? (maybe not required anymore, if successfull can be disabled later)
In Magisk Manager settings set "global mount namespace"?
By having magisk flashed, you should already get su and mount commands..
You can try changing the mount command a bit, I found sth. that might work:
su -mm -c mount -t cifs -o username=<username>,password=<pw>,rw,dir_mode=0777 ,file_mode=0666,iocharset=utf8,noperm,sec=ntlmssp, rsize=32768,wsize=32768 "//<ip>/<path to share>" /mnt/cifs/hdd
mm means mount master and should force everything to run in the global mount namespace (so the share can be accessed by every app with read/write permissions, not only with Termux)

Categories

Resources