[Android Apps and Games] GokulNC:
Changelogs :

To Do in Future:

* Reduce app size

* Automatically start app when USB is connected

* Create Notification when UMS is enabled, to unmount it easily.

* Force Mediascan after Unmount

* Add Dark Theme

* Enable ISO image mounting by selecting a compatible image.

* Find a way to enable ADB alone (in insecure mode)

* Switch completely to my RootShell class from Stericson's RootTools

Click here for latest changelogs: https://github.com/GokulNC/USB_Mass_Storage_Enabler/blob/master/Changelog.txt

v1.5.1 (25-Aug-2016):

-- Added Notification when UMS is enabled to unmount easily.

--fixed this bug in Advanced Settings

-- Removed the AsyncTask which caused high CPU utilization (to get USB Connection Status). Will use a BroadcastReceiver for that in the next Version.

v1.5.0 (21-Aug-2016):

-- Updated to Material Design by [MENTION=4075919]vikasb32[/MENTION]

(No changes other than UI)

* Report bugs if any

v1.4:

-- No need to manually unmount memory card (only required if memory card device block (/dev/block/mmcblk1) is directly used, instead of the particular partition mmcblk1p*)

-- Added Advanced Settings (in options) to choose the LUNs and partitions blocks manually from an automatically optimized searched list..

If you're choosing mmcblk1p1, you no need to unmount/remount from Storage Settings.

If you're using mmcblk1, unmount is required.

(Similarly for vold blocks, choose the right one.

For example in my phone, if there are 179:64 and 179:65 in /dev/block/vold/ , 179:64 refers to mmcblk1 and 179:65 refers to mmcblk1p1 )

v1.3:

-- App now automatically checks for External SD Card and presence of FUSE drivers.

-- Partial fix for devices in which it appears as CD Drive in Computer.

-- Properly Handled Exceptions and added Warning messages

v1.2:

--Optimized Code to remove stupid hackarounds & Fixed Bugs

--Added 'Help' page

--Used ProGuard (app size reduced to 34KB)

v1.1:

-- App now automatically disables SE Linux Enforcement thanks to [MENTION=6015092]out386[/MENTION]'s idea

-- Added option to unmount Mass Storage

-- Changed the background to black

F.A.Q. :

1. "There's no drive for Internal Storage, only the memory card is there."

Solution:

This app does not mount internal storage as UMS due to certain restrictions.

(The Internal Storage is actually present inside the /data partition which is formatted as EXT4/F2FS.)

This app can mount only the memory card. (You can try the USB Sharer app (link at bottom) for that purpose.)

2. An empty Removable USB Disk appears, upon clicking which appears "Please insert disk".

Solution:

Go to Advanced Settings and try using some other device block if any..

Also, make sure memory card is

a. inserted & formatted in recognizable file system format like FAT32, vFAT or exFAT.

b. not encrypted / adopted as Internal Storage (Since Android 6.0 Marshmallow, by which it's formatted as an EXT4 partition and encrypted).

3. It shows up as a CD-ROM or DVD (Optical) drive instead of USB (flash) drive, upon clicking which appears "Please Insert Disk / No Disk Inserted".

4. "It's working, but the drive is mounted as read-only."

(This issue was reported for Asus Zenfone 2)

Solution:

Actually, one of the main purpose why this app needs to disable SE Linux is to remove the write-access restriction on memory card.

There might be occasions when even after setting SE Linux to Permissive, the memory card is mounted as read-only drive. In that case, follow these steps:

i. Unmount the memory card from the Storage Settings.

ii. Now 'Enable UMS' and see if you have write-access.

iii. After disconnecting USB, remount/mount the memory card again from Storage Settings.

5. App Force Close: "Unfortunately, app has stopped".

Please send the logcat.

6. "I've tried everything possible & I'm helpless" :

Solution:

You can also try this if there's TWRP recovery for your device:

i. Boot into TWRP recovery & connect to USB.

ii. Select the option 'Mount'

iii. Click 'Mount USB Storage' (or something similar).

If that didn't help, you can also try the similar apps below:

Alternate Apps :

If this app doesn't work, there are several other alternative apps (by other developers) you can try:

(Might require SE Linux Mode set to 'Permissive')

Libraries Used :

1. RootTools by Stericson

2. Material Drawer by Mike Penz

3. NoNonsense-FilePicker

4. Firebase