apex: unmount flattened apex directory before installing zips

Change-Id: Idd1cadedcab94e81e30a487bd09f9173e5fe577e
diff --git a/gui/action.cpp b/gui/action.cpp
index 145a55b..8943234 100755
--- a/gui/action.cpp
+++ b/gui/action.cpp
@@ -400,6 +400,11 @@
 	if (simulate) {
 		simulate_progress_bar();
 	} else {
+		char apex_enabled[PROPERTY_VALUE_MAX];
+		property_get("twrp.apex.flattened", apex_enabled, "");
+		if (strcmp(apex_enabled, "true") == 0) {
+			umount("/apex");
+		}
 		ret_val = TWinstall_zip(filename.c_str(), wipe_cache, (bool) !DataManager::GetIntValue(TW_SKIP_DIGEST_CHECK_ZIP_VAR));
 		PartitionManager.Unlock_Block_Partitions();
 		// Now, check if we need to ensure TWRP remains installed...
diff --git a/twrpApex.cpp b/twrpApex.cpp
index 45e3e30..5531445 100755
--- a/twrpApex.cpp
+++ b/twrpApex.cpp
@@ -45,6 +45,7 @@
 			LOGERR("Unable to bind mount flattened apex directory\n");
 			return false;
 		}
+		android::base::SetProperty("twrp.apex.flattened", "true");
 		return true;
 	}
 	if (!mountApexOnLoopbackDevices(apexFiles)) {
diff --git a/twrpApex.hpp b/twrpApex.hpp
index edd1d5f..1c85d06 100755
--- a/twrpApex.hpp
+++ b/twrpApex.hpp
@@ -15,6 +15,7 @@
 #include <sys/sysmacros.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include <android-base/properties.h>
 
 #include <ziparchive/zip_archive.h>
 #include "twcommon.h"