Mount loopback fs crashing phone - LineageOS Questions & Answers

Not sure which section to post this question but I've been trying to create & mount a local file for a project idea. Failing right a the start its been looking for information but struggling to find any logs to explain whats happening.
Phone Galaxy S5, flashed with LineageOS 15.1 (unto date)
Basically I've been trying to create a file with dd, making a filesystem then mounting.
Creating a file with dd on phone or external also running mkfs (tried exfat ext4 2fs)
The problem comes when mounting using adb or local shell app the command doesn't complete while phone reboots.
Sample shell commands used to help with understanding my issue
Code:
su -
cd /storage/(sdcard)
dd if=/dev/zero of=virtualfs bs=1024 count=10240
mkfs.exfat virtualfs
mkdir vir
mount -o loop ./virtualfs ./vir
Phone freezes, 5 seconds later reboots
I've tried running from a couple of terminals over adb with one running logcat but nothing is seen between command and reboot.
At this point I'm lost where to look for errors or what to attempt next.

without finding a way forward on this loopback issue I'm hoping someone could provide guidance.
Guessing this would be a kernel issue? how could this be confirmed

Related

Help needed. Rooting Desire Z

Ok, after using my phone for a while i decided to root it. Since I have the stock Gingerbread rom i followed the guide to downgrade to the stock froyo rom. http://forum.xda-developers.com/showthread.php?t=1178912
I reached the part Temp-Rooting to Backup However, when i run titanium backup it says Error: Sorry, I could not acquire root privileges. This application will *not* work.
What am I supposed to do? I followed the guide to the letter and everything up till that point was exactly as the guide said.
My phone's details are
Android version 2.3.3
Baseband version 12.56.60.25U_26.10.04.03_M
Kernel version 2.6.35.10-g7b95729
Software number 2.42.415.17
Here is what i did in adb
http://pastebin.com/jkxE55Yh
For some reason, new users are not allowed to post links in their replies. Nipqer, i redid all my steps and did what you told me.
here is the link of all what i did:
http://pastebin.com/Fze9uB33
First, thank you so much for linking a pastebin of what you've done, makes it so much easier to try help.
However I'd really like to see if there was any output after running 'adb shell /data/local/
tmp/fixsu.sh' so if you can get that ouput and post it, would be much appreciated.
You might have to run it from inside shell:
adb shell
cd /data/local/tmp
./fixsu.sh
-Nipqer
Thanks Nipqer and sorry for the late reply.
I did what you told me and this is what i got
C:\Program Files (x86)\Android\android-sdk\platform-tools>adb shell
adb server is out of date. killing...
* daemon started successfully *
# cd /data/local/tmp
cd /data/local/tmp
# ./fixsu.sh
./fixsu.sh
#
though i don't know if it helps with anything.
I just got confused because in the guide it says to install Titanium backup and backup my data. I have already done a manual backup myself but i figured doing a backup using Titanium backup will not hurt. I have used other programs like Root Checker Basic and it tells me that i don't have proper root access.
Can I just ignore this issue and go ahead with the downgrade? Or will there be some problems?
Thanks again in advance!
Hmm, it should give you root permissions after running fixsu.sh.
The lack of output shows it should've worked.
That part of the guide is entirely optional anyway, so If you already have what you want backed up, go ahead and downgrade.
-Nipqer
Nipqer said:
Hmm, it should give you root permissions after running fixsu.sh.
The lack of output shows it should've worked.
Click to expand...
Click to collapse
Well. fixsu.sh returned no error for me, too. But Titanium backup did not get root and trying to call "su", I got I/O error. And looking to dmesg, I seen corrupted file system.
After a bit of research I got the reason: rw remount succeeds, Linux thinks, that data are written to flash, but no data are written for real. Once data leave cache, they are lost and system "returns" to intact state.
I wrote a different fixsu.sh, which does not have this problem, but I am still failing to get root privileges, even with the latest Superuser+su. I got only a pop-up about refused root access. (But "su number_of_any_existing_uid" and then "su" in adb shell says says about permitted access.)
Here is my preliminary fixsu.sh:
Code:
#!/system/bin/sh
chmod 755 /data/local/tmp/busybox
chmod 4755 /data/local/tmp/su
/data/local/tmp/busybox cp -a /system/xbin /data/local/tmp/
mount -o bind /data/local/tmp/xbin /system/xbin
/data/local/tmp/busybox --install -s /system/xbin/
/system/bin/rm /system/xbin/su 2>/dev/null
/data/local/tmp/busybox cp -a /data/local/tmp/su /system/xbin/
/data/local/tmp/busybox cp -a /system/bin /data/local/tmp/
mount -o bind /data/local/tmp/bin /system/bin
/data/local/tmp/busybox cp -a /data/local/tmp/su /system/bin/
# /etc/* changes are needed only for some busybox utils, not for Superuser's su
/data/local/tmp/busybox cp -a /system/etc /data/local/tmp/
mount -o bind /data/local/tmp/etc /system/etc
/data/local/tmp/busybox echo "root::0:0:root:/data/local:/system/bin/sh" > /system/etc/passwd
chmod 0666 /system/etc/passwd
/data/local/tmp/busybox echo "root::0:0:root:/data/local:/system/bin/sh" > /system/etc/passwd
/data/local/tmp/busybox echo "root::0:" > /system/etc/group
chmod 0666 /system/etc/group
# Optional:
ln /data/local/tmp/busybox /data/local/tmp/xbin/busybox
And here is the code to recover "writable" state after reboot:
Code:
#!/system/bin/sh
mount -o bind /data/local/tmp/xbin /system/xbin
mount -o bind /data/local/tmp/bin /system/bin
mount -o bind /data/local/tmp/etc /system/etc
Unfortunately I can't tell you why it won't work. Might just be your partitions are too corrupted or something.
Have you tried a full power cycle (turn phone off, pull battery), it's helped other phones work in the past.
Otherwise I'd say just use adb to pull your entire /data dir, so you have everything saved and can mess round with trying to put it back in later.
-Nipqer
Nipqer said:
Unfortunately I can't tell you why it won't work. Might just be your partitions are too corrupted or something.
Have you tried a full power cycle (turn phone off, pull battery), it's helped other phones work in the past.
Click to expand...
Click to collapse
I tried to reboot without battery removal. Partition was "corrupted" before reboot and intact after reboot. I tried to write again. I again got corruption. And ffter reboot it was again byte-equal to the original system.img. It means, that not write actually happens. Linux kernel just assumes that data are written, but they are lost after leaving kernel cache.
Hopefully, Android mount command supports -o bind, so one can bind mount directories from /data and /system is seemingly writable then.
Nipqer said:
Otherwise I'd say just use adb to pull your entire /data dir, so you have everything saved and can mess round with trying to put it back in later.
Click to expand...
Click to collapse
I saved all mmcblk0p* before starting my experiments. It should be the most complete way to backup, but it does not easily allow partial restore.
utx said:
I saved all mmcblk0p* before starting my experiments. It should be the most complete way to backup, but it does not easily allow partial restore.
Click to expand...
Click to collapse
If you saved the data from the partitions, restoring would just be placing the apk in /data/app/ and then placing the data files back into /data/data/ - if you do it this way, you must run fix_permissions whether you saved it with or without preserving the permissions (owner, read/write/execute, et cetera). The app, when you put it on the different rom, will have a different UID (more than likely) than it did before and the data files permissions would be incorrectly set. Running fix_permissions should resolve that issue.
*EDIT*
I may of misunderstood what you meant by saving mmcblk0p*. How did you do this? At first I was thinking you just meant you did a tar backup of each partition, but after re-reading sounds more like you something like
Code:
# dd if=/dev/block/mmcblk0p# of=/sdcard/mmcblk0p#.img
Is that what you did? If so, are you trying to restore it by the same method?
Code:
# dd if=/sdcard/mmcblk0p#.img of=/dev/block/mmcblk0p#
If so, I'm not sure that would work properly… You might have to extract the data from it then copy it over to the partition...
I've had that problem after geting temp root. Titanium would say no root premissions. So I redid the steps after reboot...but I found the problem was that if you open titanium back up be for u root it will throw yu that msg so if yu have did that that's why so go back after you root in to applications and force close titanium and then reopen app then it shuld give you root premssions at least it worked for me but I still wasn't able to down grade and another thing are u using the gfree method kus that didn't work for me to get root... I had to use the freevo method to get temp root as gfree kept giving me errors after doing the adb coommands
sent from my Tmobile G2 Rush Vision
And if that dosnt work yu can use sdcard maid to back up your system apps n such or delete them ....
sent from my Tmobile G2 Rush Vision
Setherio said:
If you saved the data from the partitions, restoring would just be placing the apk in /data/app/ and then placing the data files back into /data/data/ - if you do it this way, you must run fix_permissions whether you saved it with or without preserving the permissions (owner, read/write/execute, et cetera). The app, when you put it on the different rom, will have a different UID (more than likely) than it did before and the data files permissions would be incorrectly set. Running fix_permissions should resolve that issue.
Click to expand...
Click to collapse
I am aware of this problem. But if one returns exactly equal /system as it was there before, the /data will need no change.
Setherio said:
I may of misunderstood what you meant by saving mmcblk0p*. How did you do this? At first I was thinking you just meant you did a tar backup of each partition, but after re-reading sounds more like you something like
Code:
# dd if=/dev/block/mmcblk0p# of=/sdcard/mmcblk0p#.img
Is that what you did? If so, are you trying to restore it by the same method?
Code:
# dd if=/sdcard/mmcblk0p#.img of=/dev/block/mmcblk0p#
If so, I'm not sure that would work properly… You might have to extract the data from it then copy it over to the partition...
Click to expand...
Click to collapse
It was just an abbreviation:
Code:
cd /dev/block
for PARTITION in mmcblk0p* ; do
dd if=/dev/block/$PARTITION of=/sdcard/$PARTITION.img
done
I guess, that the most straightforward way to restore that /data would be: First run
Code:
fsck mmcblk0p26.img
(on Linux machine) on that /data image (when you don't have root and custom recovery yet, you cannot backup /data in read-only mode, so the image is corrupted a bit for sure; if the fsck puts something to /lost+found, you can delete it after finishing of the rooting process). Then rename mmcblk0p26.img to userdata.img and add it to the PC10IMG.zip that restores stock system. Otherwise you will again fight with "partition in use" problem when trying to restore.
I did not test this method, as I did not understand the partition layout that deeply before I root. But there is no reason why it would not work.
Hello everybody,
for quite a while i am reading several guide for rooting my desire z (android 2.3.3, not branded, USB debugging activated, Fast boot deactivated). In Germany most of the guides refer to Setherio's guide. So working with the source is as usual the best.
Unfortunately - even after 3 tries, with factory resets, rebooting, removing the battery, etc. - I cannot gain a temporary root. neither titanium backup nor MyBackUp Root gain access for making a backup. So I ended up here. I am not sure, if Sayedamir had the same problem. Nevertheless, I appreciate every help.
This is what I have done so far:
http://pastebin.com/NKD6D7Av
Furthermore, referring to Nipquer's 1st post, I executed fixsu as described with following results:
http://pastebin.com/0EQS0UnF
I am not sure, if I should proceed with the downgrading without having a backup and I guess, when the backup isn't working (lack of temporary root), the downgrading would not work anyway?!
Hi Vince683,
Yes I had exactly the same problem. I too followed Setherio's guide and after 2 attempts I still couldnt get temp root. I ended up not being able to back up any of my apps.
However i suggest you back up your messages and contact as that was the only stuff I could back up. there are alot of apps in the market that do that and i guess they dont need root.
If backing up your app data is that not important you can proceed with the downgrade. It worked in my case. I guess the only nuisance would be that you have to manually install and configure all yours apps again.
Tell us how it goes.
Perfect, it worked. Thank you for encouraging me
And Cyanogenmod 7.2 works fine.
Vince683 said:
Perfect, it worked. Thank you for encouraging me
And Cyanogenmod 7.2 works fine.
Click to expand...
Click to collapse
You're welcome

[Q] How to delete files/folders from /sdcard?

After rooting my Galaxy Nexus with Wug's Root Toolkit and sim unlocking with the Docomo hack, and then restoring my apps/data (can't recall if I restored from GN Toolkit or Root Toolkit), my camera app was messed up--could snap pix but they didn't save; and video always fc'ed. The solution turns out to be to rename or delete the DCIM folder. I couldn't delete--so I renamed. Now I am trying to delete that DCIM.old folder and contents (eating up 1+G on my storage), but cannot delete either individual files or the folder. I'm sure there is a simple solution, but I can't find it. Help (even with a condescending attitude ) much appreciated!
zzcat
If you use a file explorer, that has it's standard directory at / then all you need to do is navigate to /mnt/sdcard/ then make sure it's mounted as R/W and not R/O, if all that is the way I said it, you shouldn't have problems deleting anything, if so, use the ADB and type:
Code:
adb shell rm /mnt/sdcard/<Folder>
That should then do the trick
You could also try the following Apps:
- Rootexplorer (paid)
- Astro File Manager
familyguy59 said:
If you use a file explorer, that has it's standard directory at / then all you need to do is navigate to /mnt/sdcard/ then make sure it's mounted as R/W and not R/O, if all that is the way I said it, you shouldn't have problems deleting anything, if so, use the ADB and type:
Code:
adb shell rm /mnt/sdcard/<Folder>
That should then do the trick
Click to expand...
Click to collapse
FamilyGuy, thanks for the suggestion, the problem seems to be bad permissions and I can't figure out how to fix them. Tried the "fix permissions" from recovery, as well as when booted, to no avail.
Typing
adb shell rm -rf /[directory]
gives me "permission denied"
So tried
chmod 666 /sdcard/.../*
but get an "operation not permitted" message.
So I'm really stuck here...
familyguy59 said:
If you use a file explorer, that has it's standard directory at / then all you need to do is navigate to /mnt/sdcard/ then make sure it's mounted as R/W and not R/O, if all that is the way I said it, you shouldn't have problems deleting anything, if so, use the ADB and type:
Code:
adb shell rm /mnt/sdcard/<Folder>
That should then do the trick
Click to expand...
Click to collapse
Update: solved
boot into recovery mode
mount /data
adb shell
rm, rmdir etc. all work as expected from here, no need to chown or chmod anything
zz
I see you've solved this, but i thought i would throw this in anyway...
The easy way is to delete the files from /data/media
The sdcard directory is a symlink, so go to the true folder and you should have more success...
Sometimes the file ownerships get messed up after a cycle of recovering the OS and restoring files.
http://forum.xda-developers.com/showthread.php?t=1515291&page=2
If you have any other directories/files that you can't modify or delete, then boot into CWM recovery, plug in the USB cable, go into adb shell. Also make sure that /data is mounted in the CWM mounts menu. Then:
cd /data/media
chown -R media_rw.media_rw *
This fixed it for me and others.
cmstlist said:
Sometimes the file ownerships get messed up after a cycle of recovering the OS and restoring files.
http://forum.xda-developers.com/showthread.php?t=1515291&page=2
If you have any other directories/files that you can't modify or delete, then boot into CWM recovery, plug in the USB cable, go into adb shell. Also make sure that /data is mounted in the CWM mounts menu. Then:
cd /data/media
chown -R media_rw.media_rw *
This fixed it for me and others.
Click to expand...
Click to collapse
Thanks for this and other suggestions--my solution was trial and error, thrashing around in the dark (my unix command line chops are really, really rusty), and these are far more elegant. It's good to understand the underlying problem, your wisdom is appreciated.
Yes, permissions were messed up after rooting and applying a sim unlock hack, wiping and restoring from pre-unlock backup set. I see it so clearly now...
Problem can somebody help me?
Hello. I have a problem with my motorola defy+ running on gb 2.3.6 and is not ROOTED. Still he has an annoyng problem. After installing an aplication (not from the market) i saw that it didn't save data on the sd card. I uninstalled it and after a data factory reset i install apps such as temple run and Brother in Arms 2. At temple run it gave me this mesage
"File Access Problem Caution, unable to write files. This means your game progress can't be saved! Reason: Access to the path "/mnt/sdcard/Android/data/com.imangi.templerun/files/spaceholder.dat" is denied."
Also at Brother in Arms 2 the game didn't save. I rest the phone abouat 7-8 times.I changed the sd card. Note that the card was a 16 gb kingmax class 6 and put the 2 gb card that came with the phone. It all work smoothly. So what is the problem the sd card or the phone's software. Please answer i'm desparate and tired of wasting time.
This thread is about the Samsung Galaxy Nexus which has no external SD and uses a very different storage structure. I'm afraid we can't really help you here. Try the Defy forum.
Sent from my Galaxy Nexus using Tapatalk 2
zzcat said:
FamilyGuy, thanks for the suggestion, the problem seems to be bad permissions and I can't figure out how to fix them. Tried the "fix permissions" from recovery, as well as when booted, to no avail.
Typing
adb shell rm -rf /[directory]
gives me "permission denied"
So tried
chmod 666 /sdcard/.../*
but get an "operation not permitted" message.
So I'm really stuck here...
Click to expand...
Click to collapse
Before chmod the folder, you needed to be root by entering 'su' after 'adb shell' .
It worked from cwm, because cwm gives root access.
Linux/Android are all about permissions.
Sent from my i9250
cmstlist said:
Sometimes the file ownerships get messed up after a cycle of recovering the OS and restoring files.
http://forum.xda-developers.com/showthread.php?t=1515291&page=2
If you have any other directories/files that you can't modify or delete, then boot into CWM recovery, plug in the USB cable, go into adb shell. Also make sure that /data is mounted in the CWM mounts menu. Then:
cd /data/media
chown -R media_rw.media_rw *
This fixed it for me and others.
Click to expand...
Click to collapse
I tried your theory, and it didn't work, still get the message" unable to change ownership permission denied, in recovery mode.
we are still trying to find a solution, here is the discussion: http://www.slatedroid.com/topic/32434-i-got-my-smartq-t20/page__st__260 on Post # 277
rocketero said:
I tried your theory, and it didn't work, still get the message" unable to change ownership permission denied, in recovery mode.
we are still trying to find a solution, here is the discussion: http://www.slatedroid.com/topic/32434-i-got-my-smartq-t20/page__st__260 on Post # 277
Click to expand...
Click to collapse
Sorry to hear that. It sounds like the problem you are having is with a completely different device, so I can't really say why this may be occurring - I don't know how your device's file system is structured. This advice is specifically for the Galaxy Nexus. If a version of CWM exists for your smartQme device, I can't speak to whether it works properly and interprets commands the same way ours does.
cmstlist said:
Sorry to hear that. It sounds like the problem you are having is with a completely different device, so I can't really say why this may be occurring - I don't know how your device's file system is structured. This advice is specifically for the Galaxy Nexus. If a version of CWM exists for your smartQme device, I can't speak to whether it works properly and interprets commands the same way ours does.
Click to expand...
Click to collapse
it's a 9.8 inches tablet branded named called "LePanII'. it has ICS now, before we had Honeycomb 3.2.1.
The manufacture of this tablet did such a bad partitioning that the /system partition was left only with merely 4MB of free space in it.
rocketero said:
it's a 9.8 inches tablet branded named called "LePanII'. it has ICS now, before we had Honeycomb 3.2.1.
The manufacture of this tablet did such a bad partitioning that the /system partition was left only with merely 4MB of free space in it.
Click to expand...
Click to collapse
Good luck with your issue. I doubt it's related to the one we were having on the GNex though.
cmstlist said:
Sometimes the file ownerships get messed up after a cycle of recovering the OS and restoring files.
http://forum.xda-developers.com/showthread.php?t=1515291&page=2
If you have any other directories/files that you can't modify or delete, then boot into CWM recovery, plug in the USB cable, go into adb shell. Also make sure that /data is mounted in the CWM mounts menu. Then:
cd /data/media
chown -R media_rw.media_rw *
This fixed it for me and others.
Click to expand...
Click to collapse
Sorry if my question is dumb.
Does this command solve the problem for all the folders and sub-folders in sdcard? Thank you for your help!
Sent from my Galaxy Nexus
/data/media # chown -R media_rw.media_rw*
BusyBox v1.20.2-jb static (2012-10-25 21:29 +0100) multi-call binary.
Usage: chown [-RhLHP]... OWNER[<.|:>[GROUP]] FILE...
Change the owner and/or group of each FILE to OWNER and/or GROUP
-R Recurse
-h Affect symlinks instead of symlink targets
-L Traverse all symlinks to directories
-H Traverse symlinks on command line only
-P Don't traverse symlinks (default)
I got this after giving the commands from recovery in adb shell.
What does that mean?
Jar3112 said:
/data/media # chown -R media_rw.media_rw*
BusyBox v1.20.2-jb static (2012-10-25 21:29 +0100) multi-call binary.
Usage: chown [-RhLHP]... OWNER[<.|:>[GROUP]] FILE...
Change the owner and/or group of each FILE to OWNER and/or GROUP
-RRecurse
-hAffect symlinks instead of symlink targets
-LTraverse all symlinks to directories
-HTraverse symlinks on command line only
-PDon't traverse symlinks (default)
I got this after giving the commands from recovery in adb shell.
What does that mean?
Click to expand...
Click to collapse
OK solved, I forgot the space before the *!
Worked like a charm!!
Sent from my Galaxy Nexus

[modules] cifs.ko, md4.ko, nls_utf8.ko, stock [4.2 / 4.2.2] 3.4.5-g4e6298b / gaf9c307

I have managed to get CIFS working on stock Nexus 10.
It's quite a bit more problematic on the Nexus 10 than normal.
There are 2 main issues to deal with. Newer versions of the Linux kernel require a UNC variable to be passed to them and the current version of busybox doesn't do this. There is a patch out. I have extracted the patched busybox binary from craigacomez's AOSP Nexus 10 rom.
(Check it out here: http://forum.xda-developers.com/showthread.php?t=1998585 ). Otherwise it should work on the stock mount command if you specify the unc= mount option with the share.
The other issue is the multiuser stuff. If you execute the mount command from inside Terminal Emulator (or a script program) it looks like it mounts ok and you can 'ls' in the directory but it doesn't work for Android apps, they just see an empty directory but if you do it via a 'adb shell' it works fine in Android apps. My theory is ADB is outside of the multiuser stuff. adb actually ships on the device.
1) Unlock bootloader (fastboot oem unlock)
2) Flash recovery adb flash recovery whatever.img
3) Root device (flash CWM-SuperSU-0.98.zip)
4) Install BusyBox (from the market)
5) Copy md4.ko and cifs.ko to device. The files can go anywhere you like. In this example I will just use the root of the sdcard. Some people like them in /system/modules or /system/lib/modules
6) busybox mount -o rw,remount /
7) adb shell
8) Override /system/bin/busybox with the patched version (maybe move it first so it's backed up).
9) insmod /sdcard/md4.ko
10) insmod /sdcard/cifs.ko
11) busybox mount -t cifs -o username=MYUSER,password=MYPASS,unc=\\\\192.168.1.1\\storage //192.168.1.1/storage /data/media/0/cifs/Storage
You will need to manually preform the last 3 commands each time you reboot the device from a adb shell.
NOTE: You can probably get rid of the -o flags completely. In theory the patched version of busybox makes the UNC bit redundant. Possibly you can use the stock busybox with the UNC flag and avoid using the patched one totally. I have just included it to be sure.
Make sure you type 'busybox mount' not 'mount', by default they are different binaries. Otherwise you can remove the /system/bin/mount command and make a new one linking /system/bin/mount to /system/bin/busybox.
Possibly there is some way to get the mount working in the multiuser environment without requiring busybox. If you figure it out please tell ☺
Some threads on the issue:
http://forum.xda-developers.com/showthread.php?p=34397868#post34397868
http://forum.xda-developers.com/showthread.php?t=733490&page=6
http://www.mail-archive.com/[email protected]/msg17650.html
The modules are for 3.4.5-g4e6298b.
EDIT: I added nls_utf8.ko by request
EDIT2: Since adb comes on the device, it is possible to use it to connect to local host:
1) Install cifs modules to /system/lib/modules
2) Install Script Manager from the play store
3) Copy script to device
4) Start SManager
5) Find your script and open it.
6) Tick the su box
7) Hit save
8) Goto home sccreen
9) Add a 'SMShortcuts' widget to your home screen
10) "Add one script shortcut"
11) Choose your script
12) Optionally use this pretty icon ☺
13) Give it a nice name like "Mount Shares"
Here is a shell script...
Code:
#!/system/bin/sh
# Your settings here
USERNAME="USERNAME"
PASSWORD="PASSWORD"
IPADDRESS="192.168.1.1"
SHARE="storage"
MOUNT_POINT="/data/media/0/cifs/Storage"
# If you need to change the mount command edit this
MOUNT_CMD="\
mount -t cifs \
\
-o \
user=$USERNAME,\
password=$PASSWORD,\
unc=\\\\\\\\\\\\\\\\$IPADDRESS\\\\\\\\$SHARE \
\
//$IPADDRESS/$SHARE \
$MOUNT_POINT"
COMMANDS="\
insmod /system/lib/modules/md4.ko; \
insmod /system/lib/modules/nls_utf8.ko; \
insmod /system/lib/modules/cifs.ko; \
$MOUNT_CMD
"
# Starting ADB...
PORT=`getprop service.adb.tcp.port`
setprop service.adb.tcp.port 5555
adb kill-server
adb start-server
stop adbd
start adbd
adb connect localhost
# Make sure we only use the first device (sometimes there is more than one)
SERIAL=`adb devices | head -n2 | tail -n1 | cut -f1`
if [ "$SERIAL" = "" ] ; then
echo "ERROR: Could not find ADB device.";
fi
echo Mounting share via adb...
adb -s $SERIAL shell su root -c "$COMMANDS"
# If you started adb, then stop it here for security:
adb disconnect localhost
stop adbd
setprop service.adb.tcp.port $PORT
start adbd
RESULT=`mount | grep $MOUNT_POINT`
if [ "$RESULT" = "" ] ; then
echo "Mounting failed..."
else
echo "Mounting sucess!"
fi
echo Done... You may close this script window.
EDIT3: Added usbserial.ko, option.ko and usb_wwan.ko
EDIT4: Some users have reported that the need to modify the script to get it working with their version of SU.
EDIT5: I have uploaded modules for 4.2.2, kernel 3.4.5-gaf9c307 but I haven't actually tested them myself (still on 4.2.1). Apparently the adb loophole has also been patched but it is possible to reenable it by putting a RSA key onto the device. Check out this set of instructions here.
EDIT6: I have updated to 4.2.2 on my Nexus 10 and can confirm the new modules work.
You must setup the adbkey or you will get a "device: offline" message. By default adb when adb first runs it tries to create the keys in the $HOME dir which is /data/.android, but the data directory isn't accessible by the 'shell' user.
I got it working simply by setting the HOME variable to /sdcard and restarting the adb server in the script then Android popped up a query (I have update the script above).
IMPORTANT: The Android Media scanner recursively scans folders for media to add the the database so it shows up in programs like Google Music. On large shares this can be a long process and use heaps of battery life. To prevent this add a blank file with the name ".nomedia" to the root of your mount points (or each individual share if you aren't used 1 folder for all your mounts). This will stop music showing up in programs though.
If you find that the device stops responding (the launcher might work but apps fail to load) or you get reboots (often after the previous bug) this is probably due to a bad wifi connection.
Is it posible to make a CWM flash file?
Great
This is great progress, do you know if there is some way I can use the same to mount my usb OTG with ADB shell so that I can read/write to my pen drives from my android apps/file managers?
I have tried using the busybox mount but that didn't work, do I need the modified mount or will none of this help anyway?
alias_neo said:
This is great progress, do you know if there is some way I can use the same to mount my usb OTG with ADB shell so that I can read/write to my pen drives from my android apps/file managers?
I have tried using the busybox mount but that didn't work, do I need the modified mount or will none of this help anyway?
Click to expand...
Click to collapse
Code:
busybox mount -t FSTYPE /dev/block/sda1 MOUNT_LOCATION
Example:
Code:
busybox mount -t vfat /dev/block/sda1 /storage/sdcard0/usbotg
craigacgomez said:
Code:
busybox mount -t FSTYPE /dev/block/sda1 MOUNT_LOCATION
Example:
Code:
busybox mount -t vfat /dev/block/sda1 /storage/sdcard0/usbotg
Click to expand...
Click to collapse
How is this different to what I'm doing already? Mounting this way doesn't work, only the process that mounted it can see the files.
Although I don't have nexus 10, I am having the similar mounting issue on my nexus 7 until I saw this post.
Advise about "adb shell" really helps me resolve the multiuser issue.
Thanks for sharing.
Any chance you could post the nls-utf8.ko for utf8 support?
Thanks!
H3g3m0n said:
1) Unlock bootloader (adb oem unlock)
Click to expand...
Click to collapse
Isn't it fastboot that unlocks the bootloader, and not adb? (unless adb can do it too; I've only heard of fastboot though)
momulah said:
Is it posible to make a CWM flash file?
Click to expand...
Click to collapse
Not a high priority right now as currently you need to do the manual adb shell stuff by hand to get things mounted, a little extra setup work isn't a huge difference.
alias_neo said:
How is this different to what I'm doing already? Mounting this way doesn't work, only the process that mounted it can see the files.
Click to expand...
Click to collapse
Are you mounting in a 'adb shell' or locally in something like terminal emulator? My OTG cable won't be here for a while so I can't really test myself.
weasal said:
Any chance you could post the nls-utf8.ko for utf8 support?
Thanks!
Click to expand...
Click to collapse
Posted, haven't tested it but it seemed to insmod fine.
espionage724 said:
Isn't it fastboot that unlocks the bootloader, and not adb? (unless adb can do it too; I've only heard of fastboot though)
Click to expand...
Click to collapse
Yeh typoed, i'll fix that now.
Currently I'm thinking of ways to hack around the 'adb shell' requirement, as a basic hackish fix would be to make a program that turns on adb wireless, connects to the local device and issues a command. Of course possibly there is a 'proper' way to do mounting. Another lazy way for those with their shares on a Linux system would be a script issue commands to the server via a ssh, getting it to log back into the phone and mount stuff over adb wireless.
alias_neo said:
How is this different to what I'm doing already? Mounting this way doesn't work, only the process that mounted it can see the files.
Click to expand...
Click to collapse
I've been working on getting OTG support natively in my AOSP based custom ROM and I have had some success... check out my ROM for details
H3g3m0n said:
Currently I'm thinking of ways to hack around the 'adb shell' requirement, as a basic hackish fix would be to make a program that turns on adb wireless, connects to the local device and issues a command. Of course possibly there is a 'proper' way to do mounting. Another lazy way for those with their shares on a Linux system would be a script issue commands to the server via a ssh, getting it to log back into the phone and mount stuff over adb wireless.
Click to expand...
Click to collapse
Just wanted to thank H3g3m0n as I was able to successfully mount over adb. Also came up with a workaround to bypass connecting to a PC, grabbed the arm fastboot binary from this thread and installed it on my nexus 7. Used it to connect wireless adb on the 10 and ran the mount commands on the 7.
H3g3m0n said:
Posted, haven't tested it but it seemed to insmod fine.
Click to expand...
Click to collapse
Thanks, I'll give it a try!
You might find my posts #156 and #162 at http://forum.xda-developers.com/showthread.php?t=1781411&page=17 helpful.
Sorry for the noob ? ...
What are the KO's do?
What is the practical use of then.
Sorry I did a little research on then but I could not find an answer in layman terms
Thank you for allowing me to learn.
Sent from my toroplus using xda premium
spdwiz18 said:
Sorry for the noob ? ...
What are the KO's do?
What is the practical use of then.
Sorry I did a little research on then but I could not find an answer in layman terms
Thank you for allowing me to learn.
Sent from my toroplus using xda premium
Click to expand...
Click to collapse
http://en.wikipedia.org/wiki/Loadable_kernel_module
craigacgomez said:
http://en.wikipedia.org/wiki/Loadable_kernel_module
Click to expand...
Click to collapse
That helps allot.... Now i have an understanding of ko's in general. But what specificly do the modules this thread refers to do and the practical use of then. Thanks foot the help.
Sent from my toroplus using xda premium
spdwiz18 said:
That helps allot.... Now i have an understanding of ko's in general. But what specificly do the modules this thread refers to do and the practical use of then. Thanks foot the help.
Sent from my toroplus using xda premium
Click to expand...
Click to collapse
These modules are needed to enable support for CIFS (Windows share) mounts...
spdwiz18 said:
That helps allot.... Now i have an understanding of ko's in general. But what specificly do the modules this thread refers to do and the practical use of then. Thanks foot the help.
Sent from my toroplus using xda premium
Click to expand...
Click to collapse
Basically you can setup a shared folder from a remote computer. It allows you to have files on another system accessible as if it was part of the internal storage in the device.
Just found out that Android ships with the adb binary on the device itself (after crosscompiling it myself :/, oh well the experience was useful).
It should be possible to setup a script to start the adb server, connect to the localhost and execute the mount without too much difficulty.
Ok, added a script and instructions to the front page for simple on tablet mounting.

[GUIDE] Authorize adb with broken digitizer.

So, yesterday my brothers Pit bull, Maggie, knocked my GS3 out of my hand and onto the cement driveway...
The result? A shattered screen, cracked display, and broken digitizer.
I wanted to perform a backup of my current rom (CM11 Latest Nightly) but figured out that my computer was not authorized for ADB.
Well, I wasn't about to let that stop me. Here is what I did to fix that little problem.
The following guide assumes that you already have the drivers for your phone installed and also that you have ADB set up.
I have only tested this on TWRP 2.7.1.0. I do not know if it will work on other recoveries.
First things first, power off your device by doing a battery pull.
This is the best way to ensure you are fully powered down since you can't see the screen.
Next, boot your device into recovery by pressing and holding the power, home, and volume up buttons.
Once you feel the device vibrate, release the buttons.
Plug in your phone and pull up a command prompt window.
Check and see if the device is being recognized by running
Code:
adb devices
.
Connect to the device by running
Code:
adb shell
.
Next, to mount the data partition where the files we need to edit are located, run the following code.
Code:
mount -t ext4 /dev/block/mmcblk0p15 /data
It is very important you type this exactly as written. Double check a few times to be sure.
Exit the shell by typing
Code:
exit
Now, we need to find our computer's adb key. For me, it was located in "C:\Users\%Username%\.Android\".
The file we are looking for is adbkey.pub.
Push this file to your device using
Code:
adb push adbkey.pub /sdcard/adbkey.pub
Pull up another shell by typing
Code:
adb shell
Remove the current adb key by typing
Code:
rm /data/misc/adb/adb_key
Insert the key into your phone's authorized keys by typing
Code:
cat /sdcard/adbkey.pub >> /data/misc/adb/adb_keys
Exit the shell
Reboot your device with
Code:
adb reboot
Profit! :good:
Hey buddy! Great tutorial! However, I'm getting an error trying to mount mmcblk0p15. I get the error:
"mount: mounting /dev/block/mmcblk0p15 on /data failed: Invalid argument"
Do i need super user privilege do to this?
Thanks! Great tutorial, btw.

Help with mounting windows shared drive for use by any app

Hi,
The goal is make my shared windows folder available on FireTV to be accessed by media applications. First attempt is for music
This is AFTV 1. It is rooted and has busybox. It has TWRP and 5.2.1.0_r1 pre-rooted stock image. I searched around and found couple of useful threads.
Run script on FireTV boot
mount cifs share from nas
Based on the first thread, I have created my script that I plan to run in /system/etc/install-recovery.sh
My current problem is that the script can be only run after I su (become root)
The script runs successfully, but the files are only available on adb shell or putty when I am root. They are not available to regular user or any apps.
Code:
#!/system/bin/sh
sleep 15
mkdir /mnt/obb/music
chmod 777 /mnt/obb/music
sleep 20
busybox mount -o noperm,unc=\\\\192.168.1.56\\music,username=xx,password=xx -t cifs none /mnt/obb/music
Second problem is that when I restart firetv, this does not seem to have done anything. But I have the fix the first problem first. I need any of the apps to be able to access the mounted shared drive.
Thanks
ETA: post #10 in thread [Q] mounting a windows shared folder to android fs seems to be the same problem, but I did not understand the suggested solution

Categories

Resources