diff --git a/minuitwrp/Android.mk b/minuitwrp/Android.mk
index 58634e3..3356402 100644
--- a/minuitwrp/Android.mk
+++ b/minuitwrp/Android.mk
@@ -189,7 +189,7 @@
 LOCAL_CLANG := true
 
 LOCAL_CFLAGS += -DTWRES=\"$(TWRES_PATH)\"
-LOCAL_SHARED_LIBRARIES += libft2 libz libc libcutils libpng libutils
+LOCAL_SHARED_LIBRARIES += libft2 libz libc libcutils libpng libutils libc++
 ifneq ($(TW_INCLUDE_JPEG),)
     LOCAL_SHARED_LIBRARIES += libjpeg
 endif
diff --git a/minuitwrp/events.cpp b/minuitwrp/events.cpp
index 9374ef1..a2a3d16 100755
--- a/minuitwrp/events.cpp
+++ b/minuitwrp/events.cpp
@@ -127,12 +127,14 @@
 int vibrate(int timeout_ms)
 {
     if (timeout_ms > 10000) timeout_ms = 1000;
+    char tout[6];
+    sprintf(tout, "%i", timeout_ms);
 
     if (std::ifstream(LEDS_HAPTICS_ACTIVATE_FILE).good()) {
-        write_to_file(LEDS_HAPTICS_DURATION_FILE, std::to_string(timeout_ms));
+        write_to_file(LEDS_HAPTICS_DURATION_FILE, tout);
         write_to_file(LEDS_HAPTICS_ACTIVATE_FILE, "1");
     } else
-        write_to_file(VIBRATOR_TIMEOUT_FILE, std::to_string(timeout_ms));
+        write_to_file(VIBRATOR_TIMEOUT_FILE, tout);
 
     return 0;
 }
diff --git a/partition.cpp b/partition.cpp
index c278fa9..edf344f 100644
--- a/partition.cpp
+++ b/partition.cpp
@@ -2061,7 +2061,11 @@
 	if (NeedPreserveFooter)
 		Length < 0 ? dev_sz += Length : dev_sz -= CRYPT_FOOTER_OFFSET;
 
-	string size_str = to_string(dev_sz / 4096);
+	char dout[16];
+	sprintf(dout, "%llu", dev_sz / 4096);
+
+	//string size_str =to_string(dev_sz / 4096);
+	string size_str = dout;
 	string Command;
 
 	gui_msg(Msg("formatting_using=Formatting {1} using {2}...")(Display_Name)("mke2fs"));
