Add lollipop decrypt support
Kang in cryptfs.c and cryptfs.h from vold.
Use TW_INCLUDE_L_CRYPTO := true to enable.
Ramdisk must contain the normal fstab file in the root in the
usual format of:
fstab.{ro.hardware}
For examble for Nexus 5:
fstab.hammerhead
Or on many Qualcomm devices:
fstab.qcom
Tested against Android 5.0 lollipop on Nexus 7 2012 grouper. Not
sure if or how this will work when we are dealing with a device
with a hardware keystore. Long term we need to add a GUI element
to allow entering a pattern. For now you can decrypt a pattern
unlock by converting the dots to numbers in the following format:
123
456
789
So an upper-case L would translate to 14789 as a password entered
on the keyboard.
Change-Id: I02c29e1f1c2eb29bf002c9fe0fc118357300b5b3
diff --git a/crypto/lollipop/Android.mk b/crypto/lollipop/Android.mk
new file mode 100644
index 0000000..cce070b
--- /dev/null
+++ b/crypto/lollipop/Android.mk
@@ -0,0 +1,52 @@
+LOCAL_PATH := $(call my-dir)
+ifeq ($(TW_INCLUDE_L_CRYPTO), true)
+include $(CLEAR_VARS)
+
+common_c_includes := \
+ system/extras/ext4_utils \
+ system/extras/f2fs_utils \
+ external/openssl/include \
+ external/stlport/stlport \
+ bionic \
+ external/scrypt/lib/crypto \
+ frameworks/native/include \
+ system/security/keystore \
+ hardware/libhardware/include/hardware \
+ system/security/softkeymaster/include/keymaster
+
+common_shared_libraries := \
+ libsysutils \
+ libstlport \
+ libbinder \
+ libcutils \
+ liblog \
+ libdiskconfig \
+ libhardware_legacy \
+ liblogwrap \
+ libext4_utils \
+ libf2fs_sparseblock \
+ libcrypto \
+ libselinux \
+ libutils \
+ libhardware \
+ libsoftkeymaster
+
+LOCAL_MODULE := libcryptfslollipop
+LOCAL_MODULE_TAGS := eng optional
+LOCAL_CFLAGS :=
+LOCAL_SRC_FILES = cryptfs.c
+#LOCAL_C_INCLUDES += \
+# system/extras/ext4_utils \
+# external/openssl/include \
+# system/extras/f2fs_utils \
+# external/scrypt/lib/crypto \
+# system/security/keystore \
+# hardware/libhardware/include/hardware \
+# system/security/softkeymaster/include/keymaster
+#LOCAL_SHARED_LIBRARIES += libc liblog libcutils libcrypto libext4_utils
+LOCAL_SHARED_LIBRARIES := $(common_shared_libraries)
+LOCAL_C_INCLUDES := external/openssl/include $(common_c_includes)
+LOCAL_STATIC_LIBRARIES += libfs_mgr libscrypt_static liblogwrap libmincrypttwrp
+
+include $(BUILD_SHARED_LIBRARY)
+endif