I am attempting to make enhancements to the ICS vold/cryptfs encryption implementation. I would like to add additional functionality and options such as key length, cipher, mode, etc. I have created all the necessary changes and functions in the vold code, but I'm having trouble identifying where the framework actually makes the calls to the vold command listener.
According to the implementation notes at: http://source.android.com/tech/encryption/android_crypto_implementation.html the UI calls vold with commands such as "cryptfs cryptocomplete" and "cryptfs enablecrypto inplace". Maybe I just don't understand enough about Binder and IPC, but I cannot find any reference to these commands in the java code. The CryptKeeperSettings app seems to make use of an IMountService object which is connected to the IBinder "mount" service. It then calls the encryptedStorage() method on the IMountService object, which in turn runs the IBinder.transact function with TRANSACTION_encryptStorage code. Where are the actual commands being sent to vold? I have searched the code and found no references to cryptfs commands outside of the vold command listener. Any help is greatly appreciated. I am convinced that my C implementation is correct, I simply don't know how to call it from the UI. Thanks, Adam -- unsubscribe: [email protected] website: http://groups.google.com/group/android-kernel
