am 6864b7ec
: Change the cryptfs command to separate out checking the password and restarting
* commit '6864b7ec94a57b73c300457955d86dc604aeddf5': Change the cryptfs command to separate out checking the password and restarting
This commit is contained in:
commit
3b3b89e07c
3 changed files with 19 additions and 4 deletions
|
@ -529,6 +529,12 @@ int CommandListener::CryptfsCmd::runCommand(SocketClient *cli,
|
|||
return 0;
|
||||
}
|
||||
rc = cryptfs_check_passwd(argv[2]);
|
||||
} else if (!strcmp(argv[1], "restart")) {
|
||||
if (argc != 2) {
|
||||
cli->sendMsg(ResponseCode::CommandSyntaxError, "Usage: cryptfs restart", false);
|
||||
return 0;
|
||||
}
|
||||
rc = cryptfs_restart();
|
||||
} else if (!strcmp(argv[1], "enablecrypto")) {
|
||||
if ( (argc != 4) || (strcmp(argv[2], "wipe") && strcmp(argv[2], "inplace")) ) {
|
||||
cli->sendMsg(ResponseCode::CommandSyntaxError, "Usage: cryptfs enablecrypto <wipe|inplace> <passwd>", false);
|
||||
|
|
16
cryptfs.c
16
cryptfs.c
|
@ -482,10 +482,11 @@ static int wait_and_unmount(char *mountpoint)
|
|||
return rc;
|
||||
}
|
||||
|
||||
static int cryptfs_restart(char *crypto_blkdev)
|
||||
int cryptfs_restart(void)
|
||||
{
|
||||
char fs_type[32];
|
||||
char real_blkdev[MAXPATHLEN];
|
||||
char crypto_blkdev[MAXPATHLEN];
|
||||
char fs_options[256];
|
||||
unsigned long mnt_flags;
|
||||
struct stat statbuf;
|
||||
|
@ -516,6 +517,12 @@ static int cryptfs_restart(char *crypto_blkdev)
|
|||
* the tmpfs filesystem, and mount the real one.
|
||||
*/
|
||||
|
||||
property_get("ro.crypto.fs_crypto_blkdev", crypto_blkdev, "");
|
||||
if (strlen(crypto_blkdev) == 0) {
|
||||
SLOGE("fs_crypto_blkdev not set\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (! get_orig_mount_parms("/data", fs_type, real_blkdev, &mnt_flags, fs_options)) {
|
||||
SLOGD("Just got orig mount parms\n");
|
||||
|
||||
|
@ -622,10 +629,11 @@ static int test_mount_encrypted_fs(char *passwd, char *mount_point)
|
|||
rc = crypt_ftr.failed_decrypt_count;
|
||||
|
||||
} else {
|
||||
/* Woot! Success! Time to do the magic of unmounting the tmpfs
|
||||
* disk and mounting the encrypted one.
|
||||
/* Woot! Success! Save the name of the crypto block device
|
||||
* so we can mount it when restarting the framework.
|
||||
*/
|
||||
rc = cryptfs_restart(crypto_blkdev);
|
||||
property_set("ro.crypto.fs_crypto_blkdev", crypto_blkdev);
|
||||
rc = 0;
|
||||
}
|
||||
|
||||
return rc;
|
||||
|
|
|
@ -53,6 +53,7 @@ struct crypt_mnt_ftr {
|
|||
extern "C" {
|
||||
#endif
|
||||
int cryptfs_check_passwd(char *pw);
|
||||
int cryptfs_restart(void);
|
||||
int cryptfs_enable(char *flag, char *passwd);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue