Work around MEMERASE ioctl for rk3066 compatibility

Due to a kernel bug and no available sources we have to work around the
MEMERASE ioctl - if used, it hangs and never returns. I straced the original
recovery executable and could see that it is simply calling write() with a
bunch of zeroes instead of using MEMERASE.

Added a hack that does the same and now the resulting TWRP recovery image works.

Change-Id: I1b1c1c9e870e350776346bdca5d442c7ef565aa0
This commit is contained in:
Sergey 'Jin' Bostandzhyan
2013-01-05 00:23:06 +01:00
parent d9a9616195
commit 80a90edd47
6 changed files with 140 additions and 0 deletions
+5
View File
@@ -7,9 +7,14 @@ LOCAL_SRC_FILES := \
mtdutils.c \
mounts.c
ifeq ($(TARGET_BOARD_PLATFORM),rk30xx)
LOCAL_SRC_FILES += rk30hack.c
endif
LOCAL_MODULE := libmtdutils
LOCAL_STATIC_LIBRARIES := libcutils libc
LOCAL_FORCE_STATIC_EXECUTABLE := true
include $(BUILD_STATIC_LIBRARY)
endif # !TARGET_SIMULATOR