react-native-bspatch 1.1.2 → 1.1.3
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.
- package/README.md +120 -22
- package/android/src/main/java/vn/reactnativebspatch/BsPatchModule.kt +117 -17
- package/cpp/CMakeLists.txt +9 -1
- package/cpp/bsdiff/bspatch.c +14 -3
- package/cpp/bsdiff/bspatch_wrapper.c +124 -40
- package/ios/RNBsPatch.mm +142 -1
- package/lib/commonjs/NativeBsPatch.js.map +1 -1
- package/lib/commonjs/ota/OtaProvider.js +61 -12
- package/lib/commonjs/ota/OtaProvider.js.map +1 -1
- package/lib/commonjs/ota/otaCore.js +43 -20
- package/lib/commonjs/ota/otaCore.js.map +1 -1
- package/lib/commonjs/ota/otaMetadata.js +41 -5
- package/lib/commonjs/ota/otaMetadata.js.map +1 -1
- package/lib/commonjs/ota/storage/CustomStorage.js +23 -3
- package/lib/commonjs/ota/storage/CustomStorage.js.map +1 -1
- package/lib/commonjs/ota/storage/GitHubRawStorage.js +3 -0
- package/lib/commonjs/ota/storage/GitHubRawStorage.js.map +1 -1
- package/lib/commonjs/ota/storage/GitHubReleaseStorage.js +3 -0
- package/lib/commonjs/ota/storage/GitHubReleaseStorage.js.map +1 -1
- package/lib/module/NativeBsPatch.js.map +1 -1
- package/lib/module/ota/OtaProvider.js +61 -12
- package/lib/module/ota/OtaProvider.js.map +1 -1
- package/lib/module/ota/otaCore.js +43 -20
- package/lib/module/ota/otaCore.js.map +1 -1
- package/lib/module/ota/otaMetadata.js +38 -3
- package/lib/module/ota/otaMetadata.js.map +1 -1
- package/lib/module/ota/storage/CustomStorage.js +23 -3
- package/lib/module/ota/storage/CustomStorage.js.map +1 -1
- package/lib/module/ota/storage/GitHubRawStorage.js +3 -0
- package/lib/module/ota/storage/GitHubRawStorage.js.map +1 -1
- package/lib/module/ota/storage/GitHubReleaseStorage.js +3 -0
- package/lib/module/ota/storage/GitHubReleaseStorage.js.map +1 -1
- package/lib/typescript/NativeBsPatch.d.ts +11 -0
- package/lib/typescript/NativeBsPatch.d.ts.map +1 -1
- package/lib/typescript/ota/OtaProvider.d.ts.map +1 -1
- package/lib/typescript/ota/otaCore.d.ts +3 -1
- package/lib/typescript/ota/otaCore.d.ts.map +1 -1
- package/lib/typescript/ota/otaMetadata.d.ts +6 -0
- package/lib/typescript/ota/otaMetadata.d.ts.map +1 -1
- package/lib/typescript/ota/storage/CustomStorage.d.ts.map +1 -1
- package/lib/typescript/ota/storage/GitHubRawStorage.d.ts.map +1 -1
- package/lib/typescript/ota/storage/GitHubReleaseStorage.d.ts.map +1 -1
- package/lib/typescript/ota/types.d.ts +6 -2
- package/lib/typescript/ota/types.d.ts.map +1 -1
- package/package.json +3 -1
- package/react-native-bspatch.podspec +6 -1
- package/src/NativeBsPatch.ts +17 -0
- package/src/ota/OtaProvider.tsx +80 -23
- package/src/ota/otaCore.ts +54 -24
- package/src/ota/otaMetadata.ts +46 -4
- package/src/ota/storage/CustomStorage.ts +26 -3
- package/src/ota/storage/GitHubRawStorage.ts +5 -0
- package/src/ota/storage/GitHubReleaseStorage.ts +5 -0
- package/src/ota/types.ts +6 -2
- package/tools/build_ota.sh +103 -7
- package/tools/bump_version.js +133 -0
- package/tools/generate_keys.js +75 -0
- package/tools/update_registry.js +51 -1
|
@@ -27,8 +27,10 @@ export function OtaProvider({
|
|
|
27
27
|
const [metrics, setMetrics] = useState(null);
|
|
28
28
|
const [patches, setPatches] = useState([]);
|
|
29
29
|
const [isInitialized, setIsInitialized] = useState(false);
|
|
30
|
+
const [isUpdateReady, setIsUpdateReady] = useState(false);
|
|
30
31
|
const appState = useRef(AppState.currentState);
|
|
31
32
|
const isCheckingRef = useRef(false);
|
|
33
|
+
const pendingReloadRef = useRef(false);
|
|
32
34
|
const bootstrapDone = useRef(false);
|
|
33
35
|
const progressRef = useRef(0);
|
|
34
36
|
const isDebugUpdateEnabled = !__DEV__ || config.allowDebugUpdates === true;
|
|
@@ -39,6 +41,21 @@ export function OtaProvider({
|
|
|
39
41
|
progressRef.current = nextProgress;
|
|
40
42
|
setProgress(nextProgress);
|
|
41
43
|
}, []);
|
|
44
|
+
const getEffectiveConfig = useCallback(async () => {
|
|
45
|
+
if (config.appVersion) return config;
|
|
46
|
+
try {
|
|
47
|
+
const nativeVer = await NativeBsPatch.getAppVersion();
|
|
48
|
+
if (!nativeVer) {
|
|
49
|
+
throw new Error('Native appVersion is empty');
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
...config,
|
|
53
|
+
appVersion: nativeVer
|
|
54
|
+
};
|
|
55
|
+
} catch (e) {
|
|
56
|
+
throw new Error(`[OtaProvider] Failed to auto-detect appVersion from native: ${e.message}. ` + `Please set versionName (Android) / CFBundleShortVersionString (iOS), or provide config.appVersion explicitly.`);
|
|
57
|
+
}
|
|
58
|
+
}, [config]);
|
|
42
59
|
|
|
43
60
|
/**
|
|
44
61
|
* Core apply update logic — separated so it can be mapped to button clicks
|
|
@@ -54,10 +71,11 @@ export function OtaProvider({
|
|
|
54
71
|
return;
|
|
55
72
|
}
|
|
56
73
|
try {
|
|
74
|
+
const effectiveConfig = await getEffectiveConfig();
|
|
57
75
|
setStatus(OtaStatus.DOWNLOADING);
|
|
58
76
|
progressRef.current = 0;
|
|
59
77
|
setProgress(0);
|
|
60
|
-
await applyOtaPatchInternal(directPatch,
|
|
78
|
+
await applyOtaPatchInternal(directPatch, effectiveConfig, (s, msg, m) => {
|
|
61
79
|
setMessage(msg);
|
|
62
80
|
setStatus(s);
|
|
63
81
|
if (m) {
|
|
@@ -73,7 +91,7 @@ export function OtaProvider({
|
|
|
73
91
|
setStatus(OtaStatus.ERROR);
|
|
74
92
|
setMessage(`Update failed: ${error.message}`);
|
|
75
93
|
}
|
|
76
|
-
}, [
|
|
94
|
+
}, [getEffectiveConfig, setProgressIfChanged]);
|
|
77
95
|
|
|
78
96
|
/**
|
|
79
97
|
* Exposed method for manual trigger
|
|
@@ -87,6 +105,34 @@ export function OtaProvider({
|
|
|
87
105
|
}
|
|
88
106
|
await executeApplyUpdate(patches, currentVersion, latestVersion);
|
|
89
107
|
}, [currentVersion, executeApplyUpdate, isDebugUpdateEnabled, latestVersion, patches]);
|
|
108
|
+
const downloadBackgroundUpdate = useCallback(async (patchList, localV, targetV) => {
|
|
109
|
+
const directPatch = patchList.find(p => p.fromVersion === localV && p.toVersion === targetV && p.platform === Platform.OS);
|
|
110
|
+
if (!directPatch) return;
|
|
111
|
+
try {
|
|
112
|
+
const effectiveConfig = await getEffectiveConfig();
|
|
113
|
+
await applyOtaPatchInternal(directPatch, effectiveConfig, (s, msg, m) => {
|
|
114
|
+
if (s === OtaStatus.SUCCESS) {
|
|
115
|
+
setIsUpdateReady(true);
|
|
116
|
+
pendingReloadRef.current = true;
|
|
117
|
+
setStatus(OtaStatus.UP_TO_DATE);
|
|
118
|
+
setMessage(`Update V${targetV} ready for next launch`);
|
|
119
|
+
if (m) {
|
|
120
|
+
setMetrics(m);
|
|
121
|
+
initOtaAssetResolver(targetV);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}, () => {},
|
|
125
|
+
// silent: background doesn't spam progress
|
|
126
|
+
{
|
|
127
|
+
autoReload: false
|
|
128
|
+
} // Do NOT reload immediately
|
|
129
|
+
);
|
|
130
|
+
} catch (e) {
|
|
131
|
+
if (__DEV__) {
|
|
132
|
+
console.warn('[OtaProvider] Silent background update failed:', e);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}, [getEffectiveConfig]);
|
|
90
136
|
|
|
91
137
|
/**
|
|
92
138
|
* Check for updates from the manifest.
|
|
@@ -105,10 +151,11 @@ export function OtaProvider({
|
|
|
105
151
|
setIsChecking(true);
|
|
106
152
|
setStatus(OtaStatus.CHECKING);
|
|
107
153
|
setMessage('Checking for updates...');
|
|
108
|
-
const
|
|
154
|
+
const effectiveConfig = await getEffectiveConfig();
|
|
155
|
+
const log = createOtaLogger(effectiveConfig.onEvent);
|
|
109
156
|
log.emit(OtaEvent.CHECK_UPDATE);
|
|
110
157
|
try {
|
|
111
|
-
const remotePatches = await fetchOtaManifest(
|
|
158
|
+
const remotePatches = await fetchOtaManifest(effectiveConfig);
|
|
112
159
|
const metadata = await loadMetadata(config.baseAppVersion);
|
|
113
160
|
const localV = metadata.currentVersion;
|
|
114
161
|
console.log('[OtaProvider] checkUpdates | localV:', localV, 'remotePatches count:', remotePatches.length);
|
|
@@ -143,12 +190,7 @@ export function OtaProvider({
|
|
|
143
190
|
isCheckingRef.current = false;
|
|
144
191
|
setIsChecking(false);
|
|
145
192
|
}
|
|
146
|
-
}, [config, executeApplyUpdate, isDebugUpdateEnabled]);
|
|
147
|
-
const downloadBackgroundUpdate = async (patchList, localV, targetV) => {
|
|
148
|
-
const directPatch = patchList.find(p => p.fromVersion === localV && p.toVersion === targetV);
|
|
149
|
-
if (!directPatch) return;
|
|
150
|
-
console.warn('[OtaProvider] BACKGROUND_DOWNLOAD mode is not yet implemented. ' + 'Patches were found but no download occurred. ' + 'Use MANUAL or ON_APP_START mode for now.');
|
|
151
|
-
};
|
|
193
|
+
}, [config, executeApplyUpdate, isDebugUpdateEnabled, downloadBackgroundUpdate, getEffectiveConfig]);
|
|
152
194
|
|
|
153
195
|
/**
|
|
154
196
|
* Bootstrap: runs once on mount.
|
|
@@ -217,10 +259,15 @@ export function OtaProvider({
|
|
|
217
259
|
}, []);
|
|
218
260
|
|
|
219
261
|
/**
|
|
220
|
-
* AppState listener for ON_APP_FOREGROUND mode
|
|
262
|
+
* AppState listener for ON_APP_FOREGROUND mode and silent background reload
|
|
221
263
|
*/
|
|
222
264
|
useEffect(() => {
|
|
223
265
|
const subscription = AppState.addEventListener('change', nextAppState => {
|
|
266
|
+
// When going into background: if update is downloaded and ready, reload bundle silently
|
|
267
|
+
if (appState.current === 'active' && nextAppState.match(/inactive|background/) && pendingReloadRef.current) {
|
|
268
|
+
pendingReloadRef.current = false;
|
|
269
|
+
NativeBsPatch.reloadBundle();
|
|
270
|
+
}
|
|
224
271
|
if (appState.current.match(/inactive|background/) && nextAppState === 'active' && bootstrapDone.current) {
|
|
225
272
|
const mode = config.updateMode ?? OtaUpdateMode.MANUAL;
|
|
226
273
|
if (mode === OtaUpdateMode.ON_APP_FOREGROUND) {
|
|
@@ -268,10 +315,12 @@ export function OtaProvider({
|
|
|
268
315
|
pendingCount,
|
|
269
316
|
isChecking,
|
|
270
317
|
metrics,
|
|
318
|
+
isUpdateReady,
|
|
271
319
|
applyUpdate,
|
|
272
320
|
resetToFactory,
|
|
273
321
|
markAsHealthy,
|
|
274
|
-
checkUpdate: checkUpdates
|
|
322
|
+
checkUpdate: checkUpdates,
|
|
323
|
+
reloadBundle: () => NativeBsPatch.reloadBundle()
|
|
275
324
|
};
|
|
276
325
|
|
|
277
326
|
// Logic to determine if we should block the UI
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","ActivityIndicator","AppState","Platform","StyleSheet","Text","View","ReactNativeBlobUtil","NativeBsPatch","initOtaAssetResolver","applyOtaPatchInternal","fetchOtaManifest","createOtaLogger","OtaEvent","loadMetadata","markHealthy","OtaStatus","OtaUpdateMode","jsx","_jsx","jsxs","_jsxs","OtaContext","undefined","OtaProvider","children","config","loadingView","useLoadingView","status","setStatus","IDLE","message","setMessage","progress","setProgress","currentVersion","setCurrentVersion","baseAppVersion","latestVersion","setLatestVersion","pendingCount","setPendingCount","isChecking","setIsChecking","metrics","setMetrics","patches","setPatches","isInitialized","setIsInitialized","appState","currentState","isCheckingRef","bootstrapDone","progressRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","setProgressIfChanged","nextProgress","current","executeApplyUpdate","patchList","currentVer","targetVer","console","log","directPatch","find","p","fromVersion","toVersion","platform","OS","warn","ERROR","DOWNLOADING","s","msg","m","percent","error","applyUpdate","UP_TO_DATE","checkUpdates","CHECKING","onEvent","emit","CHECK_UPDATE","remotePatches","metadata","localV","length","platformPatches","filter","maxV","Math","max","map","UPDATE_AVAILABLE","updateMode","BACKGROUND_DOWNLOAD","downloadBackgroundUpdate","ON_APP_START","ON_APP_FOREGROUND","targetV","bootstrap","fs","ls","dirs","DocumentDir","then","dir","startsWith","unlink","catch","markAsHealthy","mode","MANUAL","subscription","addEventListener","nextAppState","match","remove","MARK_HEALTHY","resetToFactory","APPLYING","RESET_FACTORY","otaDir","exists","trashDir","Date","now","mv","reloadBundle","value","checkUpdate","isBlocking","Provider","style","styles","loadingContainer","loadingCard","size","color","loadingTitle","loadingText","progressText","toFixed","useOta","context","Error","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","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","ActivityIndicator","AppState","Platform","StyleSheet","Text","View","ReactNativeBlobUtil","NativeBsPatch","initOtaAssetResolver","applyOtaPatchInternal","fetchOtaManifest","createOtaLogger","OtaEvent","loadMetadata","markHealthy","OtaStatus","OtaUpdateMode","jsx","_jsx","jsxs","_jsxs","OtaContext","undefined","OtaProvider","children","config","loadingView","useLoadingView","status","setStatus","IDLE","message","setMessage","progress","setProgress","currentVersion","setCurrentVersion","baseAppVersion","latestVersion","setLatestVersion","pendingCount","setPendingCount","isChecking","setIsChecking","metrics","setMetrics","patches","setPatches","isInitialized","setIsInitialized","isUpdateReady","setIsUpdateReady","appState","currentState","isCheckingRef","pendingReloadRef","bootstrapDone","progressRef","isDebugUpdateEnabled","__DEV__","allowDebugUpdates","setProgressIfChanged","nextProgress","current","getEffectiveConfig","appVersion","nativeVer","getAppVersion","Error","e","executeApplyUpdate","patchList","currentVer","targetVer","console","log","directPatch","find","p","fromVersion","toVersion","platform","OS","warn","ERROR","effectiveConfig","DOWNLOADING","s","msg","m","percent","error","applyUpdate","UP_TO_DATE","downloadBackgroundUpdate","localV","targetV","SUCCESS","autoReload","checkUpdates","CHECKING","onEvent","emit","CHECK_UPDATE","remotePatches","metadata","length","platformPatches","filter","maxV","Math","max","map","UPDATE_AVAILABLE","updateMode","BACKGROUND_DOWNLOAD","ON_APP_START","ON_APP_FOREGROUND","bootstrap","fs","ls","dirs","DocumentDir","then","dir","startsWith","unlink","catch","markAsHealthy","mode","MANUAL","subscription","addEventListener","nextAppState","match","reloadBundle","remove","MARK_HEALTHY","resetToFactory","APPLYING","RESET_FACTORY","otaDir","exists","trashDir","Date","now","mv","value","checkUpdate","isBlocking","Provider","style","styles","loadingContainer","loadingCard","size","color","loadingTitle","loadingText","progressText","toFixed","useOta","context","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":[]}
|
|
@@ -109,18 +109,21 @@ export const verifyHash = async (path, expectedHash) => {
|
|
|
109
109
|
export const verifySignature = async (filePath, signature, publicKey) => {
|
|
110
110
|
if (!signature || !publicKey) return true; // Skip if not configured
|
|
111
111
|
try {
|
|
112
|
-
//
|
|
113
|
-
|
|
112
|
+
// Fast-path: use Native streaming HMAC-SHA256 (avoids Base64 conversion and JS thread blocking)
|
|
113
|
+
if (typeof NativeBsPatch.verifySignature === 'function') {
|
|
114
|
+
const isValid = await NativeBsPatch.verifySignature(filePath, signature, publicKey);
|
|
115
|
+
if (!isValid && __DEV__) {
|
|
116
|
+
console.warn('[otaCore] Signature mismatch');
|
|
117
|
+
}
|
|
118
|
+
return isValid;
|
|
119
|
+
}
|
|
114
120
|
|
|
115
|
-
//
|
|
121
|
+
// Fallback to JS CryptoJS if native module is running an older binary
|
|
122
|
+
const fileData = await ReactNativeBlobUtil.fs.readFile(filePath, 'base64');
|
|
116
123
|
const fileWords = CryptoJS.enc.Base64.parse(fileData);
|
|
117
124
|
const keyWords = CryptoJS.enc.Base64.parse(publicKey);
|
|
118
125
|
const signatureWords = CryptoJS.enc.Base64.parse(signature);
|
|
119
|
-
|
|
120
|
-
// Compute HMAC
|
|
121
126
|
const hmac = CryptoJS.HmacSHA256(fileWords, keyWords);
|
|
122
|
-
|
|
123
|
-
// Compare computed HMAC with provided signature
|
|
124
127
|
const isValid = hmac.toString(CryptoJS.enc.Base64) === signatureWords.toString(CryptoJS.enc.Base64);
|
|
125
128
|
if (!isValid && __DEV__) {
|
|
126
129
|
console.warn('[otaCore] Signature mismatch');
|
|
@@ -398,7 +401,9 @@ export const getLocalPatchPath = (patch, docDir) => `${docDir}/ota/patch-${patch
|
|
|
398
401
|
*
|
|
399
402
|
* On failure → fallback to full bundle download if URL available.
|
|
400
403
|
*/
|
|
401
|
-
export const applyOtaPatchInternal = async (patch, config, onStatus, onProgress
|
|
404
|
+
export const applyOtaPatchInternal = async (patch, config, onStatus, onProgress, options = {
|
|
405
|
+
autoReload: true
|
|
406
|
+
}) => {
|
|
402
407
|
if (__DEV__ && config.allowDebugUpdates !== true) {
|
|
403
408
|
onStatus(OtaStatus.UP_TO_DATE, 'OTA updates are disabled while running a debug build.');
|
|
404
409
|
throw new Error('OTA updates are disabled while running a debug build.');
|
|
@@ -412,12 +417,23 @@ export const applyOtaPatchInternal = async (patch, config, onStatus, onProgress)
|
|
|
412
417
|
try {
|
|
413
418
|
// ── Step 1: Version Compatibility ──
|
|
414
419
|
if (patch.minAppVersion) {
|
|
415
|
-
|
|
420
|
+
let currentAppVer = config.appVersion;
|
|
421
|
+
if (!currentAppVer && typeof NativeBsPatch.getAppVersion === 'function') {
|
|
422
|
+
try {
|
|
423
|
+
currentAppVer = await NativeBsPatch.getAppVersion();
|
|
424
|
+
} catch {
|
|
425
|
+
currentAppVer = undefined;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
if (!currentAppVer) {
|
|
429
|
+
throw new Error(`[otaCore] Cannot verify minAppVersion: Native App Version could not be determined.`);
|
|
430
|
+
}
|
|
431
|
+
if (!semverGte(currentAppVer, patch.minAppVersion)) {
|
|
416
432
|
log.emit(OtaEvent.VERSION_INCOMPATIBLE, {
|
|
417
|
-
message: `App ${
|
|
433
|
+
message: `App ${currentAppVer} < required ${patch.minAppVersion}`,
|
|
418
434
|
version: patch.toVersion
|
|
419
435
|
});
|
|
420
|
-
throw new Error(`Native app ${
|
|
436
|
+
throw new Error(`Native app ${currentAppVer} is too old. Update to ${patch.minAppVersion}+ first.`);
|
|
421
437
|
}
|
|
422
438
|
}
|
|
423
439
|
|
|
@@ -649,15 +665,18 @@ export const applyOtaPatchInternal = async (patch, config, onStatus, onProgress)
|
|
|
649
665
|
});
|
|
650
666
|
|
|
651
667
|
// ── Step 11: Reload ──
|
|
652
|
-
//
|
|
653
|
-
// and JS will NOT run again before restart. Native OtaBundleResolver sets
|
|
654
|
-
// lastLaunchSuccessful=false before loading the new bundle. Without this call,
|
|
655
|
-
// the next cold boot sees false → rollback to previous version.
|
|
668
|
+
// Mark healthy BEFORE reload — reloadBundle() calls Runtime.exit(0)
|
|
656
669
|
NativeBsPatch.markAsHealthy();
|
|
657
|
-
if (
|
|
658
|
-
|
|
670
|
+
if (options.autoReload !== false) {
|
|
671
|
+
if (__DEV__) {
|
|
672
|
+
console.log(`[otaCore] V${patch.toVersion} marked healthy — reloading.`);
|
|
673
|
+
}
|
|
674
|
+
NativeBsPatch.reloadBundle();
|
|
675
|
+
} else {
|
|
676
|
+
if (__DEV__) {
|
|
677
|
+
console.log(`[otaCore] V${patch.toVersion} prepared silently in background — will apply on next launch.`);
|
|
678
|
+
}
|
|
659
679
|
}
|
|
660
|
-
NativeBsPatch.reloadBundle();
|
|
661
680
|
} catch (error) {
|
|
662
681
|
if (__DEV__) {
|
|
663
682
|
console.error('[otaCore] Pipeline failed:', error);
|
|
@@ -716,8 +735,12 @@ export const applyOtaPatchInternal = async (patch, config, onStatus, onProgress)
|
|
|
716
735
|
if (__DEV__) {
|
|
717
736
|
console.log(`[otaCore] Fallback V${patch.toVersion} marked healthy — reloading.`);
|
|
718
737
|
}
|
|
719
|
-
|
|
720
|
-
|
|
738
|
+
if (options.autoReload !== false) {
|
|
739
|
+
onStatus(OtaStatus.SUCCESS, `Fallback successful! Reloading...`);
|
|
740
|
+
NativeBsPatch.reloadBundle();
|
|
741
|
+
} else {
|
|
742
|
+
onStatus(OtaStatus.SUCCESS, `Fallback bundle prepared silently in background.`);
|
|
743
|
+
}
|
|
721
744
|
return;
|
|
722
745
|
} catch (fallbackError) {
|
|
723
746
|
if (__DEV__) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","ReactNativeBlobUtil","CryptoJS","NativeBsPatch","createOtaLogger","OtaEvent","ensureOtaDir","getBundlePath","loadMetadata","registerNewVersion","saveMetadata","CustomStorageProvider","GitHubReleaseStorageProvider","GitHubRawStorageProvider","OtaStatus","OtaStorageType","OTA_DIR","fs","dirs","DocumentDir","DEFAULT_STORAGE","GITHUB_STORAGE","GITHUB_RAW_STORAGE","getStorage","config","storage","storageType","GITHUB","GITHUB_RAW","semverGte","a","b","pa","split","map","Number","pb","i","va","vb","verifyHash","path","expectedHash","hash","toLowerCase","verifySignature","filePath","signature","publicKey","fileData","readFile","fileWords","enc","Base64","parse","keyWords","signatureWords","hmac","HmacSHA256","isValid","toString","__DEV__","console","warn","error","decompressGzip","endsWith","decompressedPath","replace","success","Error","downloadWithRetry","url","destPath","onProgress","headers","retryLimit","network","retry","timeout","timeoutMs","taskRef","task","fileCache","followRedirect","fetch","progress","received","total","percent","Math","floor","cancel","e","delay","pow","Promise","resolve","setTimeout","fetchOtaManifest","fetchManifest","message","bundledPatches","ASSET_STORE_DIR","downloadAndSyncAssets","assetManifestUrl","version","log","onStatus","SYNCING_ASSETS","versionDir","manifestPath","exists","mkdir","assets","resp","respInfo","status","manifestData","data","JSON","stringify","writeFile","manifest","filter","isBase","length","processed","downloaded","cached","updateProgress","round","maxConcurrency","index","downloadNext","asset","filename","ext","localPath","assetUrl","getAssetUrl","emit","DOWNLOAD_SUCCESS","initialWorkers","min","workers","Array","fill","all","getLocalAssetPath","getLocalPatchPath","patch","docDir","id","applyOtaPatchInternal","allowDebugUpdates","UP_TO_DATE","onEvent","totalStart","Date","now","finalBundlePath","toVersion","baseAppVersion","tempBundle","localPatchPath","minAppVersion","appVersion","VERSION_INCOMPATIBLE","downloadMs","patchSizeBytes","fromCache","stat","size","DOWNLOAD_START","DOWNLOADING","dlStart","getUpdateFileUrl","durationMs","sizeKB","dlError","DOWNLOAD_FAIL","actualPatchPath","compressed","DECOMPRESS_START","APPLYING","DECOMPRESS_SUCCESS","sigValid","SIGNATURE_INVALID","manifestUrl","metadata","oldBundlePath","currentVersion","bundleFilename","OS","actualOldPath","otaStoredPath","extractBundleFromAssets","oldStat","patchStat","baseHash","HASH_VERIFY_START","actualSourceHash","srcSize","srcStat","fromVersion","HASH_MISMATCH","expected","actual","HASH_VERIFY_SUCCESS","PATCH_START","applyStart","applyPatch","applyMs","PATCH_FAIL","bundleHash","unlink","mv","newMetadata","totalMs","PATCH_SUCCESS","SUCCESS","patchSizeKB","markAsHealthy","reloadBundle","fullBundleUrl","actualHash","fallbackError","ERROR"],"sourceRoot":"../../../src","sources":["ota/otaCore.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Platform","ReactNativeBlobUtil","CryptoJS","NativeBsPatch","createOtaLogger","OtaEvent","ensureOtaDir","getBundlePath","loadMetadata","registerNewVersion","saveMetadata","CustomStorageProvider","GitHubReleaseStorageProvider","GitHubRawStorageProvider","OtaStatus","OtaStorageType","OTA_DIR","fs","dirs","DocumentDir","DEFAULT_STORAGE","GITHUB_STORAGE","GITHUB_RAW_STORAGE","getStorage","config","storage","storageType","GITHUB","GITHUB_RAW","semverGte","a","b","pa","split","map","Number","pb","i","va","vb","verifyHash","path","expectedHash","hash","toLowerCase","verifySignature","filePath","signature","publicKey","isValid","__DEV__","console","warn","fileData","readFile","fileWords","enc","Base64","parse","keyWords","signatureWords","hmac","HmacSHA256","toString","error","decompressGzip","endsWith","decompressedPath","replace","success","Error","downloadWithRetry","url","destPath","onProgress","headers","retryLimit","network","retry","timeout","timeoutMs","taskRef","task","fileCache","followRedirect","fetch","progress","received","total","percent","Math","floor","cancel","e","delay","pow","Promise","resolve","setTimeout","fetchOtaManifest","fetchManifest","message","bundledPatches","ASSET_STORE_DIR","downloadAndSyncAssets","assetManifestUrl","version","log","onStatus","SYNCING_ASSETS","versionDir","manifestPath","exists","mkdir","assets","resp","respInfo","status","manifestData","data","JSON","stringify","writeFile","manifest","filter","isBase","length","processed","downloaded","cached","updateProgress","round","maxConcurrency","index","downloadNext","asset","filename","ext","localPath","assetUrl","getAssetUrl","emit","DOWNLOAD_SUCCESS","initialWorkers","min","workers","Array","fill","all","getLocalAssetPath","getLocalPatchPath","patch","docDir","id","applyOtaPatchInternal","options","autoReload","allowDebugUpdates","UP_TO_DATE","onEvent","totalStart","Date","now","finalBundlePath","toVersion","baseAppVersion","tempBundle","localPatchPath","minAppVersion","currentAppVer","appVersion","getAppVersion","undefined","VERSION_INCOMPATIBLE","downloadMs","patchSizeBytes","fromCache","stat","size","DOWNLOAD_START","DOWNLOADING","dlStart","getUpdateFileUrl","durationMs","sizeKB","dlError","DOWNLOAD_FAIL","actualPatchPath","compressed","DECOMPRESS_START","APPLYING","DECOMPRESS_SUCCESS","sigValid","SIGNATURE_INVALID","manifestUrl","metadata","oldBundlePath","currentVersion","bundleFilename","OS","actualOldPath","otaStoredPath","extractBundleFromAssets","oldStat","patchStat","baseHash","HASH_VERIFY_START","actualSourceHash","srcSize","srcStat","fromVersion","HASH_MISMATCH","expected","actual","HASH_VERIFY_SUCCESS","PATCH_START","applyStart","applyPatch","applyMs","PATCH_FAIL","bundleHash","unlink","mv","newMetadata","totalMs","PATCH_SUCCESS","SUCCESS","patchSizeKB","markAsHealthy","reloadBundle","fullBundleUrl","actualHash","fallbackError","ERROR"],"sourceRoot":"../../../src","sources":["ota/otaCore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -88,24 +88,59 @@ export const registerNewVersion = (metadata, newVersion) => {
|
|
|
88
88
|
};
|
|
89
89
|
};
|
|
90
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Scans the OTA directory and removes old version directories and leftover temporary files
|
|
93
|
+
* that are no longer referenced in the active metadata.
|
|
94
|
+
*/
|
|
95
|
+
export const cleanupOldVersions = async (metadata, baseVersion) => {
|
|
96
|
+
try {
|
|
97
|
+
if (!(await ReactNativeBlobUtil.fs.exists(OTA_DIR))) return;
|
|
98
|
+
const items = await ReactNativeBlobUtil.fs.ls(OTA_DIR);
|
|
99
|
+
|
|
100
|
+
// Retain current active version and rollback versions
|
|
101
|
+
const retainedVersions = new Set([metadata.currentVersion, ...(metadata.previousVersions || [])]);
|
|
102
|
+
for (const item of items) {
|
|
103
|
+
// Check if directory matches "v<number>"
|
|
104
|
+
const versionMatch = item.match(/^v(\d+)$/);
|
|
105
|
+
if (versionMatch) {
|
|
106
|
+
const ver = parseInt(versionMatch[1], 10);
|
|
107
|
+
if (!retainedVersions.has(ver) && ver !== baseVersion) {
|
|
108
|
+
const dirPath = `${OTA_DIR}/${item}`;
|
|
109
|
+
await ReactNativeBlobUtil.fs.unlink(dirPath).catch(() => {});
|
|
110
|
+
if (__DEV__) {
|
|
111
|
+
console.log(`[otaMetadata] Cleaned up obsolete OTA version: ${item}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Clean up leftover temporary bundle files (.tmp)
|
|
116
|
+
if (item.endsWith('.tmp')) {
|
|
117
|
+
await ReactNativeBlobUtil.fs.unlink(`${OTA_DIR}/${item}`).catch(() => {});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
} catch (e) {
|
|
121
|
+
console.warn('[otaMetadata] Cleanup old versions failed:', e);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
91
125
|
/**
|
|
92
126
|
* Marks the current session as healthy, indicating a successful boot.
|
|
93
127
|
* This prevents the native bridge from rolling back the version on the next launch.
|
|
128
|
+
* Also cleans up obsolete version directories from disk.
|
|
94
129
|
*
|
|
95
130
|
* @param defaultVersion - Base version for metadata lookup fallback.
|
|
96
131
|
* @returns The updated metadata.
|
|
97
132
|
*/
|
|
98
133
|
export const markHealthy = async defaultVersion => {
|
|
99
134
|
const metadata = await loadMetadata(defaultVersion);
|
|
100
|
-
if (metadata.lastLaunchSuccessful && metadata.rollbackCount === 0) {
|
|
101
|
-
return metadata;
|
|
102
|
-
}
|
|
103
135
|
const updated = {
|
|
104
136
|
...metadata,
|
|
105
137
|
lastLaunchSuccessful: true,
|
|
106
138
|
rollbackCount: 0
|
|
107
139
|
};
|
|
108
140
|
await saveMetadata(updated);
|
|
141
|
+
|
|
142
|
+
// Garbage collect older versions on disk to free storage
|
|
143
|
+
await cleanupOldVersions(updated, defaultVersion);
|
|
109
144
|
return updated;
|
|
110
145
|
};
|
|
111
146
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","ReactNativeBlobUtil","OTA_DIR","fs","dirs","DocumentDir","METADATA_PATH","saveLock","Promise","resolve","ensureOtaDir","exists","mkdir","loadMetadata","defaultVersion","content","readFile","JSON","parse","e","console","warn","currentVersion","previousVersions","rollbackCount","lastLaunchSuccessful","saveMetadata","metadata","prevLock","settleFn","writeFile","stringify","error","Error","message","MAX_VERSION_HISTORY","registerNewVersion","newVersion","versions","uniquePrevious","Array","from","Set","filter","v","slice","markHealthy","updated","getBundlePath","version","
|
|
1
|
+
{"version":3,"names":["Platform","ReactNativeBlobUtil","OTA_DIR","fs","dirs","DocumentDir","METADATA_PATH","saveLock","Promise","resolve","ensureOtaDir","exists","mkdir","loadMetadata","defaultVersion","content","readFile","JSON","parse","e","console","warn","currentVersion","previousVersions","rollbackCount","lastLaunchSuccessful","saveMetadata","metadata","prevLock","settleFn","writeFile","stringify","error","Error","message","MAX_VERSION_HISTORY","registerNewVersion","newVersion","versions","uniquePrevious","Array","from","Set","filter","v","slice","cleanupOldVersions","baseVersion","items","ls","retainedVersions","item","versionMatch","match","ver","parseInt","has","dirPath","unlink","catch","__DEV__","log","endsWith","markHealthy","updated","getBundlePath","version","filename","select","android","ios","default"],"sourceRoot":"../../../src","sources":["ota/otaMetadata.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,8 @@ import { Platform } from 'react-native';
|
|
|
4
4
|
import ReactNativeBlobUtil from 'react-native-blob-util';
|
|
5
5
|
/** Cache tokens per server endpoint so switching configs invalidates stale tokens. */
|
|
6
6
|
const tokenCache = new Map();
|
|
7
|
+
/** Cache registry ETag and parsed patches to avoid redownloading unmodified manifests. */
|
|
8
|
+
const registryCache = new Map();
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* Implementation for the custom MinIO-based storage server.
|
|
@@ -56,6 +58,8 @@ export class CustomStorageProvider {
|
|
|
56
58
|
baseFolder = 'bspatch'
|
|
57
59
|
} = config.customServer;
|
|
58
60
|
const registryPath = `${baseFolder}/ota_registry.json`;
|
|
61
|
+
const regCacheKey = `${baseUrl}|${registryPath}|${config.appVersion}|${channel}`;
|
|
62
|
+
const cachedReg = registryCache.get(regCacheKey);
|
|
59
63
|
try {
|
|
60
64
|
const token = await this.getAccessToken(config);
|
|
61
65
|
const normalizedBaseUrl = baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl;
|
|
@@ -67,20 +71,36 @@ export class CustomStorageProvider {
|
|
|
67
71
|
const linkJson = JSON.parse(linkRes.data);
|
|
68
72
|
const registryUrl = linkJson.data;
|
|
69
73
|
if (!registryUrl) throw new Error('Failed to generate registry download link');
|
|
70
|
-
const
|
|
74
|
+
const reqHeaders = {};
|
|
75
|
+
if (cachedReg?.etag) {
|
|
76
|
+
reqHeaders['If-None-Match'] = cachedReg.etag;
|
|
77
|
+
}
|
|
78
|
+
const registryRes = await ReactNativeBlobUtil.fetch('GET', registryUrl, reqHeaders);
|
|
79
|
+
if (registryRes.respInfo.status === 304 && cachedReg) {
|
|
80
|
+
return cachedReg.patches;
|
|
81
|
+
}
|
|
71
82
|
if (registryRes.respInfo.status !== 200) {
|
|
72
83
|
throw new Error(`Registry fetch failed with status ${registryRes.respInfo.status}`);
|
|
73
84
|
}
|
|
85
|
+
const etag = registryRes.respInfo.headers?.['etag'] || registryRes.respInfo.headers?.['ETag'];
|
|
86
|
+
if (!config.appVersion) {
|
|
87
|
+
throw new Error('[CustomStorage] config.appVersion is required to query OTA registry');
|
|
88
|
+
}
|
|
74
89
|
const registry = JSON.parse(registryRes.data);
|
|
75
90
|
const appGroup = registry?.apps?.[config.appVersion];
|
|
76
91
|
const flavorGroup = appGroup?.flavors?.[channel.toLowerCase()];
|
|
77
92
|
if (!flavorGroup || !flavorGroup.patches?.length) {
|
|
78
93
|
return config.bundledPatches || [];
|
|
79
94
|
}
|
|
80
|
-
|
|
95
|
+
const matchedPatches = (flavorGroup.patches || []).filter(p => p.platform === Platform.OS);
|
|
96
|
+
registryCache.set(regCacheKey, {
|
|
97
|
+
etag,
|
|
98
|
+
patches: matchedPatches
|
|
99
|
+
});
|
|
100
|
+
return matchedPatches;
|
|
81
101
|
} catch (error) {
|
|
82
102
|
console.warn('[CustomStorage] Manifest fetch error:', error.message);
|
|
83
|
-
return config.bundledPatches || [];
|
|
103
|
+
return cachedReg?.patches || config.bundledPatches || [];
|
|
84
104
|
}
|
|
85
105
|
}
|
|
86
106
|
async getUpdateFileUrl(filename, config) {
|