react-native-bspatch 1.1.4 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/README.md +22 -32
  2. package/android/src/main/java/vn/reactnativebspatch/BsPatchModule.kt +15 -102
  3. package/android/src/main/java/vn/reactnativebspatch/OtaBundleResolver.kt +21 -1
  4. package/cpp/bsdiff/bspatch.c +1 -0
  5. package/ios/OtaBundleResolver.swift +16 -1
  6. package/ios/RNBsPatch.mm +61 -154
  7. package/lib/commonjs/NativeBsPatch.js.map +1 -1
  8. package/lib/commonjs/index.js +4 -4
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/ota/OtaProvider.js +26 -22
  11. package/lib/commonjs/ota/OtaProvider.js.map +1 -1
  12. package/lib/commonjs/ota/otaAssetResolver.js +8 -2
  13. package/lib/commonjs/ota/otaAssetResolver.js.map +1 -1
  14. package/lib/commonjs/ota/otaCore.js +89 -141
  15. package/lib/commonjs/ota/otaCore.js.map +1 -1
  16. package/lib/commonjs/ota/otaLogger.js +0 -2
  17. package/lib/commonjs/ota/otaLogger.js.map +1 -1
  18. package/lib/commonjs/ota/otaMetadata.js +18 -7
  19. package/lib/commonjs/ota/otaMetadata.js.map +1 -1
  20. package/lib/commonjs/ota/storage/GitHubRawStorage.js +3 -1
  21. package/lib/commonjs/ota/storage/GitHubRawStorage.js.map +1 -1
  22. package/lib/commonjs/ota/types.js +1 -10
  23. package/lib/commonjs/ota/types.js.map +1 -1
  24. package/lib/module/NativeBsPatch.js.map +1 -1
  25. package/lib/module/index.js +1 -1
  26. package/lib/module/index.js.map +1 -1
  27. package/lib/module/ota/OtaProvider.js +26 -22
  28. package/lib/module/ota/OtaProvider.js.map +1 -1
  29. package/lib/module/ota/otaAssetResolver.js +8 -2
  30. package/lib/module/ota/otaAssetResolver.js.map +1 -1
  31. package/lib/module/ota/otaCore.js +88 -139
  32. package/lib/module/ota/otaCore.js.map +1 -1
  33. package/lib/module/ota/otaLogger.js +0 -2
  34. package/lib/module/ota/otaLogger.js.map +1 -1
  35. package/lib/module/ota/otaMetadata.js +18 -7
  36. package/lib/module/ota/otaMetadata.js.map +1 -1
  37. package/lib/module/ota/storage/GitHubRawStorage.js +3 -1
  38. package/lib/module/ota/storage/GitHubRawStorage.js.map +1 -1
  39. package/lib/module/ota/types.js +0 -9
  40. package/lib/module/ota/types.js.map +1 -1
  41. package/lib/typescript/NativeBsPatch.d.ts +3 -15
  42. package/lib/typescript/NativeBsPatch.d.ts.map +1 -1
  43. package/lib/typescript/index.d.ts +1 -1
  44. package/lib/typescript/index.d.ts.map +1 -1
  45. package/lib/typescript/ota/OtaProvider.d.ts.map +1 -1
  46. package/lib/typescript/ota/otaAssetResolver.d.ts.map +1 -1
  47. package/lib/typescript/ota/otaCore.d.ts +5 -42
  48. package/lib/typescript/ota/otaCore.d.ts.map +1 -1
  49. package/lib/typescript/ota/otaLogger.d.ts +1 -3
  50. package/lib/typescript/ota/otaLogger.d.ts.map +1 -1
  51. package/lib/typescript/ota/otaMetadata.d.ts +2 -2
  52. package/lib/typescript/ota/otaMetadata.d.ts.map +1 -1
  53. package/lib/typescript/ota/types.d.ts +18 -54
  54. package/lib/typescript/ota/types.d.ts.map +1 -1
  55. package/package.json +3 -6
  56. package/react-native-bspatch.podspec +0 -1
  57. package/src/NativeBsPatch.ts +3 -16
  58. package/src/index.ts +1 -1
  59. package/src/ota/OtaProvider.tsx +24 -23
  60. package/src/ota/otaAssetResolver.ts +5 -2
  61. package/src/ota/otaCore.ts +118 -176
  62. package/src/ota/otaLogger.ts +0 -2
  63. package/src/ota/otaMetadata.ts +18 -8
  64. package/src/ota/storage/GitHubRawStorage.ts +1 -1
  65. package/src/ota/types.ts +18 -57
  66. package/tools/build_ota.sh +117 -183
  67. package/tools/setup_project.js +33 -14
  68. package/tools/update_registry.js +24 -28
  69. package/tools/{upload_ota_custom.sh → upload_ota.sh} +33 -114
  70. package/lib/commonjs/crypto-js.d.js +0 -2
  71. package/lib/commonjs/crypto-js.d.js.map +0 -1
  72. package/lib/commonjs/ota/storage/CustomStorage.js +0 -160
  73. package/lib/commonjs/ota/storage/CustomStorage.js.map +0 -1
  74. package/lib/commonjs/ota/storage/GitHubReleaseStorage.js +0 -99
  75. package/lib/commonjs/ota/storage/GitHubReleaseStorage.js.map +0 -1
  76. package/lib/module/crypto-js.d.js +0 -2
  77. package/lib/module/crypto-js.d.js.map +0 -1
  78. package/lib/module/ota/storage/CustomStorage.js +0 -154
  79. package/lib/module/ota/storage/CustomStorage.js.map +0 -1
  80. package/lib/module/ota/storage/GitHubReleaseStorage.js +0 -93
  81. package/lib/module/ota/storage/GitHubReleaseStorage.js.map +0 -1
  82. package/lib/typescript/ota/storage/CustomStorage.d.ts +0 -12
  83. package/lib/typescript/ota/storage/CustomStorage.d.ts.map +0 -1
  84. package/lib/typescript/ota/storage/GitHubReleaseStorage.d.ts +0 -20
  85. package/lib/typescript/ota/storage/GitHubReleaseStorage.d.ts.map +0 -1
  86. package/src/crypto-js.d.ts +0 -1
  87. package/src/ota/storage/CustomStorage.ts +0 -166
  88. package/src/ota/storage/GitHubReleaseStorage.ts +0 -103
  89. package/tools/bsdiff +0 -0
package/ios/RNBsPatch.mm CHANGED
@@ -1,13 +1,10 @@
1
1
  #import "RNBsPatch.h"
2
2
  #import <Foundation/Foundation.h>
3
3
  #import <UIKit/UIKit.h>
4
- #import <zlib.h>
5
- #import <CommonCrypto/CommonHMAC.h>
6
4
  #import <CommonCrypto/CommonDigest.h>
7
5
  #import <Security/Security.h>
8
6
  #import <React/RCTLog.h>
9
7
  #import <React/RCTReloadCommand.h>
10
- #import <SSZipArchive/SSZipArchive.h>
11
8
 
12
9
  #if __has_include(<react_native_bspatch/react_native_bspatch-Swift.h>)
13
10
  #import <react_native_bspatch/react_native_bspatch-Swift.h>
@@ -60,21 +57,6 @@ RCT_EXPORT_METHOD(applyPatch:(NSString *)oldPath
60
57
  });
61
58
  }
62
59
 
63
- RCT_EXPORT_METHOD(unzip:(NSString *)source
64
- targetDir:(NSString *)targetDir
65
- resolve:(RCTPromiseResolveBlock)resolve
66
- reject:(RCTPromiseRejectBlock)reject)
67
- {
68
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
69
- BOOL success = [SSZipArchive unzipFileAtPath:source toDestination:targetDir];
70
- if (success) {
71
- resolve(@(YES));
72
- } else {
73
- reject(@"ERR_UNZIP", @"Failed to unzip file", nil);
74
- }
75
- });
76
- }
77
-
78
60
  RCT_EXPORT_METHOD(extractBundleFromAssets:(NSString *)assetName
79
61
  destPath:(NSString *)destPath
80
62
  resolve:(RCTPromiseResolveBlock)resolve
@@ -91,6 +73,8 @@ RCT_EXPORT_METHOD(extractBundleFromAssets:(NSString *)assetName
91
73
  return;
92
74
  }
93
75
  NSError *error = nil;
76
+ // copyItemAtPath fails if the destination exists (base.hbc is re-extracted on every update)
77
+ [[NSFileManager defaultManager] removeItemAtPath:destPath error:nil];
94
78
  BOOL success = [[NSFileManager defaultManager] copyItemAtPath:bundlePath toPath:destPath error:&error];
95
79
  if (success) {
96
80
  resolve(@(YES));
@@ -117,41 +101,48 @@ RCT_EXPORT_METHOD(markAsHealthy)
117
101
  [OtaBundleResolver markAsHealthy];
118
102
  }
119
103
 
120
- RCT_EXPORT_METHOD(decompressGzip:(NSString *)sourcePath
121
- destPath:(NSString *)destPath
122
- resolve:(RCTPromiseResolveBlock)resolve
123
- reject:(RCTPromiseRejectBlock)reject)
104
+ // Reads one DER TLV at *pos; returns content range and advances *pos past it.
105
+ static BOOL RNBsPatchReadDER(const uint8_t *b, NSUInteger len, NSUInteger *pos, uint8_t *tag, NSRange *content)
124
106
  {
125
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
126
- NSString *src = sourcePath;
127
- NSString *dst = destPath;
128
-
129
- // Remove existing destination file if present
130
- [[NSFileManager defaultManager] removeItemAtPath:dst error:nil];
131
-
132
- // Read the compressed data
133
- NSData *compressed = [NSData dataWithContentsOfFile:src];
134
- if (!compressed) {
135
- reject(@"ERR_GZIP_DECOMPRESS", @"Failed to read source file", nil);
136
- return;
137
- }
138
-
139
- // Decompress using zlib (Compression framework handles gzip automatically)
140
- // COMPRESSION_ZLIB wrapper detects gzip format from the header
141
- NSData *decompressed = [self decompressGzipData:compressed];
142
- if (!decompressed) {
143
- reject(@"ERR_GZIP_DECOMPRESS", @"Failed to decompress gzip data", nil);
144
- return;
145
- }
107
+ if (*pos + 2 > len) return NO;
108
+ *tag = b[(*pos)++];
109
+ NSUInteger l = b[(*pos)++];
110
+ if (l & 0x80) {
111
+ NSUInteger n = l & 0x7f;
112
+ if (n == 0 || n > 4 || *pos + n > len) return NO;
113
+ l = 0;
114
+ for (NSUInteger i = 0; i < n; i++) l = (l << 8) | b[(*pos)++];
115
+ }
116
+ if (l > len - *pos) return NO;
117
+ *content = NSMakeRange(*pos, l);
118
+ *pos += l;
119
+ return YES;
120
+ }
146
121
 
147
- NSError *error = nil;
148
- BOOL success = [decompressed writeToFile:dst options:NSDataWritingAtomic error:&error];
149
- if (success) {
150
- resolve(@(YES));
151
- } else {
152
- reject(@"ERR_GZIP_DECOMPRESS", error.localizedDescription, error);
153
- }
154
- });
122
+ // SubjectPublicKeyInfo (PEM "PUBLIC KEY") → raw key bytes SecKeyCreateWithData accepts
123
+ // (PKCS#1 for RSA, X9.63 point for EC). Returns nil if not a valid SPKI.
124
+ static NSData *RNBsPatchKeyFromSPKI(NSData *spki, BOOL *isRSA)
125
+ {
126
+ static const uint8_t rsaOID[] = {0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01};
127
+ static const uint8_t ecOID[] = {0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01};
128
+ const uint8_t *b = spki.bytes;
129
+ NSUInteger len = spki.length, pos = 0, inner;
130
+ uint8_t tag;
131
+ NSRange outer, algo, oid, bits;
132
+ if (!RNBsPatchReadDER(b, len, &pos, &tag, &outer) || tag != 0x30) return nil;
133
+ pos = outer.location;
134
+ if (!RNBsPatchReadDER(b, len, &pos, &tag, &algo) || tag != 0x30) return nil;
135
+ if (!RNBsPatchReadDER(b, len, &pos, &tag, &bits) || tag != 0x03 || bits.length < 2 || b[bits.location] != 0) return nil;
136
+ inner = algo.location;
137
+ if (!RNBsPatchReadDER(b, len, &inner, &tag, &oid) || tag != 0x06) return nil;
138
+ if (oid.length == sizeof(rsaOID) && memcmp(b + oid.location, rsaOID, sizeof(rsaOID)) == 0) {
139
+ *isRSA = YES;
140
+ } else if (oid.length == sizeof(ecOID) && memcmp(b + oid.location, ecOID, sizeof(ecOID)) == 0) {
141
+ *isRSA = NO;
142
+ } else {
143
+ return nil;
144
+ }
145
+ return [spki subdataWithRange:NSMakeRange(bits.location + 1, bits.length - 1)];
155
146
  }
156
147
 
157
148
  RCT_EXPORT_METHOD(verifySignature:(NSString *)filePath
@@ -204,80 +195,31 @@ RCT_EXPORT_METHOD(verifySignature:(NSString *)filePath
204
195
  CC_SHA256_Final(sha256, &shaCtx);
205
196
  NSData *sha256Data = [NSData dataWithBytes:sha256 length:CC_SHA256_DIGEST_LENGTH];
206
197
 
207
- // 1. Try RSA Public Key
208
- NSDictionary *rsaParams = @{
209
- (id)kSecAttrKeyType: (id)kSecAttrKeyTypeRSA,
210
- (id)kSecAttrKeyClass: (id)kSecAttrKeyClassPublic,
211
- };
212
- CFErrorRef rsaErr = NULL;
213
- SecKeyRef rsaKey = SecKeyCreateWithData((__bridge CFDataRef)keyData, (__bridge CFDictionaryRef)rsaParams, &rsaErr);
214
- if (rsaKey) {
215
- CFErrorRef verifyErr = NULL;
216
- Boolean isValid = SecKeyVerifySignature(
217
- rsaKey,
218
- kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA256,
219
- (__bridge CFDataRef)sha256Data,
220
- (__bridge CFDataRef)expectedSig,
221
- &verifyErr
222
- );
223
- CFRelease(rsaKey);
224
- if (!verifyErr) {
225
- resolve(@(isValid ? YES : NO));
226
- return;
227
- }
198
+ BOOL isRSA = NO;
199
+ NSData *rawKey = RNBsPatchKeyFromSPKI(keyData, &isRSA);
200
+ if (!rawKey) {
201
+ resolve(@(NO));
202
+ return;
228
203
  }
229
-
230
- // 2. Try ECDSA Public Key
231
- NSDictionary *ecParams = @{
232
- (id)kSecAttrKeyType: (id)kSecAttrKeyTypeECSECPrimeRandom,
204
+ NSDictionary *params = @{
205
+ (id)kSecAttrKeyType: isRSA ? (id)kSecAttrKeyTypeRSA : (id)kSecAttrKeyTypeECSECPrimeRandom,
233
206
  (id)kSecAttrKeyClass: (id)kSecAttrKeyClassPublic,
234
207
  };
235
- CFErrorRef ecErr = NULL;
236
- SecKeyRef ecKey = SecKeyCreateWithData((__bridge CFDataRef)keyData, (__bridge CFDictionaryRef)ecParams, &ecErr);
237
- if (ecKey) {
238
- CFErrorRef verifyErr = NULL;
239
- Boolean isValid = SecKeyVerifySignature(
240
- ecKey,
241
- kSecKeyAlgorithmECDSASignatureDigestX962SHA256,
242
- (__bridge CFDataRef)sha256Data,
243
- (__bridge CFDataRef)expectedSig,
244
- &verifyErr
245
- );
246
- CFRelease(ecKey);
247
- if (!verifyErr) {
248
- resolve(@(isValid ? YES : NO));
249
- return;
250
- }
251
- }
252
-
253
- // 3. Fallback: HMAC-SHA256
254
- NSInputStream *hmacStream = [NSInputStream inputStreamWithFileAtPath:filePath];
255
- if (!hmacStream) {
208
+ SecKeyRef key = SecKeyCreateWithData((__bridge CFDataRef)rawKey, (__bridge CFDictionaryRef)params, NULL);
209
+ if (!key) {
256
210
  resolve(@(NO));
257
211
  return;
258
212
  }
259
- [hmacStream open];
260
-
261
- CCHmacContext ctx;
262
- CCHmacInit(&ctx, kCCHmacAlgSHA256, keyData.bytes, keyData.length);
263
- while ([hmacStream hasBytesAvailable]) {
264
- NSInteger bytesRead = [hmacStream read:buffer maxLength:sizeof(buffer)];
265
- if (bytesRead > 0) {
266
- CCHmacUpdate(&ctx, buffer, (CC_LONG)bytesRead);
267
- } else if (bytesRead < 0) {
268
- [hmacStream close];
269
- resolve(@(NO));
270
- return;
271
- }
272
- }
273
- [hmacStream close];
274
-
275
- unsigned char hmac[CC_SHA256_DIGEST_LENGTH];
276
- CCHmacFinal(&ctx, hmac);
277
-
278
- BOOL isValid = (expectedSig.length == CC_SHA256_DIGEST_LENGTH) &&
279
- (memcmp(expectedSig.bytes, hmac, CC_SHA256_DIGEST_LENGTH) == 0);
280
- resolve(@(isValid));
213
+ // Fail closed: any verification error counts as an invalid signature
214
+ Boolean isValid = SecKeyVerifySignature(
215
+ key,
216
+ isRSA ? kSecKeyAlgorithmRSASignatureDigestPKCS1v15SHA256 : kSecKeyAlgorithmECDSASignatureDigestX962SHA256,
217
+ (__bridge CFDataRef)sha256Data,
218
+ (__bridge CFDataRef)expectedSig,
219
+ NULL
220
+ );
221
+ CFRelease(key);
222
+ resolve(@(isValid ? YES : NO));
281
223
  });
282
224
  }
283
225
 
@@ -292,41 +234,6 @@ RCT_EXPORT_METHOD(getAppVersion:(RCTPromiseResolveBlock)resolve
292
234
  }
293
235
  }
294
236
 
295
- - (NSData *)decompressGzipData:(NSData *)compressed {
296
- // Decompress gzip using zlib directly
297
- // gzip adds a 10-byte header + 8-byte footer over the raw zlib stream
298
- const size_t chunkSize = 65536;
299
- z_stream strm;
300
- memset(&strm, 0, sizeof(strm));
301
-
302
- strm.next_in = (Bytef *)compressed.bytes;
303
- strm.avail_in = (uInt)compressed.length;
304
-
305
- // 16 + MAX_WBITS = automatic gzip/zlib header detection
306
- if (inflateInit2(&strm, 16 + MAX_WBITS) != Z_OK) {
307
- return nil;
308
- }
309
-
310
- NSMutableData *decompressed = [NSMutableData dataWithCapacity:compressed.length * 4];
311
- unsigned char out[chunkSize];
312
- int ret;
313
-
314
- do {
315
- strm.next_out = out;
316
- strm.avail_out = chunkSize;
317
- ret = inflate(&strm, Z_FINISH);
318
- if (ret != Z_STREAM_END && ret != Z_OK && ret != Z_BUF_ERROR) {
319
- inflateEnd(&strm);
320
- return nil;
321
- }
322
- size_t have = chunkSize - strm.avail_out;
323
- [decompressed appendBytes:out length:have];
324
- } while (ret != Z_STREAM_END);
325
-
326
- inflateEnd(&strm);
327
- return [decompressed copy];
328
- }
329
-
330
237
  // Don't compile this code when we build for the old architecture.
331
238
  #ifdef RCT_NEW_ARCH_ENABLED
332
239
  - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeBsPatch.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAmEpCC,gCAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeBsPatch.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAsDpCC,gCAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
@@ -9,12 +9,12 @@ var _exportNames = {
9
9
  reloadBundle: true,
10
10
  initOtaAssetResolver: true,
11
11
  resetOtaAssetResolver: true,
12
- GitHubReleaseStorageProvider: true
12
+ GitHubRawStorageProvider: true
13
13
  };
14
- Object.defineProperty(exports, "GitHubReleaseStorageProvider", {
14
+ Object.defineProperty(exports, "GitHubRawStorageProvider", {
15
15
  enumerable: true,
16
16
  get: function () {
17
- return _GitHubReleaseStorage.GitHubReleaseStorageProvider;
17
+ return _GitHubRawStorage.GitHubRawStorageProvider;
18
18
  }
19
19
  });
20
20
  exports.applyPatch = applyPatch;
@@ -71,7 +71,7 @@ Object.keys(_types).forEach(function (key) {
71
71
  });
72
72
  });
73
73
  var _otaAssetResolver = require("./ota/otaAssetResolver");
74
- var _GitHubReleaseStorage = require("./ota/storage/GitHubReleaseStorage");
74
+ var _GitHubRawStorage = require("./ota/storage/GitHubRawStorage");
75
75
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
76
76
  function applyPatch(oldBundlePath, newBundlePath, patchPath) {
77
77
  return _NativeBsPatch.default.applyPatch(oldBundlePath, newBundlePath, patchPath);
@@ -1 +1 @@
1
- {"version":3,"names":["_NativeBsPatch","_interopRequireDefault","require","_otaLogger","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_OtaProvider","_types","_otaAssetResolver","_GitHubReleaseStorage","e","__esModule","default","applyPatch","oldBundlePath","newBundlePath","patchPath","NativeBsPatch","markAsHealthy","reloadBundle","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAkBA,IAAAC,UAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,UAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,UAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,UAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,YAAA,GAAAd,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAW,YAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,YAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,YAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,MAAA,GAAAf,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAY,MAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,MAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,MAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,iBAAA,GAAAhB,OAAA;AACA,IAAAiB,qBAAA,GAAAjB,OAAA;AAAkF,SAAAD,uBAAAmB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AApB3E,SAASG,UAAUA,CACxBC,aAAqB,EACrBC,aAAqB,EACrBC,SAAiB,EACC;EAClB,OAAOC,sBAAa,CAACJ,UAAU,CAACC,aAAa,EAAEC,aAAa,EAAEC,SAAS,CAAC;AAC1E;AAEO,SAASE,aAAaA,CAAA,EAAS;EACpC,OAAOD,sBAAa,CAACC,aAAa,CAAC,CAAC;AACtC;AAEO,SAASC,YAAYA,CAAA,EAAS;EACnC,OAAOF,sBAAa,CAACE,YAAY,CAAC,CAAC;AACrC;AAAC,IAAAC,QAAA,GAAAlB,OAAA,CAAAU,OAAA,GAQc;EACbC,UAAU;EACVM,YAAY;EACZD;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_NativeBsPatch","_interopRequireDefault","require","_otaLogger","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_OtaProvider","_types","_otaAssetResolver","_GitHubRawStorage","e","__esModule","default","applyPatch","oldBundlePath","newBundlePath","patchPath","NativeBsPatch","markAsHealthy","reloadBundle","_default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AAkBA,IAAAC,UAAA,GAAAD,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAF,UAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,UAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,UAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,YAAA,GAAAd,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAW,YAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,YAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,YAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,MAAA,GAAAf,OAAA;AAAAE,MAAA,CAAAC,IAAA,CAAAY,MAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,MAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,MAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,iBAAA,GAAAhB,OAAA;AACA,IAAAiB,iBAAA,GAAAjB,OAAA;AAA0E,SAAAD,uBAAAmB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AApBnE,SAASG,UAAUA,CACxBC,aAAqB,EACrBC,aAAqB,EACrBC,SAAiB,EACC;EAClB,OAAOC,sBAAa,CAACJ,UAAU,CAACC,aAAa,EAAEC,aAAa,EAAEC,SAAS,CAAC;AAC1E;AAEO,SAASE,aAAaA,CAAA,EAAS;EACpC,OAAOD,sBAAa,CAACC,aAAa,CAAC,CAAC;AACtC;AAEO,SAASC,YAAYA,CAAA,EAAS;EACnC,OAAOF,sBAAa,CAACE,YAAY,CAAC,CAAC;AACrC;AAAC,IAAAC,QAAA,GAAAlB,OAAA,CAAAU,OAAA,GAQc;EACbC,UAAU;EACVM,YAAY;EACZD;AACF,CAAC","ignoreList":[]}
@@ -70,7 +70,7 @@ function OtaProvider({
70
70
  */
71
71
  const executeApplyUpdate = (0, _react.useCallback)(async (patchList, currentVer, targetVer) => {
72
72
  console.log('[OtaProvider] executeApplyUpdate | targetV:', targetVer, 'currentV:', currentVer);
73
- const directPatch = patchList.find(p => p.fromVersion === currentVer && p.toVersion === targetVer && p.platform === _reactNative.Platform.OS);
73
+ const directPatch = patchList.find(p => p.fromVersion === currentVer && p.toVersion === targetVer && (!p.platform || p.platform === _reactNative.Platform.OS));
74
74
  if (!directPatch) {
75
75
  console.warn('[OtaProvider] No direct patch found for', currentVer, '->', targetVer);
76
76
  setStatus(_types.OtaStatus.ERROR);
@@ -113,7 +113,7 @@ function OtaProvider({
113
113
  await executeApplyUpdate(patches, currentVersion, latestVersion);
114
114
  }, [currentVersion, executeApplyUpdate, isDebugUpdateEnabled, latestVersion, patches]);
115
115
  const downloadBackgroundUpdate = (0, _react.useCallback)(async (patchList, localV, targetV) => {
116
- const directPatch = patchList.find(p => p.fromVersion === localV && p.toVersion === targetV && p.platform === _reactNative.Platform.OS);
116
+ const directPatch = patchList.find(p => p.fromVersion === localV && p.toVersion === targetV && (!p.platform || p.platform === _reactNative.Platform.OS));
117
117
  if (!directPatch) return;
118
118
  try {
119
119
  const effectiveConfig = await getEffectiveConfig();
@@ -158,15 +158,17 @@ function OtaProvider({
158
158
  setIsChecking(true);
159
159
  setStatus(_types.OtaStatus.CHECKING);
160
160
  setMessage('Checking for updates...');
161
- const effectiveConfig = await getEffectiveConfig();
162
- const log = (0, _otaLogger.createOtaLogger)(effectiveConfig.onEvent);
163
- log.emit(_otaLogger.OtaEvent.CHECK_UPDATE);
164
161
  try {
162
+ const effectiveConfig = await getEffectiveConfig();
163
+ (0, _otaLogger.createOtaLogger)(effectiveConfig.onEvent).emit(_otaLogger.OtaEvent.CHECK_UPDATE);
165
164
  const remotePatches = await (0, _otaCore.fetchOtaManifest)(effectiveConfig);
166
165
  const metadata = await (0, _otaMetadata.loadMetadata)(config.baseAppVersion);
167
166
  const localV = metadata.currentVersion;
168
167
  console.log('[OtaProvider] checkUpdates | localV:', localV, 'remotePatches count:', remotePatches.length);
169
- const platformPatches = remotePatches.filter(p => p.platform === _reactNative.Platform.OS);
168
+
169
+ // Skip versions that crashed on boot and were rolled back by the native resolver
170
+ const failed = metadata.failedVersions ?? [];
171
+ const platformPatches = remotePatches.filter(p => (!p.platform || p.platform === _reactNative.Platform.OS) && !failed.includes(p.toVersion));
170
172
  console.log('[OtaProvider] platformPatches count:', platformPatches.length);
171
173
  const maxV = platformPatches.length > 0 ? Math.max(...platformPatches.map(p => p.toVersion)) : localV;
172
174
  console.log('[OtaProvider] latestV determined:', maxV);
@@ -234,20 +236,6 @@ function OtaProvider({
234
236
  // We just mark bootstrap as done
235
237
  bootstrapDone.current = true;
236
238
 
237
- // Always mark as healthy after a successful JS bootstrap.
238
- //
239
- // The native OtaBundleResolver uses its own baseVersion (DEFAULT_BASE_VERSION=1),
240
- // independent of the JS-side config.baseAppVersion. It marks
241
- // lastLaunchSuccessful=false before loading ANY OTA bundle (even when
242
- // JS baseAppVersion has been bumped to match currentVersion). If we only
243
- // call markAsHealthy when currentVersion > JS baseAppVersion, we miss this
244
- // case and the native layer will rollback on the very next cold boot.
245
- //
246
- // markAsHealthy() is safe to call unconditionally — it's a no-op when
247
- // the metadata already has lastLaunchSuccessful=true.
248
- console.log(`[OtaProvider] Marking V${metadata.currentVersion} as healthy`);
249
- await markAsHealthy();
250
-
251
239
  // Mode-based auto-check
252
240
  const mode = config.updateMode ?? _types.OtaUpdateMode.MANUAL;
253
241
  if (mode === _types.OtaUpdateMode.ON_APP_START || mode === _types.OtaUpdateMode.BACKGROUND_DOWNLOAD) {
@@ -271,7 +259,9 @@ function OtaProvider({
271
259
  (0, _react.useEffect)(() => {
272
260
  const subscription = _reactNative.AppState.addEventListener('change', nextAppState => {
273
261
  // When going into background: if update is downloaded and ready, reload bundle silently
274
- if (appState.current === 'active' && nextAppState.match(/inactive|background/) && pendingReloadRef.current) {
262
+ if (appState.current === 'active' &&
263
+ // Not 'inactive': iOS fires it for Control Center, calls, Face ID prompts
264
+ nextAppState === 'background' && pendingReloadRef.current) {
275
265
  pendingReloadRef.current = false;
276
266
  _NativeBsPatch.default.reloadBundle();
277
267
  }
@@ -290,7 +280,10 @@ function OtaProvider({
290
280
  const markAsHealthy = async () => {
291
281
  const log = (0, _otaLogger.createOtaLogger)(config.onEvent);
292
282
  log.emit(_otaLogger.OtaEvent.MARK_HEALTHY);
293
- await (0, _otaMetadata.markHealthy)(config.baseAppVersion);
283
+ const {
284
+ appVersion
285
+ } = await getEffectiveConfig().catch(() => config);
286
+ await (0, _otaMetadata.markHealthy)(config.baseAppVersion, appVersion);
294
287
  _NativeBsPatch.default.markAsHealthy();
295
288
  };
296
289
  const resetToFactory = async () => {
@@ -334,6 +327,17 @@ function OtaProvider({
334
327
  const isBlocking = (0, _react.useMemo)(() => {
335
328
  return useLoadingView && (!isInitialized || config.updateMode === _types.OtaUpdateMode.ON_APP_START && (status === _types.OtaStatus.IDLE || status === _types.OtaStatus.CHECKING || status === _types.OtaStatus.DOWNLOADING || status === _types.OtaStatus.APPLYING || status === _types.OtaStatus.UPDATE_AVAILABLE));
336
329
  }, [useLoadingView, isInitialized, config.updateMode, status]);
330
+
331
+ // Mark healthy only after the app's own tree has committed its first render.
332
+ // This effect runs after all child effects, so a bundle that throws while
333
+ // rendering never gets here and the native resolver rolls it back next boot.
334
+ const healthyMarkedRef = (0, _react.useRef)(false);
335
+ (0, _react.useEffect)(() => {
336
+ if (isBlocking || !isInitialized || healthyMarkedRef.current) return;
337
+ healthyMarkedRef.current = true;
338
+ markAsHealthy().catch(e => console.warn('[OtaProvider] markAsHealthy failed:', e));
339
+ // eslint-disable-next-line react-hooks/exhaustive-deps
340
+ }, [isBlocking, isInitialized]);
337
341
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(OtaContext.Provider, {
338
342
  value: value,
339
343
  children: !isBlocking ? children : loadingView !== undefined ? loadingView : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeBlobUtil","_interopRequireDefault","_NativeBsPatch","_otaAssetResolver","_otaCore","_otaLogger","_otaMetadata","_types","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OtaContext","createContext","undefined","OtaProvider","children","config","loadingView","useLoadingView","status","setStatus","useState","OtaStatus","IDLE","message","setMessage","progress","setProgress","currentVersion","setCurrentVersion","baseAppVersion","latestVersion","setLatestVersion","pendingCount","setPendingCount","isChecking","setIsChecking","metrics","setMetrics","patches","setPatches","isInitialized","setIsInitialized","isUpdateReady","setIsUpdateReady","appState","useRef","AppState","currentState","isCheckingRef","pendingReloadRef","bootstrapDone","progressRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","setProgressIfChanged","useCallback","nextProgress","current","getEffectiveConfig","appVersion","nativeVer","NativeBsPatch","getAppVersion","Error","executeApplyUpdate","patchList","currentVer","targetVer","console","log","directPatch","find","p","fromVersion","toVersion","platform","Platform","OS","warn","ERROR","effectiveConfig","DOWNLOADING","applyOtaPatchInternal","s","msg","m","initOtaAssetResolver","percent","error","applyUpdate","UP_TO_DATE","downloadBackgroundUpdate","localV","targetV","SUCCESS","autoReload","checkUpdates","CHECKING","createOtaLogger","onEvent","emit","OtaEvent","CHECK_UPDATE","remotePatches","fetchOtaManifest","metadata","loadMetadata","length","platformPatches","filter","maxV","Math","max","map","UPDATE_AVAILABLE","updateMode","OtaUpdateMode","BACKGROUND_DOWNLOAD","ON_APP_START","ON_APP_FOREGROUND","useEffect","bootstrap","ReactNativeBlobUtil","fs","ls","dirs","DocumentDir","then","dir","startsWith","unlink","catch","markAsHealthy","mode","MANUAL","subscription","addEventListener","nextAppState","match","reloadBundle","remove","MARK_HEALTHY","markHealthy","resetToFactory","APPLYING","RESET_FACTORY","otaDir","exists","trashDir","Date","now","mv","value","checkUpdate","isBlocking","useMemo","jsx","Provider","View","style","styles","loadingContainer","jsxs","loadingCard","ActivityIndicator","size","color","Text","loadingTitle","loadingText","progressText","toFixed","useOta","context","useContext","StyleSheet","create","flex","justifyContent","alignItems","backgroundColor","paddingHorizontal","width","maxWidth","borderRadius","paddingVertical","borderWidth","borderColor","marginTop","fontSize","fontWeight","lineHeight","textAlign"],"sourceRoot":"../../../src","sources":["ota/OtaProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeBlobUtil","_interopRequireDefault","_NativeBsPatch","_otaAssetResolver","_otaCore","_otaLogger","_otaMetadata","_types","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OtaContext","createContext","undefined","OtaProvider","children","config","loadingView","useLoadingView","status","setStatus","useState","OtaStatus","IDLE","message","setMessage","progress","setProgress","currentVersion","setCurrentVersion","baseAppVersion","latestVersion","setLatestVersion","pendingCount","setPendingCount","isChecking","setIsChecking","metrics","setMetrics","patches","setPatches","isInitialized","setIsInitialized","isUpdateReady","setIsUpdateReady","appState","useRef","AppState","currentState","isCheckingRef","pendingReloadRef","bootstrapDone","progressRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","setProgressIfChanged","useCallback","nextProgress","current","getEffectiveConfig","appVersion","nativeVer","NativeBsPatch","getAppVersion","Error","executeApplyUpdate","patchList","currentVer","targetVer","console","log","directPatch","find","p","fromVersion","toVersion","platform","Platform","OS","warn","ERROR","effectiveConfig","DOWNLOADING","applyOtaPatchInternal","s","msg","m","initOtaAssetResolver","percent","error","applyUpdate","UP_TO_DATE","downloadBackgroundUpdate","localV","targetV","SUCCESS","autoReload","checkUpdates","CHECKING","createOtaLogger","onEvent","emit","OtaEvent","CHECK_UPDATE","remotePatches","fetchOtaManifest","metadata","loadMetadata","length","failed","failedVersions","platformPatches","filter","includes","maxV","Math","max","map","UPDATE_AVAILABLE","updateMode","OtaUpdateMode","BACKGROUND_DOWNLOAD","ON_APP_START","ON_APP_FOREGROUND","useEffect","bootstrap","ReactNativeBlobUtil","fs","ls","dirs","DocumentDir","then","dir","startsWith","unlink","catch","mode","MANUAL","subscription","addEventListener","nextAppState","reloadBundle","match","remove","markAsHealthy","MARK_HEALTHY","markHealthy","resetToFactory","APPLYING","RESET_FACTORY","otaDir","exists","trashDir","Date","now","mv","value","checkUpdate","isBlocking","useMemo","healthyMarkedRef","jsx","Provider","View","style","styles","loadingContainer","jsxs","loadingCard","ActivityIndicator","size","color","Text","loadingTitle","loadingText","progressText","toFixed","useOta","context","useContext","StyleSheet","create","flex","justifyContent","alignItems","backgroundColor","paddingHorizontal","width","maxWidth","borderRadius","paddingVertical","borderWidth","borderColor","marginTop","fontSize","fontWeight","lineHeight","textAlign"],"sourceRoot":"../../../src","sources":["ota/OtaProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -112,8 +112,14 @@ const patchAssetResolver = () => {
112
112
  uri: finalUri
113
113
  };
114
114
  } else {
115
- // Android: let the default responder load it from apk assets (res.uri is correct)
116
- return res;
115
+ // Android: with a file-based bundle RN points at ota/vN/drawable-*/x.png,
116
+ // which doesn't exist. Base assets live in the APK as drawable/raw
117
+ // resources, addressed by name (originalPath: "drawable-mdpi/name.png").
118
+ const resName = found.originalPath.split('/').pop().replace(/\.[^.]+$/, '');
119
+ return {
120
+ ...res,
121
+ uri: resName
122
+ };
117
123
  }
118
124
  }
119
125
  const localPath = `${ASSET_STORE_DIR}/${found.hash}.${found.ext}`;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_reactNativeBlobUtil","_interopRequireDefault","_NativeBsPatch","e","__esModule","default","ASSET_STORE_DIR","ReactNativeBlobUtil","fs","dirs","DocumentDir","assetManifest","assetMap","Map","assetList","assetLookupCache","isPatched","log","msg","formatted","console","NativeBsPatch","logNative","initOtaAssetResolver","version","otaDir","versionDir","manifestPath","exists","content","readFile","JSON","parse","map","list","assets","forEach","a","normPath","originalPath","toLowerCase","replace","_normPath","set","length","patchAssetResolver","message","exports","resolveAssetSource","Image","setCustomSourceTransformer","resolver","res","defaultAsset","uri","startsWith","normUri","cached","get","found","undefined","find","endsWith","isBase","Platform","OS","finalUri","MainBundleDir","localPath","hash","ext","includes","resetOtaAssetResolver"],"sourceRoot":"../../../src","sources":["ota/otaAssetResolver.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_reactNativeBlobUtil","_interopRequireDefault","_NativeBsPatch","e","__esModule","default","ASSET_STORE_DIR","ReactNativeBlobUtil","fs","dirs","DocumentDir","assetManifest","assetMap","Map","assetList","assetLookupCache","isPatched","log","msg","formatted","console","NativeBsPatch","logNative","initOtaAssetResolver","version","otaDir","versionDir","manifestPath","exists","content","readFile","JSON","parse","map","list","assets","forEach","a","normPath","originalPath","toLowerCase","replace","_normPath","set","length","patchAssetResolver","message","exports","resolveAssetSource","Image","setCustomSourceTransformer","resolver","res","defaultAsset","uri","startsWith","normUri","cached","get","found","undefined","find","endsWith","isBase","Platform","OS","finalUri","MainBundleDir","resName","split","pop","localPath","hash","ext","includes","resetOtaAssetResolver"],"sourceRoot":"../../../src","sources":["ota/otaAssetResolver.ts"],"mappings":"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","ignoreList":[]}