From e8307d6501bdabba8f07030e4ed606e7c8a8d09e Mon Sep 17 00:00:00 2001 From: Geoffrey Goh Date: Fri, 19 Feb 2016 10:58:04 -0800 Subject: [PATCH] verifyHashForZipUpdate -> verifyHashForDiffUpdate --- .../com/microsoft/codepush/react/CodePushPackage.java | 7 +++++-- .../microsoft/codepush/react/CodePushUpdateUtils.java | 3 +-- ios/CodePush/CodePush.h | 6 +++--- ios/CodePush/CodePushPackage.m | 9 +++++---- ios/CodePush/CodePushUpdateUtils.m | 6 +++--- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/android/app/src/main/java/com/microsoft/codepush/react/CodePushPackage.java b/android/app/src/main/java/com/microsoft/codepush/react/CodePushPackage.java index 6623caf..60a9569 100644 --- a/android/app/src/main/java/com/microsoft/codepush/react/CodePushPackage.java +++ b/android/app/src/main/java/com/microsoft/codepush/react/CodePushPackage.java @@ -230,7 +230,8 @@ public class CodePushPackage { // Merge contents with current update based on the manifest String diffManifestFilePath = CodePushUtils.appendPathComponent(unzippedFolderPath, DIFF_MANIFEST_FILE_NAME); - if (FileUtils.fileAtPathExists(diffManifestFilePath)) { + boolean isDiffUpdate = FileUtils.fileAtPathExists(diffManifestFilePath); + if (isDiffUpdate) { String currentPackageFolderPath = getCurrentPackageFolderPath(); CodePushUpdateUtils.copyNecessaryFilesFromCurrentPackage(diffManifestFilePath, currentPackageFolderPath, newUpdateFolderPath); File diffManifestFile = new File(diffManifestFilePath); @@ -252,7 +253,9 @@ public class CodePushPackage { metadataFileFromOldUpdate.delete(); } - CodePushUpdateUtils.verifyHashForZipUpdate(newUpdateFolderPath, newUpdateHash); + if (isDiffUpdate) { + CodePushUpdateUtils.verifyHashForDiffUpdate(newUpdateFolderPath, newUpdateHash); + } JSONObject updatePackageJSON = CodePushUtils.convertReadableToJsonObject(updatePackage); try { diff --git a/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateUtils.java b/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateUtils.java index fc97fa6..d8c38ff 100644 --- a/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateUtils.java +++ b/android/app/src/main/java/com/microsoft/codepush/react/CodePushUpdateUtils.java @@ -31,7 +31,6 @@ public class CodePushUpdateUtils { addContentsOfFolderToManifest(fullFilePath, relativePath, manifest); } else { try { - // Substring 1 because appendPathComponent creates a "/" prefix to the relativePath. manifest.add(relativePath + ":" + computeHash(new FileInputStream(file))); } catch (FileNotFoundException e) { // Should not happen. @@ -103,7 +102,7 @@ public class CodePushUpdateUtils { return null; } - public static void verifyHashForZipUpdate(String folderPath, String expectedHash) { + public static void verifyHashForDiffUpdate(String folderPath, String expectedHash) { ArrayList updateContentsManifest = new ArrayList(); addContentsOfFolderToManifest(folderPath, "", updateContentsManifest); Collections.sort(updateContentsManifest); diff --git a/ios/CodePush/CodePush.h b/ios/CodePush/CodePush.h index b77a531..5584325 100644 --- a/ios/CodePush/CodePush.h +++ b/ios/CodePush/CodePush.h @@ -111,9 +111,9 @@ failCallback:(void (^)(NSError *err))failCallback; error:(NSError **)error; + (NSString *)findMainBundleInFolder:(NSString *)folderPath error:(NSError **)error; -+ (BOOL)verifyHashForZipUpdate:(NSString *)finalUpdateFolder - expectedHash:(NSString *)expectedHash - error:(NSError **)error; ++ (BOOL)verifyHashForDiffUpdate:(NSString *)finalUpdateFolder + expectedHash:(NSString *)expectedHash + error:(NSError **)error; @end diff --git a/ios/CodePush/CodePushPackage.m b/ios/CodePush/CodePushPackage.m index 929f3d3..d5f4d4f 100644 --- a/ios/CodePush/CodePushPackage.m +++ b/ios/CodePush/CodePushPackage.m @@ -257,8 +257,9 @@ NSString * const UnzippedFolderName = @"unzipped"; } NSString *diffManifestFilePath = [unzippedFolderPath stringByAppendingPathComponent:DiffManifestFileName]; + BOOL isDiffUpdate = [[NSFileManager defaultManager] fileExistsAtPath:diffManifestFilePath]; - if ([[NSFileManager defaultManager] fileExistsAtPath:diffManifestFilePath]) { + if (isDiffUpdate) { // Copy the current package to the new package. NSString *currentPackageFolderPath = [self getCurrentPackageFolderPath:&error]; if (error) { @@ -368,9 +369,9 @@ NSString * const UnzippedFolderName = @"unzipped"; } } - if (![CodePushUpdateUtils verifyHashForZipUpdate:newUpdateFolderPath - expectedHash:newUpdateHash - error:&error]) { + if (isDiffUpdate && ![CodePushUpdateUtils verifyHashForDiffUpdate:newUpdateFolderPath + expectedHash:newUpdateHash + error:&error]) { if (error) { failCallback(error); return; diff --git a/ios/CodePush/CodePushUpdateUtils.m b/ios/CodePush/CodePushUpdateUtils.m index 8a2e23d..d48e95d 100644 --- a/ios/CodePush/CodePushUpdateUtils.m +++ b/ios/CodePush/CodePushUpdateUtils.m @@ -127,9 +127,9 @@ return nil; } -+ (BOOL)verifyHashForZipUpdate:(NSString *)finalUpdateFolder - expectedHash:(NSString *)expectedHash - error:(NSError **)error ++ (BOOL)verifyHashForDiffUpdate:(NSString *)finalUpdateFolder + expectedHash:(NSString *)expectedHash + error:(NSError **)error { NSMutableArray *updateContentsManifest = [NSMutableArray array]; [self addContentsOfFolderToManifest:finalUpdateFolder