summaryrefslogtreecommitdiffstats
path: root/twinstall.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'twinstall.cpp')
-rw-r--r--twinstall.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/twinstall.cpp b/twinstall.cpp
index f18570186..01bd67278 100644
--- a/twinstall.cpp
+++ b/twinstall.cpp
@@ -31,16 +31,17 @@
#include "mincrypt/rsa.h"
#include "mincrypt/sha.h"
#include "minui/minui.h"
-#ifdef HAVE_SELINUX
+#include "mtdutils/mounts.h"
+#include "mtdutils/mtdutils.h"
+#if (ANDROID_VERSION >= 5)
#include "minzip/SysUtil.h"
#include "minzip/Zip.h"
+#include "verifier.h"
#else
+#include "verifierold.h"
#include "minzipold/SysUtil.h"
#include "minzipold/Zip.h"
#endif
-#include "mtdutils/mounts.h"
-#include "mtdutils/mtdutils.h"
-#include "verifier.h"
#include "variables.h"
#include "data.hpp"
#include "partitions.hpp"
@@ -278,28 +279,44 @@ extern "C" int TWinstall_zip(const char* path, int* wipe_cache) {
#endif
DataManager::SetProgress(0);
+#if (ANDROID_VERSION >= 5)
MemMapping map;
if (sysMapFile(path, &map) != 0) {
LOGERR("Failed to sysMapFile '%s'\n", path);
return -1;
}
+#endif
if (zip_verify) {
gui_print("Verifying zip signature...\n");
+#if (ANDROID_VERSION >= 5)
ret_val = verify_file(map.addr, map.length);
+#else
+ ret_val = verify_file(path);
+#endif
if (ret_val != VERIFY_SUCCESS) {
LOGERR("Zip signature verification failed: %i\n", ret_val);
+#if (ANDROID_VERSION >= 5)
sysReleaseMap(&map);
+#endif
return -1;
}
}
+#if (ANDROID_VERSION >= 5)
ret_val = mzOpenZipArchive(map.addr, map.length, &Zip);
+#else
+ ret_val = mzOpenZipArchive(path, &Zip);
+#endif
if (ret_val != 0) {
LOGERR("Zip file is corrupt!\n", path);
+#if (ANDROID_VERSION >= 5)
sysReleaseMap(&map);
+#endif
return INSTALL_CORRUPT;
}
ret_val = Run_Update_Binary(path, &Zip, wipe_cache);
+#if (ANDROID_VERSION >= 5)
sysReleaseMap(&map);
+#endif
return ret_val;
}