apex: fix selinux denials

We also look to use the loop-control device to identify loop devices.
We only create devices if they don't exist. Modern kernels can have
an option CONFIG_BLK_DEV_LOOP_MIN_COUNT=16 to pre-create the devices.

Change-Id: Ib10cd29f17be4684dd75e0927a2862bf541cd661
diff --git a/twrpApex.hpp b/twrpApex.hpp
index b00b9ae..f42ed8a 100755
--- a/twrpApex.hpp
+++ b/twrpApex.hpp
@@ -18,11 +18,11 @@
 #include <ziparchive/zip_archive.h>
 #include "twcommon.h"
 
-
 #define APEX_DIR "/system_root/system/apex"
 #define APEX_PAYLOAD "apex_payload.img"
 #define LOOP_BLOCK_DEVICE_DIR "/dev/block/"
 #define APEX_BASE "/apex/"
+#define LOOP_CONTROL "/dev/loop-control"
 
 class twrpApex {
 public:
@@ -30,7 +30,7 @@
 
 private:
 	std::string unzipImage(std::string file);
-	bool createLoopBackDevices(size_t count);
+	bool mountApexOnLoopbackDevices(std::vector<std::string> apexFiles);
 	bool loadApexImage(std::string fileToMount, size_t loop_device_number);
 };
 #endif