From 407e8a9b46e09b369cd1758ed1a55faffbd2df11 Mon Sep 17 00:00:00 2001 From: Amit Blay Date: Wed, 2 Sep 2015 08:31:53 +0300 Subject: Added 'EncryptWipeStorage' API to MountService API The EncryptWipeStorage API is used to create a new ext4 file system on the userdata partition, instead of the existing one, and encrypt it. This as opposed to the way EncryptStorage API works, which encrypts the existing file system as is ('inplace'). The 'wipe' option is already supported in the underlying Cryptfs implementation. Also in this change, new values that can be returned by 'getEncryptionState' API are declared. These values reflects the state of the MDTP activation, together with the general encryption state, in case that MDTP is activated. - ENCRYPTION_STATE_OK_MDTP_ACTIVATED - means that the crypto state is ok, and MDTP is activated. - ENCRYPTION_STATE_ERROR_MDTP_ACTIVATED - means that the crypto state is bad, and MDTP is activated. Change-Id: Ide628a8cf6499bc2216b08c22479a37133bebb03 --- libs/storage/IMountService.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'libs/storage') diff --git a/libs/storage/IMountService.cpp b/libs/storage/IMountService.cpp index c643ed0..f7379b6 100644 --- a/libs/storage/IMountService.cpp +++ b/libs/storage/IMountService.cpp @@ -50,6 +50,7 @@ enum { TRANSACTION_isExternalStorageEmulated, TRANSACTION_decryptStorage, TRANSACTION_encryptStorage, + TRANSACTION_encryptWipeStorage = IBinder::FIRST_CALL_TRANSACTION + 61, }; class BpMountService: public BpInterface @@ -551,6 +552,23 @@ public: } return reply.readInt32(); } + + int32_t encryptWipeStorage(const String16& password) + { + Parcel data, reply; + data.writeInterfaceToken(IMountService::getInterfaceDescriptor()); + data.writeString16(password); + if (remote()->transact(TRANSACTION_encryptWipeStorage, data, &reply) != NO_ERROR) { + ALOGD("encryptWipeStorage could not contact remote\n"); + return -1; + } + int32_t err = reply.readExceptionCode(); + if (err < 0) { + ALOGD("encryptWipeStorage caught exception %d\n", err); + return err; + } + return reply.readInt32(); + } }; IMPLEMENT_META_INTERFACE(MountService, "IMountService") -- cgit v1.1