diff --git a/minuitwrp/Android.mk b/minuitwrp/Android.mk
index f0c7089..59ca2cc 100644
--- a/minuitwrp/Android.mk
+++ b/minuitwrp/Android.mk
@@ -1,7 +1,9 @@
 LOCAL_PATH := $(call my-dir)
+
 include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := events.c resources.c
+#LOCAL_SRC_FILES := $(TARGET_OUT_SHARED_LIBRARIES)/libjpegtwrp.so $(TARGET_OUT_SHARED_LIBRARIES)/libpng.so $(TARGET_OUT_SHARED_LIBRARIES)/libpixelflinger.so 
 
 ifneq ($(TW_BOARD_CUSTOM_GRAPHICS),)
     LOCAL_SRC_FILES += $(TW_BOARD_CUSTOM_GRAPHICS)
@@ -9,11 +11,13 @@
     LOCAL_SRC_FILES += graphics.c
 endif
 
-LOCAL_C_INCLUDES +=\
-    external/libpng\
-    external/zlib\
-	external/jpeg
+LOCAL_C_INCLUDES += \
+    external/libpng \
+    external/zlib \
+    system/core/include
 
+LOCAL_C_INCLUDES += \
+    bootable/recovery/libjpegtwrp
 
 ifeq ($(RECOVERY_TOUCHSCREEN_SWAP_XY), true)
 LOCAL_CFLAGS += -DRECOVERY_TOUCHSCREEN_SWAP_XY
@@ -54,7 +58,9 @@
 ifneq ($(BOARD_USE_CUSTOM_RECOVERY_FONT),)
   LOCAL_CFLAGS += -DBOARD_USE_CUSTOM_RECOVERY_FONT=$(BOARD_USE_CUSTOM_RECOVERY_FONT)
 endif
-LOCAL_STATIC_LIBRARY := libpng
+LOCAL_SHARED_LIBRARIES += libz libpixelflinger libc libcutils
+LOCAL_STATIC_LIBRARIES += libpng libjpegtwrp
+LOCAL_MODULE_TAGS := eng
 LOCAL_MODULE := libminuitwrp
 
-include $(BUILD_STATIC_LIBRARY)
+include $(BUILD_SHARED_LIBRARY)
\ No newline at end of file
diff --git a/minuitwrp/events.c b/minuitwrp/events.c
index 285b5b6..73c4066 100644
--- a/minuitwrp/events.c
+++ b/minuitwrp/events.c
@@ -152,11 +152,11 @@
     len = ioctl(e->fd->fd, EVIOCGNAME(sizeof(e->deviceName)), e->deviceName);
     if (len <= 0)
     {
-        LOGE("Unable to query event object.\n");
+        printf("Unable to query event object.\n");
         return -1;
     }
 #ifdef _EVENT_LOGGING
-    LOGI("Event object: %s\n", e->deviceName);
+    printf("Event object: %s\n", e->deviceName);
 #endif
 
     // Blacklist these "input" devices
@@ -188,7 +188,7 @@
         }
 
         if (e->vk_count % 6) {
-            LOGW("minui: %s is %d %% 6\n", vk_path, e->vk_count % 6);
+            printf("minui: %s is %d %% 6\n", vk_path, e->vk_count % 6);
         }
         e->vk_count /= 6;
         if (e->vk_count <= 0)
@@ -201,14 +201,14 @@
     ioctl(e->fd->fd, EVIOCGABS(ABS_Y), &e->p.yi);
     e->p.synced = 0;
 #ifdef _EVENT_LOGGING
-    LOGI("EV: ST minX: %d  maxX: %d  minY: %d  maxY: %d\n", e->p.xi.minimum, e->p.xi.maximum, e->p.yi.minimum, e->p.yi.maximum);
+    printf("EV: ST minX: %d  maxX: %d  minY: %d  maxY: %d\n", e->p.xi.minimum, e->p.xi.maximum, e->p.yi.minimum, e->p.yi.maximum);
 #endif
 
     ioctl(e->fd->fd, EVIOCGABS(ABS_MT_POSITION_X), &e->mt_p.xi);
     ioctl(e->fd->fd, EVIOCGABS(ABS_MT_POSITION_Y), &e->mt_p.yi);
     e->mt_p.synced = 0;
 #ifdef _EVENT_LOGGING
-    LOGI("EV: MT minX: %d  maxX: %d  minY: %d  maxY: %d\n", e->mt_p.xi.minimum, e->mt_p.xi.maximum, e->mt_p.yi.minimum, e->mt_p.yi.maximum);
+    printf("EV: MT minX: %d  maxX: %d  minY: %d  maxY: %d\n", e->mt_p.xi.minimum, e->mt_p.xi.maximum, e->mt_p.yi.minimum, e->mt_p.yi.maximum);
 #endif
 
     e->vks = malloc(sizeof(*e->vks) * e->vk_count);
@@ -223,7 +223,7 @@
 
         if (strcmp(token[0], "0x01") != 0) {
             /* Java does string compare, so we do too. */
-            LOGW("minui: %s: ignoring unknown virtual key type %s\n", vk_path, token[0]);
+            printf("minui: %s: ignoring unknown virtual key type %s\n", vk_path, token[0]);
             continue;
         }
 
@@ -299,7 +299,7 @@
     }
 
 #ifdef _EVENT_LOGGING
-    LOGI("EV: p->x=%d  x-range=%d,%d  fb-width=%d\n", p->x, p->xi.minimum, p->xi.maximum, gr_fb_width());
+    printf("EV: p->x=%d  x-range=%d,%d  fb-width=%d\n", p->x, p->xi.minimum, p->xi.maximum, gr_fb_width());
 #endif
 
 #ifndef RECOVERY_TOUCHSCREEN_SWAP_XY
@@ -341,14 +341,14 @@
     {
         // This appears to be an accelerometer or another strange input device. It's not the touchscreen.
 #ifdef _EVENT_LOGGING
-        LOGI("EV: Device disabled due to non-touchscreen messages.\n");
+        printf("EV: Device disabled due to non-touchscreen messages.\n");
 #endif
         e->ignored = 1;
         return 1;
     }
 
 #ifdef _EVENT_LOGGING
-    LOGI("EV: %s => type: %x  code: %x  value: %d\n", e->deviceName, ev->type, ev->code, ev->value);
+    printf("EV: %s => type: %x  code: %x  value: %d\n", e->deviceName, ev->type, ev->code, ev->value);
 #endif
 
 	// Handle keyboard events, value of 1 indicates key down, 0 indicates key up
@@ -363,7 +363,7 @@
             e->p.synced |= 0x01;
             e->p.x = ev->value;
 #ifdef _EVENT_LOGGING
-            LOGI("EV: %s => EV_ABS  ABS_X  %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS  ABS_X  %d\n", e->deviceName, ev->value);
 #endif
             break;
 
@@ -371,7 +371,7 @@
             e->p.synced |= 0x02;
             e->p.y = ev->value;
 #ifdef _EVENT_LOGGING
-            LOGI("EV: %s => EV_ABS  ABS_Y  %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS  ABS_Y  %d\n", e->deviceName, ev->value);
 #endif
             break;
 
@@ -400,7 +400,7 @@
                 touchReleaseOnNextSynReport = 1;
             }
 #ifdef _EVENT_LOGGING
-            LOGI("EV: %s => EV_ABS  ABS_MT_TOUCH_MAJOR  %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS  ABS_MT_TOUCH_MAJOR  %d\n", e->deviceName, ev->value);
 #endif
             break;
 
@@ -413,7 +413,7 @@
                 touchReleaseOnNextSynReport = 1;
             }
 #ifdef _EVENT_LOGGING
-            LOGI("EV: %s => EV_ABS  ABS_MT_PRESSURE  %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS  ABS_MT_PRESSURE  %d\n", e->deviceName, ev->value);
 #endif
             break;
 
@@ -421,7 +421,7 @@
             e->mt_p.synced |= 0x01;
             e->mt_p.x = ev->value;
 #ifdef _EVENT_LOGGING
-            LOGI("EV: %s => EV_ABS  ABS_MT_POSITION_X  %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS  ABS_MT_POSITION_X  %d\n", e->deviceName, ev->value);
 #endif
             break;
 
@@ -429,29 +429,29 @@
             e->mt_p.synced |= 0x02;
             e->mt_p.y = ev->value;
 #ifdef _EVENT_LOGGING
-            LOGI("EV: %s => EV_ABS  ABS_MT_POSITION_Y  %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS  ABS_MT_POSITION_Y  %d\n", e->deviceName, ev->value);
 #endif
             break;
 
 #ifdef _EVENT_LOGGING
 		// All of these items are strictly for logging purposes only. Return 1 because they don't need to be handled.
         case ABS_MT_TOUCH_MINOR: //31
-            LOGI("EV: %s => EV_ABS ABS_MT_TOUCH_MINOR %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS ABS_MT_TOUCH_MINOR %d\n", e->deviceName, ev->value);
 			return 1;
             break;
 
         case ABS_MT_WIDTH_MAJOR: //32
-            LOGI("EV: %s => EV_ABS ABS_MT_WIDTH_MAJOR %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS ABS_MT_WIDTH_MAJOR %d\n", e->deviceName, ev->value);
 			return 1;
             break;
 
         case ABS_MT_WIDTH_MINOR: //33
-            LOGI("EV: %s => EV_ABS ABS_MT_WIDTH_MINOR %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS ABS_MT_WIDTH_MINOR %d\n", e->deviceName, ev->value);
 			return 1;
             break;
 
         case ABS_MT_ORIENTATION: //34
-            LOGI("EV: %s => EV_ABS ABS_MT_ORIENTATION %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS ABS_MT_ORIENTATION %d\n", e->deviceName, ev->value);
 			return 1;
             break;
 
@@ -461,17 +461,17 @@
             break;
 
         case ABS_MT_BLOB_ID: //38
-            LOGI("EV: %s => EV_ABS ABS_MT_BLOB_ID %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS ABS_MT_BLOB_ID %d\n", e->deviceName, ev->value);
 			return 1;
             break;
 
         case ABS_MT_TRACKING_ID: //39
-            LOGI("EV: %s => EV_ABS ABS_MT_TRACKING_ID %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS ABS_MT_TRACKING_ID %d\n", e->deviceName, ev->value);
 			return 1;
             break;
 
 		case ABS_MT_DISTANCE: //3b
-            LOGI("EV: %s => EV_ABS ABS_MT_DISTANCE %d\n", e->deviceName, ev->value);
+            printf("EV: %s => EV_ABS ABS_MT_DISTANCE %d\n", e->deviceName, ev->value);
 			return 1;
             break;
 #endif
@@ -496,8 +496,8 @@
     }
 
 #ifdef _EVENT_LOGGING
-    if (ev->type == EV_SYN && ev->code == SYN_REPORT)       LOGI("EV: %s => EV_SYN  SYN_REPORT\n", e->deviceName);
-    if (ev->type == EV_SYN && ev->code == SYN_MT_REPORT)    LOGI("EV: %s => EV_SYN  SYN_MT_REPORT\n", e->deviceName);
+    if (ev->type == EV_SYN && ev->code == SYN_REPORT)       printf("EV: %s => EV_SYN  SYN_REPORT\n", e->deviceName);
+    if (ev->type == EV_SYN && ev->code == SYN_MT_REPORT)    printf("EV: %s => EV_SYN  SYN_MT_REPORT\n", e->deviceName);
 #endif
 
     // Discard the MT versions
@@ -555,7 +555,7 @@
 #endif
 
 #ifdef _EVENT_LOGGING
-    LOGI("EV: x: %d  y: %d\n", x, y);
+    printf("EV: x: %d  y: %d\n", x, y);
 #endif
 
     // Clear the current sync states
diff --git a/minuitwrp/graphics.c b/minuitwrp/graphics.c
index 61a98c3..627e343 100644
--- a/minuitwrp/graphics.c
+++ b/minuitwrp/graphics.c
@@ -79,14 +79,14 @@
 #ifdef PRINT_SCREENINFO
 static void print_fb_var_screeninfo()
 {
-	LOGI("vi.xres: %d\n", vi.xres);
-	LOGI("vi.yres: %d\n", vi.yres);
-	LOGI("vi.xres_virtual: %d\n", vi.xres_virtual);
-	LOGI("vi.yres_virtual: %d\n", vi.yres_virtual);
-	LOGI("vi.xoffset: %d\n", vi.xoffset);
-	LOGI("vi.yoffset: %d\n", vi.yoffset);
-	LOGI("vi.bits_per_pixel: %d\n", vi.bits_per_pixel);
-	LOGI("vi.grayscale: %d\n", vi.grayscale);
+	printf("vi.xres: %d\n", vi.xres);
+	printf("vi.yres: %d\n", vi.yres);
+	printf("vi.xres_virtual: %d\n", vi.xres_virtual);
+	printf("vi.yres_virtual: %d\n", vi.yres_virtual);
+	printf("vi.xoffset: %d\n", vi.xoffset);
+	printf("vi.yoffset: %d\n", vi.yoffset);
+	printf("vi.bits_per_pixel: %d\n", vi.bits_per_pixel);
+	printf("vi.grayscale: %d\n", vi.grayscale);
 }
 #endif
 
@@ -191,7 +191,7 @@
     fb->width = vi.xres;
     fb->height = vi.yres;
 #ifdef BOARD_HAS_JANKY_BACKBUFFER
-    LOGI("setting JANKY BACKBUFFER\n");
+    printf("setting JANKY BACKBUFFER\n");
     fb->stride = fi.line_length/2;
 #else
     fb->stride = vi.xres_virtual;
diff --git a/minuitwrp/resources.c b/minuitwrp/resources.c
index ea6a447..4c8d8a9 100644
--- a/minuitwrp/resources.c
+++ b/minuitwrp/resources.c
@@ -30,7 +30,7 @@
 #include <pixelflinger/pixelflinger.h>
 
 #include <png.h>
-#include <jpeglib.h>
+#include "../libjpegtwrp/jpeglib.h"
 
 #include "minui.h"
 
