diff --git a/cryptfs.c b/cryptfs.c
index 91879e3..b4f57d1 100644
--- a/cryptfs.c
+++ b/cryptfs.c
@@ -57,7 +57,7 @@
 #include "CheckBattery.h"
 #include "Process.h"
 
-#include <hardware/keymaster.h>
+#include <hardware/keymaster0.h>
 
 #define UNUSED __attribute__((unused))
 
@@ -93,7 +93,7 @@
 static int  master_key_saved = 0;
 static struct crypt_persist_data *persist_data = NULL;
 
-static int keymaster_init(keymaster_device_t **keymaster_dev)
+static int keymaster_init(keymaster0_device_t **keymaster_dev)
 {
     int rc;
 
@@ -104,7 +104,7 @@
         goto out;
     }
 
-    rc = keymaster_open(mod, keymaster_dev);
+    rc = keymaster0_open(mod, keymaster_dev);
     if (rc) {
         ALOGE("could not open keymaster device in %s (%s)",
             KEYSTORE_HARDWARE_MODULE_ID, strerror(-rc));
@@ -121,7 +121,7 @@
 /* Should we use keymaster? */
 static int keymaster_check_compatibility()
 {
-    keymaster_device_t *keymaster_dev = 0;
+    keymaster0_device_t *keymaster_dev = 0;
     int rc = 0;
 
     if (keymaster_init(&keymaster_dev)) {
@@ -143,7 +143,7 @@
     }
 
 out:
-    keymaster_close(keymaster_dev);
+    keymaster0_close(keymaster_dev);
     return rc;
 }
 
@@ -151,7 +151,7 @@
 static int keymaster_create_key(struct crypt_mnt_ftr *ftr)
 {
     uint8_t* key = 0;
-    keymaster_device_t *keymaster_dev = 0;
+    keymaster0_device_t *keymaster_dev = 0;
 
     if (keymaster_init(&keymaster_dev)) {
         SLOGE("Failed to init keymaster");
@@ -183,7 +183,7 @@
     ftr->keymaster_blob_size = key_size;
 
 out:
-    keymaster_close(keymaster_dev);
+    keymaster0_close(keymaster_dev);
     free(key);
     return rc;
 }
@@ -196,7 +196,7 @@
                                  size_t *signature_size)
 {
     int rc = 0;
-    keymaster_device_t *keymaster_dev = 0;
+    keymaster0_device_t *keymaster_dev = 0;
     if (keymaster_init(&keymaster_dev)) {
         SLOGE("Failed to init keymaster");
         return -1;
@@ -270,7 +270,7 @@
                                   signature,
                                   signature_size);
 
-    keymaster_close(keymaster_dev);
+    keymaster0_close(keymaster_dev);
     return rc;
 }
 
