Merge "system/vold: check return value of PKCS5_PBKDF2_HMAC_SHA1." am: 0a7e668ebf am: cd6d8e3fb6
am: 03b10c268b
* commit '03b10c268b810c06e31f20fab00ee9bb93d09d01':
system/vold: check return value of PKCS5_PBKDF2_HMAC_SHA1.
diff --git a/CommandListener.cpp b/CommandListener.cpp
index a9a8031..3a87741 100644
--- a/CommandListener.cpp
+++ b/CommandListener.cpp
@@ -44,8 +44,6 @@
#include "Process.h"
#include "Loop.h"
#include "Devmapper.h"
-#include "Ext4Crypt.h"
-#include "cryptfs.h"
#include "MoveTask.h"
#include "TrimTask.h"
diff --git a/CryptCommandListener.cpp b/CryptCommandListener.cpp
index 3132a82..575ec90 100644
--- a/CryptCommandListener.cpp
+++ b/CryptCommandListener.cpp
@@ -358,6 +358,16 @@
SLOGD("cryptfs deleteuserkey");
dumpArgs(argc, argv, -1);
rc = e4crypt_delete_user_key(argv[2]);
+ } else if (!strcmp(argv[1], "isConvertibleToFBE")) {
+ if (argc != 2) {
+ cli->sendMsg(ResponseCode::CommandSyntaxError,
+ "Usage: cryptfs isConvertibleToFBE", false);
+ return 0;
+ }
+ // ext4enc:TODO: send a CommandSyntaxError if argv[2] not an integer
+ SLOGD("cryptfs isConvertibleToFBE");
+ dumpArgs(argc, argv, -1);
+ rc = cryptfs_isConvertibleToFBE();
} else {
dumpArgs(argc, argv, -1);
cli->sendMsg(ResponseCode::CommandSyntaxError, "Unknown cryptfs cmd", false);
diff --git a/VolumeManager.cpp b/VolumeManager.cpp
old mode 100755
new mode 100644
diff --git a/cryptfs.c b/cryptfs.c
index 1f70847..d036eb2 100644
--- a/cryptfs.c
+++ b/cryptfs.c
@@ -3710,6 +3710,12 @@
return e4crypt_enable(DATA_MNT_POINT);
}
+int cryptfs_isConvertibleToFBE()
+{
+ struct fstab_rec* rec = fs_mgr_get_entry_for_mount_point(fstab, DATA_MNT_POINT);
+ return fs_mgr_is_convertible_to_fbe(rec) ? 1 : 0;
+}
+
int cryptfs_create_default_ftr(struct crypt_mnt_ftr* crypt_ftr, __attribute__((unused))int key_length)
{
if (cryptfs_init_crypt_mnt_ftr(crypt_ftr)) {
diff --git a/cryptfs.h b/cryptfs.h
index fd6f3da..1320bfe 100644
--- a/cryptfs.h
+++ b/cryptfs.h
@@ -231,6 +231,7 @@
int cryptfs_get_password_type(void);
const char* cryptfs_get_password(void);
void cryptfs_clear_password(void);
+ int cryptfs_isConvertibleToFBE(void);
// Functions for file encryption to use to inherit our encryption logic
int cryptfs_create_default_ftr(struct crypt_mnt_ftr* ftr, int key_length);
@@ -238,6 +239,7 @@
unsigned char* master_key);
int cryptfs_set_password(struct crypt_mnt_ftr* ftr, const char* password,
const unsigned char* master_key);
+
#ifdef __cplusplus
}
#endif
diff --git a/fs/F2fs.cpp b/fs/F2fs.cpp
index b947822..87b131e 100644
--- a/fs/F2fs.cpp
+++ b/fs/F2fs.cpp
@@ -43,7 +43,7 @@
status_t Check(const std::string& source) {
std::vector<std::string> cmd;
cmd.push_back(kFsckPath);
- cmd.push_back("-f");
+ cmd.push_back("-a");
cmd.push_back(source);
// f2fs devices are currently always trusted