yashsingh1/xdaforums huggingface dataset:
[Captivate Q&A, Help & Troubleshooting] charon420:
I believe Icecream will also offer device encryption.
[Captivate Q&A, Help & Troubleshooting] Lounes653:
Truecrypt search on market.android.com returns LUKS Manager

Description

LUKS Manager provides on-the-fly encryption (AES by default) to virtual folders on Android devices. These virtual folders can be dynamically mounted, unmounted, created and deleted as needed. Similar to Truecrypt in functionality.

Note: Truecrypt and LUKS Manager volumes are not cross-compatible.

Try it and let us know how it worked.
[Captivate Q&A, Help & Troubleshooting] Blu3Fr0g:
It requires rooting the device and I am just not interested in doing that at the moment.
[Captivate Q&A, Help & Troubleshooting] pdwOnline:
Of course truecrypt could run on a Android device. i had something similar years ago in my Windows mobile phone. Since android runs om a Linux later later that must be possible..
[Captivate Q&A, Help & Troubleshooting] Veight:
If it were to allow hidden full disk encryption then you would want it to ask you the password before loading the rom so you could have a backup rom in anycase. Or when it boots just have it ask for a pass with no hidden partition. *shrug*
[Captivate Q&A, Help & Troubleshooting] bisq:
If sdcard emulation is not mandatory you can try Eds (it is available on android market).
[Captivate Q&A, Help & Troubleshooting] clesenne:
TrueCrypt ported to Android

I've started porting TrueCrypt to Android. It's part of Cryptonite's latest alpha (0.4.0, see https://code.google.com/p/cryptonite/). The following restrictions apply at this time:

No GUI - command-line access only.

Requires FUSE. Most CyanogenMod ROMs except of Motorola builds support FUSE.

Requires root.

Only works with local volumes. No cloud storage support.

To get started, select the "expert" tab, click "Start root terminal", then use truecrypt from the command line.

Thanks for testing.
[Captivate Q&A, Help & Troubleshooting] dqb:
Thank you clesenne.

I just started to cross compile, and before to port Truecrypt to Android I searched if this has been done.

A quick little test :

modprobe fuse

mkdir /sdcard/test

cd /sdcard/test/

truecrypt -c ( I created normal volume : size 4M; Encryption algo : AES; Hash algo: RIPEMD-160; FS: FAT; && hidden volume with same configuration )

truecrypt /sdcard/test/test ( mount normal volume, put a file in it )

truecrypt -d ( dismount all volumes )

truecrypt /sdcard/test/test ( mount hidden volume, put another file in it )

Result : Normal volume and Hidden volume works perfectly ! :)
[Captivate Q&A, Help & Troubleshooting] SprigganMaster:
Wow!

Thanks so much!

I will test it tonight and report any issue.
[Captivate Q&A, Help & Troubleshooting] bravomail:
How is this different from built-in Android encryption?
[Captivate Q&A, Help & Troubleshooting] clesenne:
The short answer:

Built-in Android encryption encrypts your whole phone. TrueCrypt lets you create virtual encrypted disks that you can use across all supported devices, such as your PC and your mobile phone.

The long answer:

The purpose of the built-in encryption is to protect your /data partition in case an attacker gains access to your phone while it's not booted up. Android encrypts your whole /data partition at the kernel level [1].

The purpose of TrueCrypt is to create virtual encrypted disks that are contained within a single file [2]. You can store these at arbitrary locations, such as on your sd card or on USB drives, and access them from any device that supports TrueCrypt. Besides, it features some advanced encryption methods so that your data might even withstand key disclosure legislation [3].

Sorry - I'm not allowed to post links as a forum rookie.

[1] source.android.com/tech/encryption/android_crypto_implementation.html

[2] truecrypt.org

[3] truecrypt.org/docs/?s=plausible-deniability
[Captivate Q&A, Help & Troubleshooting] naklinaam:
Error Message - file name too long while trying to mount truecrypt file

Hi,

I tried mounting a truecrypt file but was unable to do it.

Kept getting a message about the file name being too long.

Here is the detailed scenario:

What I am trying to mount:

1. Using a rooted Nexus One with CM 7.

2. Created a truecrypt file on ubuntu and transferred to the phone using dropbox

3. Using just a password and no file to encrypt/decrypt the file

I initially tried to mount it to a non existent destination (/media/truecrypt1) when even the /media folder does not exist on my phone

Got the filename too long error.

Renamed the file from data_transfer to data (there is no extension)

Tried again, same error.

Created a folder on my sd card called /mnt/sdcard/truecrypt

tried mounting 'data' to this folder, still the same error.

Am I missing something? is it a generic message for all errors?

I finally created a new empty truecrpty container of only 5 MB and added a simple tect file in it.

Even this did not mount.

Does anyone have any suggestions on how I might debug/resolve this?

Is there any more information I should have shared in order to help the gurus figure out whats going on?

I have tried to look through this thread and did not seem to find anyone reporting this issue, so please pardon me if you think I am being a lazy noob. I am definitely not trying to.
[Captivate Q&A, Help & Troubleshooting] clesenne:
Thanks for your bug report. I've started a new issue on the project site:

https://code.google.com/p/cryptonite/issues/detail?id=16

Could you please post the commands that you used on that page so that I can reproduce the bug?
[Captivate Q&A, Help & Troubleshooting] naklinaam:
1. Downloaded cryptonite from market.

2. Linked to my dropbox account (for now I have unlinked it and am using just the local file on my sd card)

3. navigate to the expert tab

4. start root terminal (I got a message about the outdated terminal emulator and downloaded the latest version from market)

5. got a message about superuser request, which i allowed

6. the terminal has the following

$export PATH=/data/local/bin:$PATH
$ export PATH=/data/data/csh.cryptonite:${PATH}; su;
#

7. I typed

# truecrypt /sdcard/MyData/testcrypt.tc /mnt/sdcard/Folder

I get a different error message now while trying to replicate it:

Failed to set up loop device:

/sdcard/Android/data/csh.cryptonite/.truecrypt_aux_mnt1/volume.

Not sure what I did differently this time.

I need to head out for some time, but will come back and try with the original file (data) and update with the results.

Thanks for promptly responding to my issue
[Captivate Q&A, Help & Troubleshooting] dqb:
Hi,

You need FUSE !

If you have FUSE as module, load it by typing in a root terminal :

modprobe fuse

And retry to mount.
[Captivate Q&A, Help & Troubleshooting] clesenne:
Did you actually try that? I.e.

modprobe fuse

in a root terminal before you try to mount a truecrypt volume?

If that doesn't work, what's the output of

ls /dev/fuse
[Captivate Q&A, Help & Troubleshooting] naklinaam:
That does seem to be the issue.

I dont have fuse.

#modprobe fuse
modprobe: module fuse not found

#ls /dev/fuse
/dev/fuse

Will now try to figure out how to get fuse and update once i am able to try it with the module installed.

I had read about fuse being required, but the same post also seemed to suggest that CM already has fuse, and since I am using CM7, I assumed I had it.

UPDATE: further search seems to indicate I fuse needs to be compiled into the kernel to start with. Limited google search did not turn up any precompiled version with fuse for good ole Nexus one, so I guess I am stuck with what I have for now.

Thanks to everyone for helping me understand what the issue is.

I am still hopeful I will be able to find the answer, but might take some more hunting till i find a precompiled fuse module. Dont feel confident enough to try and compile it myself.
[Captivate Q&A, Help & Troubleshooting] clesenne:
Given that /dev/fuse exists on your system, chances are that your kernel supports fuse and you don't have to load a kernel module.

What's the output of the following commands:

gunzip -c /proc/config.gz | grep CONFIG_FUSE_FS
losetup -f
cat /proc/mounts # only the last 2 or 3 lines of output
ls -l -a /sdcard/Android/data/csh.cryptonite/

Thanks for your patience. This information is really useful to make TrueCrypt work on more devices.
[Captivate Q&A, Help & Troubleshooting] naklinaam:
Good mornign, I am back from slumberland

Firstly, thanks for sticking with me through this. Also, I am really happy to help debug this. My first chance to give back (in a real small way) to this community that gives so much.

here is the results you asked for

# gunzip -c /proc/config.gz | grep CONFIG_FUSE_FS
CONFIG_FUSE_FS=y
# losetup -f
# cat /proc/mounts

/dev/block/dm-45 /mnt/asec/com.xinlu.gvdial-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/dm-46 /mnt/asec/com.snrblabs.grooveip-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/dm-29 /mnt/asec/csh.cryptonite-1 vfat ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
# ls -l -a /sdcard/Android/data/csh.Cryptonite
d--xrwxr-x 3 system sdcard_r 32768 Apr 7 21:06 .
d--xrwxr-x 14 system sdcard_r 32768 Apr 7 22:15 ..
d--xrwxr-x 2 system sdcard_r 32768 Apr 5 16:03 cache
#

PS: the cryptonite entry in /proc/mounts was somewhere in the middle, hunted for it and added to the bottom of this list so you can see it.
[Captivate Q&A, Help & Troubleshooting] clesenne:
Good. That means your kernel has been compiled with FUSE support and you don't need to load an external module.

That's probably causing the problem: You don't have any spare loop device files. What's the output of

# losetup
# ls -la /dev/block/loop*

If you don't have any loop device files under /dev/block, try

# find /dev -name "*loop*"
[Captivate Q&A, Help & Troubleshooting] naklinaam:
# losetup -f
# ls -la /dev/block/loop*
brw------- 1 root root 7, 0 Apr 7 20:47 /dev/block/loop0
brw------- 1 root root 7, 1 Apr 7 20:47 /dev/block/loop1
brw-rw---- 1 root root 7, 10 Apr 7 20:48 /dev/block/loop10
brw-rw---- 1 root root 7, 11 Apr 7 20:48 /dev/block/loop11
brw-rw---- 1 root root 7, 12 Apr 7 20:48 /dev/block/loop12
brw-rw---- 1 root root 7, 13 Apr 7 20:48 /dev/block/loop13
brw-rw---- 1 root root 7, 14 Apr 7 20:48 /dev/block/loop14
brw-rw---- 1 root root 7, 15 Apr 7 20:48 /dev/block/loop15
brw-rw---- 1 root root 7, 16 Apr 7 20:48 /dev/block/loop16
brw-rw---- 1 root root 7, 17 Apr 7 20:48 /dev/block/loop17
brw-rw---- 1 root root 7, 18 Apr 7 20:48 /dev/block/loop18
brw-rw---- 1 root root 7, 19 Apr 7 20:48 /dev/block/loop19
brw------- 1 root root 7, 2 Apr 7 20:47 /dev/block/loop2
brw-rw---- 1 root root 7, 20 Apr 7 20:48 /dev/block/loop20
brw-rw---- 1 root root 7, 21 Apr 7 20:48 /dev/block/loop21
brw-rw---- 1 root root 7, 22 Apr 7 20:48 /dev/block/loop22
brw-rw---- 1 root root 7, 23 Apr 7 20:48 /dev/block/loop23
brw-rw---- 1 root root 7, 24 Apr 7 20:48 /dev/block/loop24
brw-rw---- 1 root root 7, 25 Apr 7 20:48 /dev/block/loop25
brw-rw---- 1 root root 7, 26 Apr 7 20:48 /dev/block/loop26
brw-rw---- 1 root root 7, 27 Apr 7 20:48 /dev/block/loop27
brw-rw---- 1 root root 7, 28 Apr 7 20:48 /dev/block/loop28
brw-rw---- 1 root root 7, 29 Apr 7 22:14 /dev/block/loop29
brw------- 1 root root 7, 3 Apr 7 20:47 /dev/block/loop3
brw-rw---- 1 root root 7, 30 Apr 7 22:14 /dev/block/loop30
brw-rw---- 1 root root 7, 31 Apr 7 22:14 /dev/block/loop31
brw-rw---- 1 root root 7, 32 Apr 7 22:15 /dev/block/loop32
brw-rw---- 1 root root 7, 33 Apr 7 22:16 /dev/block/loop33
brw-rw---- 1 root root 7, 34 Apr 7 22:16 /dev/block/loop34
brw-rw---- 1 root root 7, 35 Apr 7 22:16 /dev/block/loop35
brw-rw---- 1 root root 7, 36 Apr 7 22:16 /dev/block/loop36
brw-rw---- 1 root root 7, 37 Apr 7 22:17 /dev/block/loop37
brw-rw---- 1 root root 7, 38 Apr 7 22:17 /dev/block/loop38
brw-rw---- 1 root root 7, 39 Apr 7 22:18 /dev/block/loop39
brw------- 1 root root 7, 4 Apr 7 20:47 /dev/block/loop4
brw-rw---- 1 root root 7, 40 Apr 7 22:18 /dev/block/loop40
brw-rw---- 1 root root 7, 41 Apr 7 22:18 /dev/block/loop41
brw-rw---- 1 root root 7, 42 Apr 7 22:18 /dev/block/loop42
brw-rw---- 1 root root 7, 43 Apr 7 22:19 /dev/block/loop43
brw-rw---- 1 root root 7, 44 Apr 7 22:19 /dev/block/loop44
brw-rw---- 1 root root 7, 45 Apr 7 22:20 /dev/block/loop45
brw-rw---- 1 root root 7, 46 Apr 7 22:49 /dev/block/loop46
brw------- 1 root root 7, 5 Apr 7 20:47 /dev/block/loop5
brw------- 1 root root 7, 6 Apr 7 20:47 /dev/block/loop6
brw------- 1 root root 7, 7 Apr 7 20:47 /dev/block/loop7
brw-rw---- 1 root root 7, 8 Apr 7 20:48 /dev/block/loop8
brw-rw---- 1 root root 7, 9 Apr 7 20:48 /dev/block/loop9
#
[Captivate Q&A, Help & Troubleshooting] clesenne:
Try:

# losetup

without the "-f" option so that we know what's eating up all your loop device files.
[Captivate Q&A, Help & Troubleshooting] naklinaam:
$ export PATH=/data/local/bin:$PATH
$ export PATH=/data/data/csh.cryptonite:${PATH}; su;
# losetup
/dev/block/loop0: 0 /mnt/secure/asec/com.melimots.WordSearch-2.asec #Can uninstall#################
.....
/dev/block/loop44: 0 /mnt/secure/asec/<XXXobscuredXXX>
/dev/block/loop45: 0 /mnt/secure/asec/com.xinlu.gvdial-1.asec
/dev/block/loop46: 0 /mnt/secure/asec/com.snrblabs.grooveip-1.asec
#

I have marked some apps as 'Can uninstall#################'. I can remove these if we need to free up some loops

I have also replaced some text with '<XXXobscuredXXX>' to hide some apps that I think woudl divulge too much personal information. (No porn on my phone anyway ;).. mostly financial institutes I deal with)

PS: Just noticed I am in the captivate forum...

Really sorry if this is a problem..

I have a google Nexus One that I am doing this on.. I did mention that in my first post though
[Captivate Q&A, Help & Troubleshooting] clesenne:
Apologies - I didn't mean to reveal all your apps, I had no idea they would show on your loop devices. Feel free to delete that list.

The next step is to create a new loop device using the next available file number:

# mknod /dev/block/loop47 b 7 47

Check whether this was successful:

# losetup -f

should show "/dev/block/loop47". If this is successful, try to mount your truecrypt volume. If there are any errors, report back. Thanks again.
[Captivate Q&A, Help & Troubleshooting] naklinaam:
No worries

mknod: /dev/loop/block47: no such file or directory

I then removed 3 apps hoping to free up 44 through 46.

'#losetup ' shows 43 entries.

'#losetup -f' shows nothing

#mknod /dev/loop/block44 b 7 44
mknod: /dev/loop/block44: no such file or directory
[Captivate Q&A, Help & Troubleshooting] clesenne:
I should really be more careful when posting code: It's "/dev/block/loop*". Sorry about that. Uninstalling an app will probably not detach the loop device.
[Captivate Q&A, Help & Troubleshooting] naklinaam:
loop47 was the next free loop when we started, hence that should have worked even if loop44 did not. should i try high number, say loop100?

Also, found a post at http://forum.cyanogenmod.com/topic/..._214348__hl__r3s3t__fromsearch__1#entry214348 which discusses cynogenmod and loopback devices. Although it says CM 7.1 handles loop devices, and I am on CM 7.1, is there any way for us to test if my device/ROM truely supports loop devices?
[Captivate Q&A, Help & Troubleshooting] clesenne:
You used "/dev/loop/block47" as a filename. That's wrong. There's no "/dev/loop" directory. Try "/dev/block/loop47" instead. I reversed "block" and "loop" in my initial instructions.

Your phone supports loop devices.
[Captivate Q&A, Help & Troubleshooting] naklinaam:
You are the king... yes, I was able to create a new device.

was also able to mount the truecrypt file, make some changes add new file and send it back using drop box.

There are still some issues, not sure if we should continue that on this thread or whether I should start a new thread.

The issue is, once I mounted the file in the terminal, I was able to see the files suing ES File explorer. But, when I tried to open the file using a text editor, i get a message 'File nit found: /sdcard/Folder/File' but if i go to the terminal and type cat File, i am able to see the data.

Here is how i was able to mount the file

#mknod /dev/block/loop44
#truecrypt /sdcard/MyData/testcrypt.tc /sdcard/Folder
Enter password for /sdcard/MyData/testcrypt.tc: <entered password here>
Enter keyfile [none]: <hit enter here to use default -no keyfile>
Protect hidden volume (if any)? (y=Yes/n=No) [No]: <hit enter here to use default -No>
#

Here is how I was able to see the data. I did this just after mounting

#cd /sdcard/Folder
#ls
Test file
#vi File <and I entered some text in vito create a new file>
#ls
File Test file
#cat File
this is success

#

Thanks clesenne. I am all set now.

However, would you like to spend some time trying to figure out why we had create the loop device manually so it can be addressed in future? If yes, please let me know what you want me to do to help with debugging and testing the solution.

If you think this is how it should be done, we could write a summary post somewhere so new users just see and follow that instead of trying to go through all the steps I did.

Please advise

---------- Post added at 02:44 PM ---------- Previous post was at 02:25 PM ----------

Hi diablo009

clesenne has a solution that he has posted in message #65 of this thread.

Would it be possible for you to update the original post (#1) and link to his message, so people with the same answer know exactly where to go. Not everyone would read through all the replies to find his(or her) solution.
[Captivate Q&A, Help & Troubleshooting] clesenne:
Thanks for your help debugging this issue. Glad to know that it works now.

Bug reports and enhancement requests should go to the issue tracker so that we don't spam the xda forum.

That's probably a file permission issue. Only root is able to read/write files in that folder.

I've added that to the corresponding issue in the issue tracker.
[Captivate Q&A, Help & Troubleshooting] demonoflust:
Hi, I am a TrueCrypt fan and is someone I first installed on new computer so definitely I would like to see this happen on Android.

I have a few doubts, since there are people here developing maybe you can help share some information.

TrueCrypt work normally by mounting a OTFE file as a drive or in Android if possible as folder. This doesn't sounds possible unless it is a rooted device and probably need to install some driver library file. Am I right to say this is no go?

Secondly, let say someone port it to be able to open TC volume in Android it seems like to retrieve and deposit file, the encryption is done in transition of file upload/download since it is not a folder/drive. Is that correct?

Then, during these transition do the file being temporary exported as temp file and to be open later or remains in memory? Memory is unlikely as Android doesn't have much RAM. Is that correct? If it is not, what is your opinion?

So does it mean that it is cool to be able to read and possible write to TC file, it doesn't offer much advantages as PC version of TrueCrypt?

I am definitely concerned about my documents in mobile phone if I have lost it in a pub or something so I do have serious interest in this topic.

---------- Post added at 03:01 AM ---------- Previous post was at 02:55 AM ----------

http://code.google.com/p/cryptonite/wiki/SecurityConsiderations

I just read this it says:

"Exporting and opening files

Obviously, when you're exporting files you'll end up with a decrypted copy of your file. If you're exporting it to your sdcard, it will typically be readable by anyone who has access to your phone and by any application that has access to your sdcard.

Less obviously, when you're opening a file, Cryptonite will produce a temporary copy in /data/data/csh.cryptonite/app_open/path_to_your_file. This decrypted file is world-readable and will only be deleted when you press the "Forget decryption" button or uninstall Cryptonite. A local copy is needed because most (if not all) file viewing apps (Text Editors, Gallery, etc.) require a physical copy of your file on world-readable storage. To bypass this issue, Cryptonite includes a simple text file viewer that will open text files in memory without using temporary files. On the long run, I'm planning to include a basic image viewer as well.

If you're using a rooted phone that supports FUSE, mounting an EncFS volume is a safer and more comfortable way to access your files because they will be transparently decrypted on-the-fly without being written to disk."

Is files able to be recovered using unerase tool?
[Captivate Q&A, Help & Troubleshooting] niteh@wk:
I can confirm Cryptonite can mount a TrueCrypt container volume on Android with kernel supporting FUSE and EncFS (such the latest version of the Matr1x kernel on ICS for Nexus S). Your phone will have to have root and grant Cryptonite root access.

Here are the terminal commands. I recommend using ROM Toolbox and use the Scripter to run these with one-click (be sure to set Scripter to run with root).

# Mount a TrueCrypt volume

# TrueCrypt volume to mount
export tcvol="/mnt/sdcard/path/to/volume.tc"

# Mount point
export tcmnt="/mnt/sdcard/path/to/tcmount/"

# Decrypt the volume.tc and mount it at the tcmnt mount point
/data/data/csh.cryptonite/truecrypt -t -k "" --protect-hidden=no --fs-options="uid=1000,gid=1000,umask=0002" -p password $tcvol $tcmnt

Now use a file manager such as ESExplorer and browse to the $tcmnt mount point, you will see all your files that were included in volume.tc. Profit!!!

# Dismount the volume when done using
/data/data/csh.cryptonite/truecrypt -d

Big thanks to the Cryptonite devs and their great support!!
[Captivate Q&A, Help & Troubleshooting] demonoflust:
I am quite concern about "when you're exporting files you'll end up with a decrypted copy of your file. If you're exporting it to your sdcard". The whole purpose of container encryption is not being able to unerase the unencrypted files. In this case, while Cryptonite is able to read TC container it deplete the purposes unless it is a rooted device?

Anyway, it is sad to see Truecrypt is now able to break without brute force.

http://www.net-security.org/secworld.php?id=9077

I hope TC can strengthen their encryption soon.
[Captivate Q&A, Help & Troubleshooting] clesenne:
This restriction only applies to decrypted EncFS volumes, but not to mounted EncFS or TrueCrypt volumes. I've clarified this in the FAQ. The TrueCrypt version that ships with Cryptonite is almost identical to the standard GNU/Linux command-line version as far as the source code goes and comes with the same security benefits and issues. TrueCrypt is not accessible through the Cryptonite GUI at this time.