Tuesday, January 01, 2013

Mounting NTFS in Xperia Neo V via USB-OTG (Read / Write both)

For newer devices (I don't know how to categorize them, maybe 2012 devices) it's easy to mount any filesystem in both R/W mood for Xperia series. But a little older devices (maybe all the others?) it's not so easy. Some support it partially and some don't (totally). My phone is Xperia Neo V and it doesn't seem to support that. Had a hard time to find this workaround but it's effective, FINALLY !!! :D
To mount NTFS in full support you need two things. A set of modules and the mount script. How to do that follows.
Pre-requisites:
1. Rooted device (you can find tutorials on that)
2. CWM installed (you can use X-Parts from Play Store
3. Script Manager

Steps:
1. First download this file. It is the ntfs-3g modules set compiled for Android.
2. Copy the zip to your SD-Card, in a folder that you can easily recognize by name
3. Reboot into recovery, to do this first turn your phone off. Then power it up and wait for the Sony Logo. When it comes keep pressing the volume down key repeatedly (the key maybe different for another device, do a little Googling to know which).
4. Now you're in CWM (hopefully, you'll see screen with a list of things). Choose 'install zip from sdcard'. Choose the zip file from the sdcard. It will show some messages. If all goes well the last line should be something like "....done"
5. Now supposing the modules have been installed correctly copy this script and save it with the name "MountScript.sh" in your SD-card.
#!/system/bin/sh
#
# Mount USB OTG NTFS Storage device - shardul_seth@xda
# Mount point checking added by - tafhim

# load fuse support
if [ ! -e /system/lib/modules/fuse.ko ]; then
 busybox echo -e "WARNING: fuse module not found!\nIs fuse built into kernel?"
else
 insmod /system/lib/modules/fuse.ko 
fi

# mount partitions
sdn=0
ls -l /dev/block/sd??
if [ $? -eq 0 ]; then
 for sd in `ls /dev/block/sd??`; do
  if [ -d "/sdcard/usb_drive_$sdn" ]; then
   umount /sdcard/usb_drive_$sdn
      rm -R /sdcard/usb_drive_$sdn
  fi 
  if [ ! -d "/sdcard/usb_drive_$sdn" ]; then        
   mkdir /sdcard/usb_drive_$sdn
   chmod 777 /sdcard/usb_drive_$sdn
   ntfs-3g -o umask=0 $sd /sdcard/usb_drive_$sdn
   if [ $? -ne 0 ]; then
    busybox mount -o umask=0 $sd /sdcard/usb_drive_$sdn
    echo "$sd mounted on /sdcard/usb_drive_$sdn"
   else
    echo "$sd (NTFS) mounted on /sdcard/usb_drive_$sdn"
   fi
   sdn=`expr $sdn + 1`
   if [ ! -z $SM_VERSION ]; then echo showToastLong "$sdn Drives mounted!" >&$SM_GUIFD; fi
  fi
 done
else
 echo "No drive found! Exiting.."
 if [ ! -z $SM_VERSION ]; then echo showToastLong "No drive found! Exiting.." >&$SM_GUIFD; fi
 exit 1
fi
exit 0
6. Connect your drive using the OTG cable.
7. If not installed download Script Manager from the Play Store. Run it and browse to the place where you saved the script. Select it
8. You don't have to change anything just select the "su" option that has an Android Skull (Pirate-ish) over it. Now select "Run" from the top-most menu.
9. If you see the message "1 drive mounted" or similar, you're done. Just go to the SD-card and drag down and you'll see the folder "usb_drive_0". If you have multiple partitions, all will be mounted.

You need to do all these only the first time. From later on, you only need to follow steps 6-9 only :)

For help on rooting / CWM Installation / etc head over to XDA Developers Forum.
For help on using FlashTool in Linux read this.

Xperia Neo V specific stuff:
Some nice kernels for Xperia Neo V are the Suave Kernel, the Super Stock Kernel and the Alliance Kernel MOD.
You can download kernel .562 and kernel .587 for Xperia Neo V MT11i. You need these to root your device using this method
The DooMLord rooting kit (windows) is available here
The DooMLord rooting kit (linux) is available here
The CWM Installer (windows) is available here
X-Parts apk is available here

3 comments:

  1. If you are having problems running this script then post a comment....
    It has certain issues for people....

    ReplyDelete
  2. If you have problems, try installing "Busybox" from Play Store....might help. Post about it here.

    ReplyDelete
  3. Anonymous3:26 PM

    script gives error ...syntax error it shows .. can u pls solve dat ..it shows at line 38

    ReplyDelete

Post your comment here. If you want to say something about programming problems, scripts, software etc, please try to be as descriptive as possible.

Connect Rapoo MT750S with Linux (Tested on Manjaro)

 I bought this obvious copy of MX Master 2S in hopes of having the device switching functionality along with a lightweight body because I ha...