Truecrypt like functionality on Android phones
Copyright © 1998-2015 Nemesis][
Version 2.5.1 Alpha Download
Use at your own risk!
This is a VERY alpha build designed to run on 4.4.2+. This works on my rooted Samsung SM-T700 running stock 4.4.2.
A few notes:
- The default encryption cipher has been changed from "aes-plain" to "aes-cbc-essiv:sha256" to prevent watermark attacks. If this fails please revert back to "aes-plain" on your device.
- Make sure you set the volumes mount point to a NON EMULATED path! For me mounting on /mnt/extSdCard works. I'm using "NextApp SDFix" that modifies the platform.xml and allows apps to use the media_rw group.
- This has been tested ONLY with Chainfires version of SU! This is needed to modify the mount master namespace. I'm not sure if this works on other SU controllers!
- On MY device only FAT works properly! EXT2 volumes work but are only accessable via root!
Click here to download LUKSManager.apk (1.02 MiB)
Downloaded 336 times
Version 2.4 DownloadTo download please visit:
OverviewEver wanted an encrypted folder on your Android device?
LUKS Manager provides on-the-fly encryption (AES by default) to virtual folders on Android devices. The virtual folders can be dynamically mounted, unmounted, created and deleted as needed.
Volume and loopback device data are stored in: /mnt/sdcard/luks/.data
And the encrypted volumes are mounted at: /mnt/sdcard/luks/<volume>
This package contains:
- A statically compiled and stripped version of cryptsetup for the ARM using the tools provided by the Guardianproject.
- A statically compiled and stripped version of mkdosfs from dosfstools package for the ARM7.
- A bash shell script called "luks" that does volume management.
- And a native java app that provides a GUI interface to the luks script, a basic file explorer and simple text editor.
The Android device must:
- Be rooted
- Have a kernel that supports secure dm-crypt modes (CONFIG_DM_CRYPT) and loopback devices
- Have BusyBox installed
- Have SuperUser installed
Android Terminal Emulator
Fixed lockup when creating volumes with FAT support disabled.
Fixed text editor menu ordering.
Added support for Samsung preferences path.
Fixed false volume notifications on non-rooted phones.
Notification fixes when volumes are created, mounted and removed.
Removed time stamp on volume mount notifications.
Set minimum volume size to 3MB in luks script.
Improved volume unmount reporting.
Symbolic links to devices may be used as containers.
Modified the cut command to work with more versions of busybox.
Fixed a bug dealing with volume removal when launching the luks script manually.
Rewrote code sections due to moderate source corruption. *sigh*
About text changes and updates.
Major rewrite to the luks shell script and GUI app to support user defined volume locations.
Encryption cipher and keysize are now user definable. (kernel support required)
Moved storage of volume information from /mnt/sdcard/luks/.data to /data/data/com.nemesis2.luksmanager/.data
Prompts to upgrade if loop device files are found in SDCard .data directory.
Removed top level restriction on file explorer activity.
Default file system changed from EXT4 to EXT2.
FAT file system support now enabled by default.
Added volume mount and unmount desktop shortcuts.
Added notification when volumes are mounted. (Can be toggled off in preferences)
Added landscape support to the main and volume edit activities.
Added basic SDcard support to install binaries routine.
(Fixes java.lang.NullPointerException on binary install.)
Added toggle to disable binary hash checks on startup. This enables
customized luks scripts and/or binaries.
Small fix to application initialization. (hopefully fixes odd reboot
issue on some devices)
Attempts to unmount volumes on ACTION_SHUTDOWN and MEDIA_EJECT broadcasts.
Additional checks and error handling if no volumes exist.
Additional error handling in luks script during volume mounting and creation.
Added required BusyBox applet checks on startup.
About Dialog additions / changes.
Small text changes (formatting and typo fixes).
Recompiled lm.crypsetup binary under android-ndk-r6b.
Hopefully this will stop segfaults on various devices.
When volumes are mounted the widget will turn red and display the number of currently mounted volumes.
A single touch unmounts all volumes.
Rewrote luks script and internal routines to use busybox all the time to avoid toolbox/busybox symlink conflicts.
Added the ability to password protect the create/remove buttons, volume properties and preferences dialog.
Improved error handling in luks script on mount.
Added additional scripts: pre-mount and pre-unmount.
Added volume management Activity.
Volume mount points are now user defineable.
The volumes loopback device is now user definable.
Added an internal file editor (to edit bash scripts).
(Editor can be used outside of LUKS Manager to edit files).
Fixed Force Close when mounting with a blank password.
Added Preferences Activity.
Now allows FAT formatted volumes.
(works w/FreeOTFE on windows)
Improved error handling/cleanup on failed volume creation.
Added lm.mkdosfs binary to assets.
The lm.mkdosfs binary is sha1 hashed and replaced if out-dated or changed.
Remove Binaries nows includes the lm.mkdosfs binary.
Added additional menu options to Activities.
Increased debug logging and added system probe.
(Don't enable for normal usage!)
Added option to launch Explorer on volume mount.
Redirected stderr to stdout using redirectErrorStream.
Added validation checks to volume creation. (non-blank, sanitize filename).
Moved to dp units instead of pixels for display scaling.
Fixed a few items that needed to be .destroyed (oops).
SD Card path fix (typo fix).
File Explorer now saves/recalls list view position on directory changes and when opening files.
About Dialog updates.
Added run script on mount/unmount: <volume>.mount.sh and <volume>.unmount.sh
Added su/root check on startup.
Renamed cryptsetup to lm.cryptsetup to avoid overwriting pre-existing copies.
LUKS script will use cryptsetup if it exists, solves Samsung Galaxy S2 issues.
(Users will need to manually restore the cryptsetup binary if it was overwritten!)
Added sanity checks to File Explorer. (path /mnt/sdcard must exist)
File Explorer now saves and restores path on rotation change.
Moved about html to assets file instead of an inline string.
Removed Internet Access Permission.
The cryptsetup binary is no longer UPX compressed in an attempt to improve compatibility.
The cryptsetup and luks binaries are now sha1 hashed and replaced if outdated or changed.
"Unmount All" has been moved to an AsyncTask.
When mounted all volumes will get chmod 777 applied recursively to avoid file permission issues.
Numerous improvements and changes to the internal file explorer.
Slight wording changes to activity titles and About Dialog.
Added change log to About Dialog.
Added file explorer
Updated the About Dialog
First Market Release
Updated and optimized the icon and background images
Updated the About Dialog
Updated failure logging to syslog
Now quotes passwords (oops)
Spaces in volume names are converted to underscores: _
About dialog updated
Added about/homepage menu items
Added "Remove Binaries" to remove /system/bin files: luks and cryptsetup
Added explore menu option to explore to volume location (requires Astro Filemanager)
Moved binaries into apk and added extractor/binary installer
First public release
Source Code for GPL complianceDownload only if you're going to attempt to compile and build the bundled binaries for your device.
Most end users do NOT need to download this. If you want the application please download it from the Android Market.
For GPL compliance the complete source code used to build the cryptsetup binaries can be downloaded here:
Click here to download cryptsetup_source.tar.bz2 (7.98 MiB)
Downloaded 914 times
For GPL compliance the complete source code used to build the mkdosfs binaries can be downloaded here:
Click here to download dosfstools-3.0.11.tar.gz (80.51 KiB)
Downloaded 689 times
Privacy StatementThe LUKS Manager application does not gather or report back any information.
Last Modified: 03:55 PM on Monday May 25th, 2015