Merge "Allow encryption when keyguard is set to pattern or no protection"

This commit is contained in:
Paul Lawrence
2014-04-10 14:30:52 +00:00
committed by Android (Google) Code Review
2 changed files with 9 additions and 6 deletions

View File

@@ -625,12 +625,13 @@ public interface IMountService extends IInterface {
return _result;
}
public int encryptStorage(String password) throws RemoteException {
public int encryptStorage(int type, String password) throws RemoteException {
Parcel _data = Parcel.obtain();
Parcel _reply = Parcel.obtain();
int _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeInt(type);
_data.writeString(password);
mRemote.transact(Stub.TRANSACTION_encryptStorage, _data, _reply, 0);
_reply.readException();
@@ -1210,8 +1211,9 @@ public interface IMountService extends IInterface {
}
case TRANSACTION_encryptStorage: {
data.enforceInterface(DESCRIPTOR);
int type = data.readInt();
String password = data.readString();
int result = encryptStorage(password);
int result = encryptStorage(type, password);
reply.writeNoException();
reply.writeInt(result);
return true;
@@ -1495,7 +1497,7 @@ public interface IMountService extends IInterface {
/**
* Encrypts storage.
*/
public int encryptStorage(String password) throws RemoteException;
public int encryptStorage(int type, String password) throws RemoteException;
/**
* Changes the encryption password.

View File

@@ -52,6 +52,7 @@ import android.os.storage.IMountServiceListener;
import android.os.storage.IMountShutdownObserver;
import android.os.storage.IObbActionListener;
import android.os.storage.OnObbStateChangeListener;
import android.os.storage.StorageManager;
import android.os.storage.StorageResultCode;
import android.os.storage.StorageVolume;
import android.text.TextUtils;
@@ -2145,8 +2146,8 @@ class MountService extends IMountService.Stub
}
}
public int encryptStorage(String password) {
if (TextUtils.isEmpty(password)) {
public int encryptStorage(int type, String password) {
if (TextUtils.isEmpty(password) && type != StorageManager.CRYPT_TYPE_DEFAULT) {
throw new IllegalArgumentException("password cannot be empty");
}
@@ -2160,7 +2161,7 @@ class MountService extends IMountService.Stub
}
try {
mConnector.execute("cryptfs", "enablecrypto", "inplace",
mConnector.execute("cryptfs", "enablecrypto", "inplace", CRYPTO_TYPES[type],
new SensitiveArg(toHex(password)));
} catch (NativeDaemonConnectorException e) {
// Encryption failed