diff --git a/mtdutils/Android.mk b/mtdutils/Android.mk
index 117de78..bd426a0 100644
--- a/mtdutils/Android.mk
+++ b/mtdutils/Android.mk
@@ -7,9 +7,9 @@
 	mtdutils.c \
 	mounts.c 
 
-ifeq ($(TARGET_BOARD_PLATFORM),rk30xx)
-LOCAL_SRC_FILES += rk30hack.c
-LOCAL_CFLAGS += -DRK3066
+ifeq ($(filter rk30xx rk3188,$(TARGET_BOARD_PLATFORM)),)
+LOCAL_SRC_FILES += rk3xhack.c
+LOCAL_CFLAGS += -DRK3X
 endif
 
 LOCAL_MODULE := libmtdutils
@@ -24,9 +24,9 @@
 	mtdutils.c \
 	mounts.c 
 
-ifeq ($(TARGET_BOARD_PLATFORM),rk30xx)
-LOCAL_SRC_FILES += rk30hack.c
-LOCAL_CFLAGS += -DRK3066
+ifeq ($(filter rk30xx rk3188,$(TARGET_BOARD_PLATFORM)),)
+LOCAL_SRC_FILES += rk3xhack.c
+LOCAL_CFLAGS += -DRK3X
 endif
 
 LOCAL_MODULE := libmtdutils
diff --git a/mtdutils/bml_over_mtd.c b/mtdutils/bml_over_mtd.c
index a68950e..12ca109 100644
--- a/mtdutils/bml_over_mtd.c
+++ b/mtdutils/bml_over_mtd.c
@@ -31,8 +31,8 @@
 
 #include "mtdutils.h"
 
-#ifdef RK3066
-    #include "rk30hack.h"
+#ifdef RK3X
+    #include "rk3xhack.h"
 #endif
 
 typedef struct BmlOverMtdReadContext {
@@ -522,7 +522,7 @@
 	erase_info.length = size;
 	int retry;
 	for (retry = 0; retry < 2; ++retry) {
-#ifdef RK3066
+#ifdef RK3X
 		if (rk30_zero_out(fd, pos, size) < 0) {
 			fprintf(stderr, "mtd: erase failure at 0x%08lx (%s)\n",
 					pos, strerror(errno));
diff --git a/mtdutils/mtdutils.c b/mtdutils/mtdutils.c
index 6229d48..158c880 100644
--- a/mtdutils/mtdutils.c
+++ b/mtdutils/mtdutils.c
@@ -28,8 +28,8 @@
 
 #include "mtdutils.h"
 
-#ifdef RK3066
-    #include "rk30hack.h"
+#ifdef RK3X
+    #include "rk3xhack.h"
 #endif
 
 struct MtdReadContext {
@@ -427,7 +427,7 @@
         erase_info.length = size;
         int retry;
         for (retry = 0; retry < 2; ++retry) {
-#ifdef RK3066
+#ifdef RK3X
             if (rk30_zero_out(fd, pos, size) < 0) {
                 fprintf(stderr, "mtd: erase failure at 0x%08lx (%s)\n",
                         pos, strerror(errno));
@@ -469,7 +469,7 @@
         // Try to erase it once more as we give up on this block
         add_bad_block_offset(ctx, pos);
         printf("mtd: skipping write block at 0x%08lx\n", pos);
-#ifdef RK3066
+#ifdef RK3X
         rk30_zero_out(fd, pos, size);
 #else
 
@@ -544,7 +544,7 @@
         struct erase_info_user erase_info;
         erase_info.start = pos;
         erase_info.length = ctx->partition->erase_size;
-#ifdef RK3066
+#ifdef RK3X
         if (rk30_zero_out(ctx->fd, pos, ctx->partition->erase_size) < 0) {
             fprintf(stderr, "mtd: erase failure at 0x%08lx\n", pos);
         }
diff --git a/mtdutils/rk30hack.c b/mtdutils/rk3xhack.c
similarity index 94%
rename from mtdutils/rk30hack.c
rename to mtdutils/rk3xhack.c
index e9351b5..930f605 100644
--- a/mtdutils/rk30hack.c
+++ b/mtdutils/rk3xhack.c
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-/* This is a hack for Rockchip rk30xx based devices. The problem is that
+/* This is a hack for Rockchip rk3x based devices. The problem is that
  * the MEMERASE ioctl is failing (hangs and never returns) in their kernel.
  * The sources are not fully available, so fixing it in the rk30xxnand_ko driver
  * is not possible.
@@ -32,7 +32,7 @@
 #include <stdio.h>
 #include <errno.h>
 
-#include "rk30hack.h"
+#include "rk3xhack.h"
 
 int rk30_zero_out(int fd, off_t pos, ssize_t size)
 {
diff --git a/mtdutils/rk30hack.h b/mtdutils/rk3xhack.h
similarity index 89%
rename from mtdutils/rk30hack.h
rename to mtdutils/rk3xhack.h
index d492793..3cc16e4 100644
--- a/mtdutils/rk30hack.h
+++ b/mtdutils/rk3xhack.h
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-/* This is a hack for Rockchip rk30xx based devices. The problem is that
+/* This is a hack for Rockchip rk3x based devices. The problem is that
  * the MEMERASE ioctl is failing (hangs and never returns) in their kernel.
  * The sources are not fully available, so fixing it in the rk30xxnand_ko driver
  * is not possible.
@@ -26,12 +26,12 @@
  * the recovery code.
  */
 
-#ifndef __RK30_HACK_H__
-#define __RK30_HACK_H__
+#ifndef __RK3X_HACK_H__
+#define __RK3X_HACK_H__
 
 #include <sys/types.h>  // for size_t, etc.
 
 // write zeroes to fd at position pos
 int zero_out(int fd, off_t pos, ssize_t length);
 
-#endif//__RK30_HACK_H__
+#endif//__RK3X_HACK_H__
