[TOOL] DirectoryBind - move data to external_sd (GameLoft, Shadowgun etc.) ROOT req.
Hi all !
This is my application to bind directories located on external_sd to directories on internal memory (/sdcard/). This way You can transfer large application data directories to external_sd. Could be usefull with ex.: games from Gameloft, other like Shadowgun, applications like CamScanner.
* Requires ROOT !
* Aimed at specific functionality and features (not idiot-proof)
* You can create any number of Data -> Target directory pairs, mount them manually or choose to mount them on system boot (checkbox does that).
* On/Off switch controls whole mount-on-boot function.
* Diskette icon indicates if mount operation was successful, by taping it You can mount/umount entry.
* Icon changes if application is using mounted entry
* DirectoryBind can tell what application is using this entry (tap at entry in use)
* Long tap on entry (disabled) brings edit/delete window
* App auto umount all entries on USB connected and remount after USB disconnected (for now via BroadcardReceiver UMS_CONNECTED / UMS_DISCONNECTED)
* App shows notification and vibrates if auto umount on USB fails
* If mounting all checked entries (ex. on boot) app is waiting specified time (def. 60 sec) if data directory is not available (happens sometimes at boot)
* Tested sucessfully with Asphalt 6, Shadowgun, DeadSpace, CamScanner
* GRAY - entry disabled
* RED - mount failed
* BLUE - waiting for data availability
* GREEN - mounted OK
* fixed FC if screen orientation changes during copy/delete
* more extensive logging
* ?? fixed problem with entries marked green on boot, but not mounted (repotred by stone_ship)
* ?? fixed problem with random FC on ICS (reported by Thomas)
* auto create target directory action moved from "bind" action to "add/edit entry" action due to possible problems when data outside "/sdcard"
* added option to control if mount service is run as sticky
*** for now older version kept in case I broke something ***
please do not test data transfer files features on sensitive data
they seem to work OK but are not throughly tested
Compiled using API android 2.3.3. Attached as self-signed development apk package. No market link for now.
* Remember ! All entries must be umounted before attempting to use MASS STORAGE MODE. Application will try to do it automatically on USB CONNECT. If it fails and You'll use MASS STORAGE MODE sdcard partition WILL CRASH and reboot will be required to restore normal operations ! Main cause of that is appplication using mounted folder. You have to close that application and retry to umount entry.
* This application requires *root privileges* so it has full control over entire system! Uses root privileges to invoke "mount", "umount", "lsof" and "grep" shell commands via su and it DOES NOT write anything on system partitions.
It DOES NOT apply any permanent changes to the OS, however I cannot guarantee it does not contain BUGS and security issues. I'm not responsible to any damage it can cause. Use it AT YOUT OWN RISK !
application permissions explained
WRITE_EXTERNAL_STORAGE - application automatically creates target path, copy existing files from target to data
RECEIVE_BOOT_COMPLETED - application can perform automatic bind on boot
VIBRATE - application creates notification alert with vibrations when cannot umount all locations on USB connect
READ_LOGS - dump own logcat to file
*ROOT* - invoking "mount", "umount", "lsof" and "grep" commands via su
As every program can contain bugs so this one too. I'm very grateful if someone find and report a bug. No report will go unattended and I'll look into each case. There is just one thing, often report even very detailed is not enough so application has built in logging (logcat) capability - it can be enabled in Preferences.
Logcat can be dumped to file from main app window: menu -> dump logcat to file
So when reporting bug please attach that file to Your post
!!! IF YOU HAVE ISSUE WITH ENTRIES DISAPPEARING AFTER REBOOT !!!
1. In preferences check "alternate dbase mgmt" and try again
2. Report in this thread with informations
- does "alternate dbase mgmt" help ?
- are you using any taskkiller
- what ROM are you using
I need to know how many people have this issue, maybe it would be good to make "alternate dbase mgmt" default mechanism.
Sorry for that but I'm still learning and doing by best to make this app as much compatible and usable as possible. This is my first public app for android