Related
Ultimately... All I'm trying to do is put my custom ringtone on the internal memory so that it still plays correctly when the sd card is connected to my computer. (Though I certainly wouldn't mind removing the obnoxious "boot_att.ogg" file as well.) But I keep getting thwarted. First by the discovery that there's no /home directory (which kind of weirds me out, but that's a whole 'nother story).
Anyway, my phone is rooted with z4root, and I'm trying to do this by two different methods. [Correction: It would be better to say that I've tried this using two different programs] I've tried using "adb shell," and I've tried using "Android Terminal Emulator". I can successfully use su in both of them (but if I can't rewrite anything, then I don't see what the difference is). Then I go to the directory on my sd card where the cell ring is and I type
cp cell\ ring.mp3 /system/media/audio/ringtones/
And it replies
cp: /system/media/audio/ringtones/cell ring.mp3: Read-only file system
So, I found these instructions that say to use "mount -o rw,remount -t yaffs2 /dev/block/mtdblock3" (though I think it needs to be "mtdblock7" for mine) or "mount -o rw,remount -t rootfs /" But when I do either of those, it returns
Usage: mount [-r] [-w] [-o options] [-t type] device directory
Which I take to mean that the "mount" command isn't being used correctly (and my experience with the mount command on desktop bash is limited, so I don't have any clue how to correct it).
It's worth noting that I have the exact same results in both adb shell and Android Terminal Emulator.
So, I found another thread (I think one on XDA) that said that I need to be in recovery mode to write to /system, which kind of makes sense. But I have no clue how to do that. And Google is not helping. The only instructions I could find said to turn the phone off and hold down the camera and volume up button. Which did nothing. And it's a good thing nobody was watching because I'm sure I looked like an idiot.
So... I guess I'll have to ask, how do I get into recovery mode? But at this point, I keep coming across so many absurd things keeping me from this that I wouldn't be surprised if next I get an error.
Therefore, my question is this: Is there a way to get into recovery mode, or, alternatively, is there a way to keep my ringtone working even while my sd card is connected to my computer?
Do you have busybox installed?
Have you tried Root Explorer? It has a button to toggle read-write and read only in a folder.
I do have busybox installed. I have no idea what it does, but I installed it in an attempt to enable sideloading (which I have yet to successfully do; apparently the file isn't in the same place on the Flipside as the Captivate and I was going by a Captivate guide).
I have not yet tried Root Explorer. I know this sounds stupid since it's just four dollars, but I tend to shy away from mobile programs that cost money. (Don't know why, I've been that way since my black and white palm pilot.) But, that's just something that's weird about me, lol. I'll get Root Explorer tomorrow and come back.
Busybox is a set of command line utilities. More Info. The link in my previous post is to an installer for Busybox. Busybox provides a set of commands that can be used and many of the tutorials on modifying an android phone use them. Some don't clearly state Busybox is required.
If you are using this thread as a guide to enabling installation from unknown sources be sure to read the whole thread. In particular this post.
Mission accomplished: Root explorer worked perfectly. I saw it in the marketplace before, but I didn't know it can change read/write privileges. (I didn't get it because I thought it was going to have the same effect as Android Terminal Emulator, just without the GUI. Obviously, I am pleasantly corrected.)
And I have a correction: I did not have BusyBox installed; I had the installer installed. But it is installed now.
Thanks also for the links; sideloading is on my to-do list, after removing AT&T bloatware.
And I have one quick question: Do you (or anybody reading) happen to know if it'll be ok if I remove that boot_att.ogg file in /system/media/audio? I don't know if AT&T designed it so that the phone will crash without it, so I thought I'd ask before removing it.
adanedhel728 said:
. . . .
And I have one quick question: Do you (or anybody reading) happen to know if it'll be ok if I remove that boot_att.ogg file in /system/media/audio? I don't know if AT&T designed it so that the phone will crash without it, so I thought I'd ask before removing it.
Click to expand...
Click to collapse
I have not tried any mods of the boot sound. I would suggest that you replace the file with one that is the same name but just silence if removing it does not work.
Mounting file system as Read/Write
I too can affirm that the "Root explorer" app works perfectly for toggling the Read Only File System to Read Write.
I have a Samsung Captivate from AT&T that I upgraded to Froyo (2.2) using the official release from Samsung via the Kies Mini interface. First, I can say that was very worth it. Love 2.2 much better than stock 2.1
I rooted the phone with SuperOnceClick1.7 (had to have a Windoze OS to run that though) that I got from XDA developers and it worked like a charm. I then removed all the bloatware that AT&T likes to inflict upon its users by using "Titanium Backup." Finally, I added "Terminal Emulator" and verified that the su command was working and then "cd" to the "/etc" folder where the "PowerOn.wav" file is for the annoyingly loud startup sound is to delete it. When I issued the "rm" command to delete the file, got the dreaded "can't delete dueo the Read-only file system" or something very similar. Tried using the Android SDK via adb and that gave exact same results.
What to do?...Found this thread that gave great advice that "Root explorer" does work to toggle the R/O to R/W so the file could be deleted.
Thank you marvin02 for the great lead!!!
I have removed the "boot_att.ogg" file without any problems and went as far as swapping out the "bootanimation.zip" also without any problems. Now using CyanogenMod 5 boot animation but... haven't had any luck replacing the .ogg file for a custom startup sound. Tried encoding audio to the same specs as the original but keep getting this strange noise at boot time instead. Just thought I'd throw that in.
Quick question...
I just downloaded the free explorer from Speed which makes Root Explorer.
don't see any button to change read only to read/write. Is that a feature only in the paid Root Explorer?
Thanks from a Noob.
Edit: Just so if there are any other noobs asking... Yes, need to get the paid version to be able to write in system folders.
The free version is not able.
Hi all,
Love my HTC Desire so much i bought a Witstech A81E Android 2.2 Tablet. Which is pretty buggy to say the least though on the whole works well.
The one thing that is driving me crazy is a number of apps dont install with the logcat error:
"packagename.apk requires unavailable shared library com.google.android.maps"
Now from what i have read apparently this device does not come with Google Maps API so my question is how do i add it?
Can it be done? Do i need to modify a ROM to do it? can i push it via adb or apk?
A little help would be greatly appreciated.
It would need to have google apps installed to be able to access the libraries. Best bet is to find out if it has been rooted yet and try to install the proprietary applications they can't ship the device with.
appreciate the help mate. i've rooted the device though where can i find google maps api?
the unit already has google maps 5.0 installed but apparently doesnt have the API's.
Any idea what im looking for? will it be an APK or just some files i need to put in a system folder?
i think im over my head
additionally i have searched for any com.google.android.maps related data on my desire and have found the following:
/system/framework/com.google.android.maps.jar
/system/etc/permissions/com.google.android.maps.xml
/etc/permissions/com.google.android.maps.xml
/data/dalvik-cache/[email protected]@[email protected]
could it be as easy as copying this over to my tablet?
Ill try it out tonight.
If the application is installed correctly it should work because the api is stored in the data. Is the application on the tablet installed to the /system/ or /data/ partition. It might be looking for the data in /system/
not sure what you mean about where the application resides? you mean the app i am trying to install? The app i am trying to install is Tasker.
i have been doing some googling and saw someone else have the same problem and he managed to fix it:
When trying to install some apps, I would see this error message in logcat:
requires unavailable shared library com.google.android.maps
I had the Google Maps app installed and working, but that didn’t fix the issue. It turns out, I had to add two other files and restart the phone. I found those files in the google zip from Cyanogenmod. It took a little fiddling, but I was able to use these instructions to remount /system in write mode. First step was to take the following two files from the google apps zip (gapps-hdpi-20101114-signed.zip) and put them onto my sd card.
/system/etc/permissions/com.google.android.maps.xml
/system/framework/com.google.android.maps.jar
Then to load them onto the phone, I opened the terminal emulator and ran:
su
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cp /mnt/sdcard/com.google.android.maps.xml /system/etc/permissions/
cp /mnt/sdcard/com.google.android.maps.jar /system/framework/
Then after I rebooted the phone, I was able to install apps that depend on Google Maps. I can now check bus and train times, and do all kinds of other cool stuff with maps!
Click to expand...
Click to collapse
i simply used root explorer to copy it across though still not working. surely someone smarter than me can tell me what i am doing wrong.
is copying with root explorer essentially the same as above?
damn i could have sworn someone here would have been switched on enough to help me on this
oh well back to random googling for me.
Well did you try using terminal emulator? And do what he did? B/c that looks like a remount to system to me easy as pie just do what he did you can find the files with root explorer or do it on your pc doesnt really matter. You can Not achieve what he did just using root explorer you need terminal emulator!
Sage said:
damn i could have sworn someone here would have been switched on enough to help me on this
oh well back to random googling for me.
Click to expand...
Click to collapse
I don't know how much it will help (or if its 100 percent true) but I was just told recently that moving a file via root explorer is the same as pushing it via adb.
sent from gv1.5 on g2
^correct
Sent from Enrique Iglesias.
now i am confused. can i use root explorer or not? i used root explorer and then reset the correct permissions on the files though its still not working.
I take it i can get a terminal emulator that runs on the device itself yeah?
Ill try that next.
If that fails i am going to try my first attempt at cooking a ROM
Appreciate all the help!
no more love for Sage?
i dont know why its so hard..
I did try to cook the original ROM though unyaffs couldnt extract the img.
looks like i might have to boot up a Virtual nix box.. damn this is so much harder than it should be.
I've been reading as much as I can if it is possible to mount a network share with your Nexus 10. I've downloaded both cifsmanager and mount manager, and can get neither to work.
I can connect to my network with mount manager and some other apps. But getting the Nexus 10 to see your shares as a local folder seems to be a big PIA.
Does anyone have it working, and can they document the steps?
I'm also using CM 10.1, but will flash to any kernel if it can be done.
Thanks
PT
ptmuldoon said:
I've been reading as much as I can if it is possible to mount a network share with your Nexus 10. I've downloaded both cifsmanager and mount manager, and can get neither to work.
I can connect to my network with mount manager and some other apps. But getting the Nexus 10 to see your shares as a local folder seems to be a big PIA.
Does anyone have it working, and can they document the steps?
I'm also using CM 10.1, but will flash to any kernel if it can be done.
Thanks
PT
Click to expand...
Click to collapse
Here is a link that discusses CIFS.
http://goo.gl/ot1mi
Also search for CIFS in the developer's forum that discusses your ROM. The issues with CIFS surround the addition of multi-user support in 4.2.2. That feature meant the mount command needed additional arguments plus you need to create RSA keys. The link above provides that information and other details.
I have it working. Requires a specific set of kernel modules, which means a specific ROM/kernel combination.
I use mrRobinsons AOKP PUB ROM with KTmanta kernel.
After that, I run a script as root to mount the CIFS share, in my case:
Username is the source PC windows username, and then password
The 192.168.1.101\files is the path to my share, extra \ needed for *nix escaping
The /data/media/0/TV-PC is the path on my tablet, empty directory where the mount will occur.
#!/system/bin/sh
#This will mount cifs shares if the network is available
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/cifs.ko
busybox mount -t cifs -o username=tv,password=<YOUR_PASSWORD>,rw,file_mode=0777,dir_mode=0777,uid=1000,gid=1000,unc=\\\\192.168.1.101\\files //192.168.1.101/files /data/media/0/TV-PC
sttovo said:
I have it working. Requires a specific set of kernel modules, which means a specific ROM/kernel combination.
I use mrRobinsons AOKP PUB ROM with KTmanta kernel.
After that, I run a script as root to mount the CIFS share, in my case:
Username is the source PC windows username, and then password
The 192.168.1.101\files is the path to my share, extra \ needed for *nix escaping
The /data/media/0/TV-PC is the path on my tablet, empty directory where the mount will occur.
#!/system/bin/sh
#This will mount cifs shares if the network is available
insmod /system/lib/modules/md4.ko
insmod /system/lib/modules/cifs.ko
busybox mount -t cifs -o username=tv,password=<YOUR_PASSWORD>,rw,file_mode=0777,dir_mode=0777,uid=1000,gid=1000,unc=\\\\192.168.1.101\\files //192.168.1.101/files /data/media/0/TV-PC
Click to expand...
Click to collapse
Thanks Stove. I'm changing to mrRobinsons AOKP PUB ROM with KTmanta kernel.
But when it comes to running the script, do you need to have the app open first before mounting the share? Or will the native apps find everything with not issues?
Just an update that I SSH'd into my Nexus 10 and ran the script in a terminal.
I now see the shares mounted in a terminal. But I do not see anything mounted when in either ES File Explorer any other app.
ptmuldoon said:
Just an update that I SSH'd into my Nexus 10 and ran the script in a terminal.
I now see the shares mounted in a terminal. But I do not see anything mounted when in either ES File Explorer any other app.
Click to expand...
Click to collapse
I think I had this problem too, but I regret I don't remember how i fixed it. I *think* it had something to do with permissions. Did you use the uid and gid arguments that I had in my script? Also, my CIFS mount point is under my data /sdcard (data) mount, if you're mounting under / then that might change things.
I run my script directly from my Nexus 10 in a terminal as root.
May want to look in the thread linked below, this is where I got what I needed for the script.
Edit - check post 62 in this link. Looks like it's related to setting the ownership bits… 0777
http://forum.xda-developers.com/showthread.php?t=2003836
I use esfileexplorer to access my samba shares. It's not a permanent mount in the root fs, but i can watch videos thid way.
nvertigo67 said:
I use esfileexplorer to access my samba shares. It's not a permanent mount in the root fs, but i can watch videos thid way.
Click to expand...
Click to collapse
Yes, but that's not the same as mounting a shared network folder. The idea is for all native apps to see your media as if it was locally on your device
sttovo said:
I think I had this problem too, but I regret I don't remember how i fixed it. I *think* it had something to do with permissions. Did you use the uid and gid arguments that I had in my script? Also, my CIFS mount point is under my data /sdcard (data) mount, if you're mounting under / then that might change things.
I run my script directly from my Nexus 10 in a terminal as root.
May want to look in the thread linked below, this is where I got what I needed for the script.
Edit - check post 62 in this link. Looks like it's related to setting the ownership bits… 0777
http://forum.xda-developers.com/showthread.php?t=2003836
Click to expand...
Click to collapse
Sttove.. You may be on to something. .. The script/mount command already is suing 0777, but I noticed i could not create a folder in terminal after mounting the share.
I hope to do some more testing and research when I get back home tonight.
ptmuldoon said:
Yes, but that's not the same as mounting a shared network folder. The idea is for all native apps to see your media as if it was locally on your device
Sttove.. You may be on to something. .. The script/mount command already is suing 0777, but I noticed i could not create a folder in terminal after mounting the share.
I hope to do some more testing and research when I get back home tonight.
Click to expand...
Click to collapse
One other thing I just thought of, how is your share setup on the server side? If you go into Advanced Sharing for the share, then Permissions, make sure you have Everyone set to read, write, etc… That leaves your share wide open, but at least something you can test.
sttovo said:
One other thing I just thought of, how is your share setup on the server side? If you go into Advanced Sharing for the share, then Permissions, make sure you have Everyone set to read, write, etc… That leaves your share wide open, but at least something you can test.
Click to expand...
Click to collapse
I can SSH into the Nexus10 via a terminal/putty from a PC. Create the mount point, and then see my share info. I am then also able to create a directory in terminal as well.
But when I than go to the Nexus and ESFile Explorer or any other app, the mapped share folder is blank.
I think I read something on blank mount/shares, but will have to keep looking into it.
Has anyone seen that happen before and know its cause?
Hi guys,
Do any of you have successful solution to mount cifs shares with ANY kernel available? I've tried to do it with Project Flaming Monkey kernel, but had no luck. Most of the time I got "device not authorized" error when tried to mount via adb shell. But even if I could overcome this error (didn't figure out exact sequence of steps) it always says that mounting failed or even gets segfault.
With KTmanta kernel device is always authorized, I get root credentials immediately, but mounting also fails. Later I discovered that mounting actually happens and I can see it via adb shell, but it's invisible for all other users including root. Does it mean that 'mount using adb shell' trick doesn't work anymore?
Anyway I'll be very grateful for any kind of working solution or direction where to get it. Thanks in advance.
P.S. interesting but StickMount just works even on stock kernel that is said to have module loading disabled.
Sent from my Nexus 10 using xda app-developers app
uentity said:
Hi guys,
Do any of you have successful solution to mount cifs shares with ANY kernel available? I've tried to do it with Project Flaming Monkey kernel, but had no luck. Most of the time I got "device not authorized" error when tried to mount via adb shell. But even if I could overcome this error (didn't figure out exact sequence of steps) it always says that mounting failed or even gets segfault.
With KTmanta kernel device is always authorized, I get root credentials immediately, but mounting also fails. Later I discovered that mounting actually happens and I can see it via adb shell, but it's invisible for all other users including root. Does it mean that 'mount using adb shell' trick doesn't work anymore?
Anyway I'll be very grateful for any kind of working solution or direction where to get it. Thanks in advance.
P.S. interesting but StickMount just works even on stock kernel that is said to have module loading disabled.
Sent from my Nexus 10 using xda app-developers app
Click to expand...
Click to collapse
CM 10.2 plus Trinity Kernel plus Mount Manager works
I didn't yet tried trinity kernel
Thanks for the reply!
I think that kernel actually affects mounting process and not the ROM. Didn't tried trinity kernel yet, because author said that it's not feature complete for 4.3.
Do you have any issues with it? Everything works fine?
Sent from my Nexus 10 using xda app-developers app
uentity said:
I didn't yet tried trinity kernel
Thanks for the reply!
I think that kernel actually affects mounting process and not the ROM. Didn't tried trinity kernel yet, because author said that it's not feature complete for 4.3.
Do you have any issues with it? Everything works fine?
Sent from my Nexus 10 using xda app-developers app
Click to expand...
Click to collapse
Running the kernel version TX10, I have had some rare forced close issues, but i have no idea if it is kernel- or rom-related, propably the latter. Other than that it works just as well as any 4.2 combo I had before. Some kinks here and there, but perfectly usable.
I use Trinity with any 4.3 ROM and a script to mount my home file share. Works great.
I'm running 4.3 and Trinity kernel (tx17), I'm able to mount the cifs share from adb shell, I see the data there, but it's not available for the apps on the tablet. I also tried mounting the share using mount manager but it didn't help. I see it as a mounted, but no apps can see the data.
Where (mountpoint) and how should you mount the cifs share so it's visible for the rest of apps as well? Thx.
slano said:
I'm running 4.3 and Trinity kernel (tx17), I'm able to mount the cifs share from adb shell, I see the data there, but it's not available for the apps on the tablet. I also tried mounting the share using mount manager but it didn't help. I see it as a mounted, but no apps can see the data.
Where (mountpoint) and how should you mount the cifs share so it's visible for the rest of apps as well? Thx.
Click to expand...
Click to collapse
I remember having this problem, but I don't remember how I fixed it. Here's my script, compare it to yours to see if there's any difference. The below is all one line;
busybox mount -t cifs -o username=tv,password=<your_password>,rw,file_mode=0777,dir_mode=0777,uid=1000,gid=1000,unc=\\\\192.168.1.101\\files //192.168.1.101/files /data/media/0/TV-PC
I seem to remember it having something to do with mounting to /data/media/(whatever) or the uid/gid.
sttovo said:
I remember having this problem, but I don't remember how I fixed it. Here's my script, compare it to yours to see if there's any difference. The below is all one line;
busybox mount -t cifs -o username=tv,password=<your_password>,rw,file_mode=0777,dir_mode=0777,uid=1000,gid=1000,unc=\\\\192.168.1.101\\files //192.168.1.101/files /data/media/0/TV-PC
I seem to remember it having something to do with mounting to /data/media/(whatever) or the uid/gid.
Click to expand...
Click to collapse
Did try all possible combinations but still no luck. I've changed rom to Flaming Monkey and everything works like a charm there, so I'll probably stick with it for a while.
slano said:
Did try all possible combinations but still no luck. I've changed rom to Flaming Monkey and everything works like a charm there, so I'll probably stick with it for a while.
Click to expand...
Click to collapse
So to confirm, you did get cifs working with project flaming monkey rom or that's just the Rom you settled with since cifs never worked anyway? Did you use trinity kernel tx17? That's currently the combo I have and for the life of me cannot get it to work..... I am just learning about this so I'm sure it's me but if I know I have the same combo as someone who got it working, I will keep trying.
c683 said:
So to confirm, you did get cifs working with project flaming monkey rom or that's just the Rom you settled with since cifs never worked anyway? Did you use trinity kernel tx17? That's currently the combo I have and for the life of me cannot get it to work..... I am just learning about this so I'm sure it's me but if I know I have the same combo as someone who got it working, I will keep trying.
Click to expand...
Click to collapse
I've tried stock ROM with the Trinity kernel but no luck. I was able to mount the cifs filesystem, but it was not accessible for other apps. I've switched to Flaming monkey and everything mounted and was available just fine.
What is your problem with the current set-up? Will the share mount ok but it's not accessible from other apps or are you not able to perform the mount at all?
slano said:
I've tried stock ROM with the Trinity kernel but no luck. I was able to mount the cifs filesystem, but it was not accessible for other apps. I've switched to Flaming monkey and everything mounted and was available just fine.
What is your problem with the current set-up? Will the share mount ok but it's not accessible from other apps or are you not able to perform the mount at all?
Click to expand...
Click to collapse
Thanks for the reply. I have tried to use 3 different ways, below is a brief summary:
- CIFS Manager - No matter what I do, I get an "Invalid Argument" or "directory cant be found" error. Read and tried what is listed in CIFS FAQ to no avail.
- Mount Manger - Shows as connected, but there are no files; not in any apps or in the directory when using a file browser (root explorer or ES)
- Script - Yeah, just copied the script a few posts back and modified based on what I thought I needed to and used terminal emulator, gave it a go but nothing happens. Really don't know what I am doing with regard to script, over my head...
I also read that modules are needed but I thought the the trinity kernel already had them...
I am running the latest flaming monkey rom and trinity kernel on my nexus 10. So in short I really don't know exactly what I am doing but I will keep trying since I know you got it working with the same ROM and kernel setup. I can also access the files on my shared files through ES file explorer when I use the LAN or server feature so I know the PC is at least setup correctly, I think...
I haven't tried it on 4.3 yet. But the "Invalid argument" error is a problem in Linux kernels 3.4 in general. Take a look here:
How to Troubleshoot CIFS Problems on Android and Linux in General
I encountered that problem ever since JB. The problem is that mount is usually used in this way:
Code:
mount -o username=youruser,password=yourpasswd -t cifs //ipofpc/shareonpc dironphone
But that does not work in kernel 3.4. The share-directory as a device name is ignored. It has to be specified with argument unc. Like this:
Code:
mount -o unc=\\\\ipofpc\\shareonpc,username=youruser,password=yourpasswd -t cifs none dironphone
Note: since backslash is an escape character the double \\ is needed instead of \. It's also a good idea to specify noperm if you want the mounted directory to be accessible by all apps. Otherwise the mounted directory might only be accessible by root on the phone.
So a working example looks like this:
Code:
mount -o noperm,unc=\\\\10.0.0.200\\Public,username=guest,password=secret -t cifs none /sdcard/shares/nas
You have to work around that problem in CifsManager. Enter it like this:
Share Path: Enter anything. It will be ignored.
Mount Point: directory on phone: e.g. /sdcard/shares/nas
Username: enter user name
Password: leave empty
Options: e.g. noperm,unc=\\\\10.0.0.200\\Public,password=secret
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
gwodus said:
I haven't tried it on 4.3 yet. But the "Invalid argument" error is a problem in Linux kernels 3.4 in general. Take a look here:
How to Troubleshoot CIFS Problems on Android and Linux in General
I encountered that problem ever since JB. The problem is that mount is usually used in this way:
Code:
mount -o username=youruser,password=yourpasswd -t cifs //ipofpc/shareonpc dironphone
But that does not work in kernel 3.4. The share-directory as a device name is ignored. It has to be specified with argument unc. Like this:
Code:
mount -o unc=\\\\ipofpc\\shareonpc,username=youruser,password=yourpasswd -t cifs none dironphone
Note: since backslash is an escape character the double \\ is needed instead of \. It's also a good idea to specify noperm if you want the mounted directory to be accessible by all apps. Otherwise the mounted directory might only be accessible by root on the phone.
So a working example looks like this:
Code:
mount -o noperm,unc=\\\\10.0.0.200\\Public,username=guest,password=secret -t cifs none /sdcard/shares/nas
You have to work around that problem in CifsManager. Enter it like this:
Share Path: Enter anything. It will be ignored.
Mount Point: directory on phone: e.g. /sdcard/shares/nas
Username: enter user name
Password: leave empty
Options: e.g. noperm,unc=\\\\10.0.0.200\\Public,password=secret
Click to expand...
Click to collapse
Thank you for the detailed response, I will give that a try.
Sent from my Nexus 10 using xda app-developers app
c683 said:
Thank you for the detailed response, I will give that a try.
Sent from my Nexus 10 using xda app-developers app
Click to expand...
Click to collapse
BTW. I forgot. Before you try anything. Check if the directory /proc/fs/cifs exists. If it doesn't, then you are missing the required cifs kernel module. But more often then not, the kernel module is there and the problem is elsewhere.
gwodus said:
BTW. I forgot. Before you try anything. Check if the directory /proc/fs/cifs exists. If it doesn't, then you are missing the required cifs kernel module. But more often then not, the kernel module is there and the problem is elsewhere.
Click to expand...
Click to collapse
Thank you for your help. I thought for sure I tried what you said in your last post before as I read something similar. However, the info was wrong or I screwed up because when I followed your detailed description, it worked! The weird thing is some files open and others I'll get "the file doesn't exist error" but I am not concerned with it since I can get what I need. Thanks again.
c683 said:
Thank you for your help. I thought for sure I tried what you said in your last post before as I read something similar. However, the info was wrong or I screwed up because when I followed your detailed description, it worked! The weird thing is some files open and others I'll get "the file doesn't exist error" but I am not concerned with it since I can get what I need. Thanks again.
Click to expand...
Click to collapse
Awesome. You got it working!
I never ran across the "file doesn't exist" error. But I read around here that other people have such troubles too. It's probably a permission problem. Maybe try to play around with options like gid, forceuid, file_mode and dir_mode. A complete list of options is here: mount.cifs man page
gwodus said:
I haven't tried it on 4.3 yet. But the "Invalid argument" error is a problem in Linux kernels 3.4 in general. Take a look here:
How to Troubleshoot CIFS Problems on Android and Linux in General
I encountered that problem ever since JB. The problem is that mount is usually used in this way:
Code:
mount -o username=youruser,password=yourpasswd -t cifs //ipofpc/shareonpc dironphone
But that does not work in kernel 3.4. The share-directory as a device name is ignored. It has to be specified with argument unc. Like this:
Code:
mount -o unc=\\\\ipofpc\\shareonpc,username=youruser,password=yourpasswd -t cifs none dironphone
Note: since backslash is an escape character the double \\ is needed instead of \. It's also a good idea to specify noperm if you want the mounted directory to be accessible by all apps. Otherwise the mounted directory might only be accessible by root on the phone.
So a working example looks like this:
Code:
mount -o noperm,unc=\\\\10.0.0.200\\Public,username=guest,password=secret -t cifs none /sdcard/shares/nas
You have to work around that problem in CifsManager. Enter it like this:
Share Path: Enter anything. It will be ignored.
Mount Point: directory on phone: e.g. /sdcard/shares/nas
Username: enter user name
Password: leave empty
Options: e.g. noperm,unc=\\\\10.0.0.200\\Public,password=secret
Click to expand...
Click to collapse
I tried your solution (4.4, Nexus 5) and it actually mounts the volume correctly. The only problem is that mounted content is visibile only if you're root: i can't see the folders mounted from the applications even if the cifsmanager say it has been mounted.
I verified by mounting the volume via ADB and navigated to the mounted folder -> root can see the folder and normal user can't.
I also tried adding the parameters "rw,file_mode=0777,dir_mode=0777,nounix,iocharset=utf8", nothing.
Do you know something about this?
Same problem here on 4.4 N4
Sent from my Nexus 4 using Tapatalk 2
root only problem
ludalex07 said:
I tried your solution (4.4, Nexus 5) and it actually mounts the volume correctly. The only problem is that mounted content is visibile only if you're root: i can't see the folders mounted from the applications even if the cifsmanager say it has been mounted.
Click to expand...
Click to collapse
i've got the same issue on nexus 7 (new) running 4.3
here is my mount command:
mount -o noperm,unc=\\\\192.168.2.16\\Volume_2,username=guest,password=guest -t cifs musiq /sdcard/NAS
root only can see it.
from google groups, someone seems to have a workaraound, but i can not firgure out excactly what he means:
"when I mount using a shell-script (masked as a system-service like /system/bin/debuggerd) with "/system/bin/start" the mount is visible systemwide"
i tried replacing debuggerd with a script, but it is not part of the start-up services, so i am guessing /system/bin/start has to be invoked somehow?
noktilux said:
i've got the same issue on nexus 7 (new) running 4.3
here is my mount command:
mount -o noperm,unc=\\\\192.168.2.16\\Volume_2,username=guest,password=guest -t cifs musiq /sdcard/NAS
root only can see it.
from google groups, someone seems to have a workaraound, but i can not firgure out excactly what he means:
"when I mount using a shell-script (masked as a system-service like /system/bin/debuggerd) with "/system/bin/start" the mount is visible systemwide"
i tried replacing debuggerd with a script, but it is not part of the start-up services, so i am guessing /system/bin/start has to be invoked somehow?
Click to expand...
Click to collapse
The debugger method is described here: http://forum.xda-developers.com/showpost.php?p=37751808&postcount=55
Not sure it will work on 4.3, but you can give it a try.
Hello there!
I'm not sure wether this is the right Forum thread, nor if it's even possible.
English is not my first language, but i hope i can make myself clear and explain my problem.
As in the title mentioned I just want to mount a nfs share into my filesystem so that i can access my media through a vpn whereever I go.
I'm using a Synology Diskstation as NAS and created some NFS-shares (tried version 3 and 4) which are accessable in my Network. It's working flawless with my raspberry pi and with my debian system. I don't want to use smb (cfis).
I want to use my favorit musicplayer to listen to my music, mounted via fstab in the musicfolder for example.
Right now i'm using the yatse app, works fine - but it's just a workaround....
I tried FreedomOS(stock kernel and elementalx)+busybox and Resurrection Remix(stockkernel and lightningkernel)+ busybox. All i get is Invalid argument or error messages. I just can't get it to work. It's a linux system, why can't i use a simple nfs share?
Any help would be apreciated.
Thanks in advance!
I used to mount a nfs share with busybox so be sure to have that installed.
next be sure to have a working VPN connection to your home network.
One more thing to check is that VPN connections are allowed to access the nfs shares. Dont know if you need to set this up with synology or that it's enabled by default.
Thanks for the response.
I have all permissions set to get access to the nfs-share, tried it without vpn aswell. The vpn itself is working like a charm.
I have access to my NAS via webinterface and sftp, i can control and stream from my raspberry pi aswell. No problems with the vpn for sure.
I'm using busybox aswell. Can you post me your mount command or your fstab line for the mount?
the1weasel said:
Thanks for the response.
I have all permissions set to get access to the nfs-share, tried it without vpn aswell. The vpn itself is working like a charm.
I have access to my NAS via webinterface and sftp, i can control and stream from my raspberry pi aswell. No problems with the vpn for sure.
I'm using busybox aswell. Can you post me your mount command or your fstab line for the mount?
Click to expand...
Click to collapse
I used this i believe.
Your kernel needs to support it.
https://gist.github.com/aldur/4a3f90a111b71662f056
maikvitesse said:
I used this i believe.
Your kernel needs to support it.
https://gist.github.com/aldur/4a3f90a111b71662f056
Click to expand...
Click to collapse
Thats exactly what i was told over here https://forum.xda-developers.com/oneplus-5/development/kernel-elementalx-op3-1-00-t3626808/post73156290#post73156290
I will follow up on that, thanks for pointing me in the right direction aswell.
Ok, i was able to mount the share.
Now that it's getting a general question i will follow up here. I posted what i did over here aswell and got it solved to this state.
I can see the files in the Terminal, but not in any App (explorer, musicplayer etc.).
As i already wrote here: https://forum.xda-developers.com/showpost.php?p=73161675&postcount=437 I'm guessing it's because i mounted as root so normal users can't use it. Or at least thats what I'm thinking.
I searched the forum already and just found a thread with someone having the same problem without solution.
Is there a way that i can use the mounted share with any app I want?
Just for the roundup.
Here is whats working:
mount a nfs-share through an terminal app. => Files are visible/browsable
whats not working:
Use the mounted nfs-share systemwide with any other app.
What i tried (used Termux):
mount into /mnt/remotenfs => files show up in terminal, just there.
mount into /storage/emulated/0/Music/remote => files show up in terminal, just there.
mounted the share and then started an explorer (solidexplorer) from terminal - same result. No fileaccess through explorer.
the1weasel said:
Just for the roundup.
Here is whats working:
mount a nfs-share through an terminal app. => Files are visible/browsable
whats not working:
Use the mounted nfs-share systemwide with any other app.
What i tried (used Termux):
mount into /mnt/remotenfs => files show up in terminal, just there.
mount into /storage/emulated/0/Music/remote => files show up in terminal, just there.
mounted the share and then started an explorer (solidexplorer) from terminal - same result. No fileaccess through explorer.
Click to expand...
Click to collapse
I think I suggested something like this as a way to glean some information about this problem in the other thread, but don't recall for certain what the outcome if any was:
At least since V5 and above of Android OS, there's been some sort of thread insularity that keeps another thread from seeing what some of the first one sees. (moreso than before V5). I figured that since fstab.qcom (or whatever the name of the actual startup file where "mount -a" is pointed) must contain the mounted partitions that are visible to all. If that's the case, it's either the startup mount daemon, or it is in one of the columns of each "mount" entry in fstab.*.
I think I suggested adding a mount entry without the "automount at start" parameter for your remote music. Just curious if that was tried? Also, I thought the file where these were entries were kept in M & N (6 & 7) had "*vold*" in the title.
I'm also curious about this and will look around for some better answer because it seems very non-linux / android that only the thread performing the action can see the result (although that is how local actions / variables act).
After some poking around: I think this link explains some possible reasons for this behavior, not that there isn't some way around it. Probably there is no way around it without some compromise of whatever privacy additions android OS is after. It sounds a lot like an SELinux & /proc FS change. https://stackoverflow.com/questions/38590140/file-system-changes-in-android-nougat
hachamacha said:
I think I suggested something like this as a way to glean some information about this problem in the other thread, but don't recall for certain what the outcome if any was:
At least since V5 and above of Android OS, there's been some sort of thread insularity that keeps another thread from seeing what some of the first one sees. (moreso than before V5). I figured that since fstab.qcom (or whatever the name of the actual startup file where "mount -a" is pointed) must contain the mounted partitions that are visible to all. If that's the case, it's either the startup mount daemon, or it is in one of the columns of each "mount" entry in fstab.*.
I think I suggested adding a mount entry without the "automount at start" parameter for your remote music. Just curious if that was tried? Also, I thought the file where these were entries were kept in M & N (6 & 7) had "*vold*" in the title.
I'm also curious about this and will look around for some better answer because it seems very non-linux / android that only the thread performing the action can see the result (although that is how local actions / variables act).
After some poking around: I think this link explains some possible reasons for this behavior, not that there isn't some way around it. Probably there is no way around it without some compromise of whatever privacy additions android OS is after. It sounds a lot like an SELinux & /proc FS change. https://stackoverflow.com/questions/38590140/file-system-changes-in-android-nougat
Click to expand...
Click to collapse
Thanks for the response, looks like you are much more into that android thing....
I just added
"10.11.12.10:/volume1/Audio /storage/emulated/0/Music/remote nfs nolock,ro defaults"
to the fstab.qcom . Doesn't mount at startup.
I realized some inconsitency in the ssh thing, sometimes it works mounting via ssh, sometimes not....strange. (mount: applet not found)
To be sure i'm doing all that stuff without ssh.
Edit:
For everyone else reading this. It's not about music, the musicfolder is just a random folder to see if it's working.
the1weasel said:
Thanks for the response, looks like you are much more into that android thing....
I just added
"10.11.12.10:/volume1/Audio /storage/emulated/0/Music/remote nfs nolock,ro defaults"
to the fstab.qcom . Doesn't mount at startup.
I realized some inconsitency in the ssh thing, sometimes it works mounting via ssh, sometimes not....strange. (mount: applet not found)
To be sure i'm doing all that stuff without ssh.
Edit:
For everyone else reading this. It's not about music, the musicfolder is just a random folder to see if it's working.
Click to expand...
Click to collapse
To add to that: It doesn't seem like any surprise that just putting an entry in the fstab.qcom doesn't work the same as the others. As I search around for a way to do this it becomes apparent that even a Synology app designed to do this (DS File) (Mounts a NFS share on Synology box and allows file transfers) isn't able to allow others to see it's mounted share.
Before I mounted a Synology folder using Synology DS File, I created a tmp folder and cd there and then did a mount > mountbefore.log. After the mount of the share while still running DS File pointing to my Synology folder, I did a mount > ./mountafter.log. I then did a diff -urN (and just a diff) ./mountbefore.log ./mountafter.log that showed no differences. That seems telling.
Also, I did the same with /proc/mounts /proc/mountinfo /proc/mountstatus before and after, and nothing showed up as different. Also I did a ps | grep DS to see whether the ps output gave me any clue as to what local mount point was used, but though I could see the DS process, I couldn't see it's mountpoints.
I'm pretty sure there's an SELINUX (or many) entrie(s) for the mounted share that prevent the usual visibility. I recall reading that "fixing" the /proc exploits was a big priority with the advent of SElinux so I'll look at that angle too. I don't think that the fact that DLNA works is of much use in this problem. It's really a solution to a different and specific problem.
hachamacha said:
To add to that: It doesn't seem like any surprise that just putting an entry in the fstab.qcom doesn't work the same as the others. As I search around for a way to do this it becomes apparent that even a Synology app designed to do this (DS File) (Mounts a NFS share on Synology box and allows file transfers) isn't able to allow others to see it's mounted share.
Before I mounted a Synology folder using Synology DS File, I created a tmp folder and cd there and then did a mount > mountbefore.log. After the mount of the share while still running DS File pointing to my Synology folder, I did a mount > ./mountafter.log. I then did a diff -urN (and just a diff) ./mountbefore.log ./mountafter.log that showed no differences. That seems telling.
Also, I did the same with /proc/mounts /proc/mountinfo /proc/mountstatus before and after, and nothing showed up as different. Also I did a ps | grep DS to see whether the ps output gave me any clue as to what local mount point was used, but though I could see the DS process, I couldn't see it's mountpoints.
I'm pretty sure there's an SELINUX (or many) entrie(s) for the mounted share that prevent the usual visibility. I recall reading that "fixing" the /proc exploits was a big priority with the advent of SElinux so I'll look at that angle too. I don't think that the fact that DLNA works is of much use in this problem. It's really a solution to a different and specific problem.
Click to expand...
Click to collapse
Hmm I just found this: https://forum.xda-developers.com/showthread.php?t=2106480 and will have a closer look into it later, I'm running out of time right now and have to leave.
But what I've read so far looks similar to the problem we are facing right now. Maye thats the way to go. I'll try it, as I said, later.
At this point i don't even care if it's smb or nfs as long as i can mount my stuff into the filesystem.
One other thing I noticed but haven't messed around with yet is that I was looking at the various mount commands for different implementations (not that any will just work like 2 versions ago), and noticed that only /system/xbin/mount is a soft link to /system/xbin/busybox (standard busybox link to allow using it various look-alike-to-linux commands.
But then I realized that /system/bin/mount is also there, also a soft-link to /system/bin/toybox (another busybox clone) and am wondering if it behaves any differently. Might be worth a look (but I doubt it). /system/bin/toybox is at least a different version of busybox and not linked to it.
Just looked at your last reply and realized that unfortunately the two links of interest are at the now nonexistant domain cyanogenmod.org. Maybe the diffs are worthwhile. Gotta work, Later.
hachamacha said:
One other thing I noticed but haven't messed around with yet is that I was looking at the various mount commands for different implementations (not that any will just work like 2 versions ago), and noticed that only /system/xbin/mount is a soft link to /system/xbin/busybox (standard busybox link to allow using it various look-alike-to-linux commands.
But then I realized that /system/bin/mount is also there, also a soft-link to /system/bin/toybox (another busybox clone) and am wondering if it behaves any differently. Might be worth a look (but I doubt it). /system/bin/toybox is at least a different version of busybox and not linked to it.
Just looked at your last reply and realized that unfortunately the two links of interest are at the now nonexistant domain cyanogenmod.org. Maybe the diffs are worthwhile. Gotta work, Later.
Click to expand...
Click to collapse
I'm back home already a little late but enaugh time for more researches.
This link:
https://github.com/mkasick/android_...mmit/b358bf82c079a577f011c167da8b65faef73a06e
is working. And really worth reading it and explains the visibility problem.
mkasick said:
Android 4.2 breaks Dalvik-apps that mount file systems to be shared with other apps. This includes CifsManager, Mount Manager, essentially anything that mounts cifs shares, FUSE file sytems, etc. The symptom is that the mounted contents appear fine to app that peforms the mount operation (assuming the app itself provides the ability to browse the contents), but every other app only sees an empty directory at the mount point.
It turns out that this problem is a side-effect of the approach used to implement multi-user storage in Android 4.2. I've explained the problem in detail in the commit log for a Gerrit issue we're reviewing for CyanogenMod 10.1 that addresses the problem:
Ideally, any 4.2 ROM can provide support for CifsManager by applying a change to Dalvik, and a second change to the boot ramdisk's init.rc:
Dalvik change: Zygote: Restrict slave mountspace so Dalvik apps can mount system-wide volumes
init.rc change: init.rc: Create /storage mountpoint so Dalvik can mark as slave in zygotes
Alternatively, ROMs that can't/prefer not to use a source-build Dalvik (libdvm), I've also provided a kernel patch that implements a similar workaround within the kernel. It also requires the above init.rc modification:
Kernel commit: Restrict slave mountspace so Dalvik apps can mount system-wide volumes
init.rc change: init.rc: Create /storage mountpoint so Dalvik can mark as slave in zygotes
With either of the above two fixes, CifsManager et al. should work when using a mountpoint outside /storage (and /mnt/shell/emulated). I'd recommend using "/mnt/cifs" or something similar. Attempting to mount inside /storage retains the previous behavior where the mount can not be seen by other apps.
Note that ROMs only need one of the above two fixes, although they are compatible with each other and will function correctly if both are present. The Dalvik approach is preferred over the kernel workaround where feasible. Attached are the three patches referenced in the issues/commits.
Attachments: (sry for editing the quote)
dalvik.diff: https://forum.xda-developers.com/attachment.php?attachmentid=1656555&d=1358548352
nitrc.diff: https://forum.xda-developers.com/attachment.php?attachmentid=1656556&d=1358548352
kernel.diff: https://forum.xda-developers.com/attachment.php?attachmentid=1656557&d=1358548352
Click to expand...
Click to collapse
Look at the attached files, the answer is in there, but i don't know what to do with it
Thanks. I've got to do some work from home before I go back to messing around with this. I read the zygote/Dalvik page. I'm sure I've read it before but had the impression that the information was obsolete, but maybe not!
I guess there a couple of problems for me with that information.
1) It is pretty old (2013 or so): I can't even find the pertinent file in my source tree anymore.
2) dalvik has undergone a lot of revisions since this was tried. I'm not at all sure the change looks very different from the way tmpfs is /storage mounted already.
(but I could try this one. I figure in real time, if it'd let me remount it with the changes, the worst it could do is lock me up).
3) the kernel I'm using doesn't appear to have that line in it, besides, I'd have to rebuild the kernel.
I guess I'd much rather find a userspace way around this problem if possible. I seems almost unthinkable that there'd be no other way (via the mount cmd for example and careful choice of mount folder) to mount something that could be seen by any process. I'll keep trying from that angle.
Regrouping: I was ssh'd into the synology server poking around when I noticed that the running nfs daemon (as shown by ps -ef | grep nfs) was nfs4. I didn't see that Android supported that so I decided to just move the entire exercise of mount.nfs4 over to Ubuntu 16.04 box.
I made sure I had all the NFS stuff installed and pretty much did these statement:
mount -t nfs -o ro x.x.x.x/share /mnt/remote # failed with bad argument
mount -t nfs4 -o ro x.x.x.x/share /mnt/remote # failed with bad argument
mount.nfs4 x.x.x.x/share /mnt/remote #failed with bad argument.
At that point I decided that android didn't matter if I couldn't figure out how to mount NFS shares from linux.
I then tried mount -t cifs -o ro,user=me,pass=pwd //server/share /mnt/remote
It mounted up immediately. I need to look up some working examples of someone using mount.nfs / 4 from anywhere to synology. While I'm sure I've used it before, I'm also pretty sure I don't recall how exactly the setup and syntax works.