react-native-update 10.59.2 → 10.61.0
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-CN.md +13 -7
- package/README.md +15 -6
- package/android/build.gradle +25 -33
- package/android/jni/Android.mk +18 -24
- package/android/jni/Application.mk +3 -1
- package/android/lib/arm64-v8a/librnpushy.so +0 -0
- package/android/lib/armeabi-v7a/librnpushy.so +0 -0
- package/android/lib/x86/librnpushy.so +0 -0
- package/android/lib/x86_64/librnpushy.so +0 -0
- package/android/proguard.pro +9 -7
- package/android/src/main/java/cn/reactnative/modules/update/ApkInstaller.java +3 -8
- package/android/src/main/java/cn/reactnative/modules/update/ArchiveLimits.java +24 -6
- package/android/src/main/java/cn/reactnative/modules/update/BundlePreparationResult.java +2 -0
- package/android/src/main/java/cn/reactnative/modules/update/BundledResourceCopier.java +50 -51
- package/android/src/main/java/cn/reactnative/modules/update/CleanupKeepNames.java +12 -13
- package/android/src/main/java/cn/reactnative/modules/update/CopyGroupResult.java +3 -0
- package/android/src/main/java/cn/reactnative/modules/update/CrashHold.java +22 -30
- package/android/src/main/java/cn/reactnative/modules/update/DownloadTask.java +284 -452
- package/android/src/main/java/cn/reactnative/modules/update/DownloadTaskParams.java +8 -4
- package/android/src/main/java/cn/reactnative/modules/update/ErrorCodes.java +32 -3
- package/android/src/main/java/cn/reactnative/modules/update/FileOperationException.java +1 -1
- package/android/src/main/java/cn/reactnative/modules/update/FlowBridge.java +39 -8
- package/android/src/main/java/cn/reactnative/modules/update/HttpClients.java +63 -0
- package/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java +0 -45
- package/android/src/main/java/cn/reactnative/modules/update/InstallRecord.java +68 -116
- package/android/src/main/java/cn/reactnative/modules/update/NativeCore.java +10 -2
- package/android/src/main/java/cn/reactnative/modules/update/PatchFailedException.java +1 -1
- package/android/src/main/java/cn/reactnative/modules/update/PushyRuntime.java +53 -62
- package/android/src/main/java/cn/reactnative/modules/update/ReactReloadManager.java +9 -24
- package/android/src/main/java/cn/reactnative/modules/update/ResumePlan.java +31 -0
- package/android/src/main/java/cn/reactnative/modules/update/SafeZipFile.java +42 -80
- package/android/src/main/java/cn/reactnative/modules/update/StateSerialRunner.java +22 -39
- package/android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java +474 -500
- package/android/src/main/java/cn/reactnative/modules/update/Texts.java +15 -1
- package/android/src/main/java/cn/reactnative/modules/update/Threads.java +44 -0
- package/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java +265 -188
- package/android/src/main/java/cn/reactnative/modules/update/UpdateEventEmitter.java +1 -1
- package/android/src/main/java/cn/reactnative/modules/update/UpdateFileUtils.java +75 -17
- package/android/src/main/java/cn/reactnative/modules/update/{UpdateModuleImpl.java → UpdateModule.java} +114 -96
- package/android/src/main/java/cn/reactnative/modules/update/UpdatePackage.java +16 -19
- package/android/src/main/java/cn/reactnative/modules/update/VersionScopedKeys.java +64 -0
- package/android/src/oldarch/cn/reactnative/modules/update/NativePushySpec.java +71 -0
- package/cpp/android_jni/archive_limits_jni.cpp +83 -0
- package/cpp/android_jni/install_record_jni.cpp +89 -0
- package/cpp/android_jni/jni_log.h +30 -0
- package/cpp/android_jni/jni_natives.h +46 -0
- package/cpp/android_jni/jni_registration.cpp +146 -0
- package/cpp/android_jni/jni_util.h +160 -0
- package/cpp/android_jni/resume_plan_jni.cpp +58 -0
- package/cpp/android_jni/update_core_android.cpp +448 -0
- package/cpp/android_jni/update_flow_jni.cpp +150 -0
- package/{android/jni → cpp/hpatch}/hpatch.c +5 -5
- package/{android/jni → cpp/hpatch}/hpatch.h +4 -1
- package/cpp/patch_core/archive_limits.cpp +194 -0
- package/cpp/patch_core/archive_limits.h +101 -10
- package/cpp/patch_core/archive_patch_core.cpp +98 -15
- package/cpp/patch_core/archive_patch_core.h +51 -0
- package/cpp/patch_core/digest.h +5 -4
- package/cpp/patch_core/error_codes.h +15 -11
- package/cpp/patch_core/install_record.cpp +430 -0
- package/cpp/patch_core/install_record.h +165 -9
- package/cpp/patch_core/native_texts.h +102 -0
- package/cpp/patch_core/patch_core.cpp +62 -16
- package/cpp/patch_core/patch_core.h +27 -7
- package/cpp/patch_core/patch_manifest.cpp +201 -0
- package/cpp/patch_core/patch_manifest.h +74 -0
- package/cpp/patch_core/resume_plan.cpp +226 -0
- package/cpp/patch_core/resume_plan.h +88 -0
- package/cpp/patch_core/state_ops.h +5 -3
- package/cpp/update_flow_core/flow_json.cpp +82 -8
- package/cpp/update_flow_core/flow_json.h +21 -0
- package/cpp/update_flow_core/native_config.cpp +436 -0
- package/cpp/update_flow_core/native_config.h +84 -0
- package/cpp/update_flow_core/native_round.cpp +321 -0
- package/cpp/update_flow_core/native_round.h +94 -0
- package/cpp/update_flow_core/round_engine.cpp +456 -0
- package/cpp/update_flow_core/round_engine.h +106 -0
- package/cpp/update_flow_core/update_flow_core.cpp +5 -14
- package/cpp/update_flow_core/update_flow_core.h +2 -2
- package/harmony/hvigor-plugin.ts +11 -19
- package/harmony/pushy/src/main/cpp/CMakeLists.txt +19 -26
- package/harmony/pushy/src/main/cpp/PushyPackage.h +2 -2
- package/harmony/pushy/src/main/cpp/PushyTurboModule.cpp +57 -94
- package/harmony/pushy/src/main/cpp/pushy.cpp +817 -518
- package/harmony/pushy/src/main/ets/ArchiveLimits.ts +55 -75
- package/harmony/pushy/src/main/ets/DownloadTask.ts +279 -539
- package/harmony/pushy/src/main/ets/DownloadTaskParams.ts +6 -6
- package/harmony/pushy/src/main/ets/ErrorCodes.ts +3 -15
- package/harmony/pushy/src/main/ets/EventHub.ts +1 -1
- package/harmony/pushy/src/main/ets/InstallRecord.ts +54 -151
- package/harmony/pushy/src/main/ets/Logger.ts +20 -34
- package/harmony/pushy/src/main/ets/NativePatchCore.ts +150 -41
- package/harmony/pushy/src/main/ets/PushyConfiguration.ts +8 -85
- package/harmony/pushy/src/main/ets/PushyFileJSBundleProvider.ets +8 -3
- package/harmony/pushy/src/main/ets/PushyTurboModule.ts +11 -25
- package/harmony/pushy/src/main/ets/SaveFile.ts +99 -18
- package/harmony/pushy/src/main/ets/SyncCoordinator.ts +291 -543
- package/harmony/pushy/src/main/ets/Texts.ts +8 -7
- package/harmony/pushy/src/main/ets/UpdateContext.ts +245 -152
- package/harmony/pushy.har +0 -0
- package/ios/RCTPushy/RCTPushy+Launch.mm +190 -0
- package/ios/RCTPushy/RCTPushy.h +12 -0
- package/ios/RCTPushy/RCTPushy.mm +135 -2666
- package/ios/RCTPushy/RCTPushyCommon.h +28 -0
- package/ios/RCTPushy/RCTPushyConfiguration.h +0 -8
- package/ios/RCTPushy/RCTPushyConfiguration.mm +40 -123
- package/ios/RCTPushy/RCTPushyDownloader.mm +152 -198
- package/ios/RCTPushy/RCTPushyInstallRecord.mm +101 -0
- package/ios/RCTPushy/RCTPushyInstaller.mm +732 -0
- package/ios/RCTPushy/RCTPushyInternal.h +185 -0
- package/ios/RCTPushy/RCTPushyOrchestrator.mm +969 -0
- package/ios/RCTPushy/RCTPushyState.mm +382 -0
- package/package.json +46 -25
- package/react-native-update.podspec +73 -82
- package/src/client.ts +126 -1633
- package/src/clientActivation.ts +324 -0
- package/src/clientCheck.ts +405 -0
- package/src/clientDownload.ts +448 -0
- package/src/clientNativeConfig.ts +171 -0
- package/src/clientReporter.ts +398 -0
- package/src/clientState.ts +51 -0
- package/src/context.ts +1 -1
- package/src/core.ts +39 -10
- package/src/endpoint.ts +22 -8
- package/src/error.ts +18 -35
- package/src/i18n.ts +18 -83
- package/src/locales/en.ts +1 -5
- package/src/locales/zh.ts +1 -5
- package/src/provider.tsx +86 -67
- package/src/telemetry.ts +0 -13
- package/src/type.ts +0 -15
- package/src/updateFlowCore.ts +116 -10
- package/src/utils.ts +49 -42
- package/android/jni/HDiffPatch/.travis.yml +0 -33
- package/android/jni/HDiffPatch/CHANGELOG.md +0 -153
- package/android/jni/HDiffPatch/Makefile +0 -157
- package/android/jni/HDiffPatch/_atosize.h +0 -83
- package/android/jni/HDiffPatch/_clock_for_demo.h +0 -47
- package/android/jni/HDiffPatch/_dir_ignore.h +0 -191
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/Android.mk +0 -37
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/Application.mk +0 -7
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/build_libs.bat +0 -1
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/build_libs.sh +0 -1
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch.c +0 -18
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch.h +0 -20
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch_jni.c +0 -28
- package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/java/com/github/sisong/HPatch.java +0 -8
- package/android/jni/HDiffPatch/builds/codeblocks/HDiffPatch.workspace +0 -8
- package/android/jni/HDiffPatch/builds/codeblocks/HDiffZ.cbp +0 -219
- package/android/jni/HDiffPatch/builds/codeblocks/HPatchZ.cbp +0 -156
- package/android/jni/HDiffPatch/builds/codeblocks/unitTest.cbp +0 -65
- package/android/jni/HDiffPatch/builds/vc/HDiffPatch.sln +0 -105
- package/android/jni/HDiffPatch/builds/vc/HDiffZ.vcxproj +0 -237
- package/android/jni/HDiffPatch/builds/vc/HDiffZ.vcxproj.user +0 -3
- package/android/jni/HDiffPatch/builds/vc/HPatchZ.vcxproj +0 -318
- package/android/jni/HDiffPatch/builds/vc/HPatchZ.vcxproj.user +0 -3
- package/android/jni/HDiffPatch/builds/vc/unitTest.vcxproj +0 -182
- package/android/jni/HDiffPatch/builds/vc/unitTest.vcxproj.user +0 -3
- package/android/jni/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/contents.xcworkspacedata +0 -30
- package/android/jni/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/android/jni/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.pbxproj +0 -408
- package/android/jni/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.pbxproj +0 -573
- package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/android/jni/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.pbxproj +0 -396
- package/android/jni/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/android/jni/HDiffPatch/builds/xcode/lz4.xcodeproj/project.pbxproj +0 -268
- package/android/jni/HDiffPatch/builds/xcode/lz4.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/android/jni/HDiffPatch/builds/xcode/lzma.xcodeproj/project.pbxproj +0 -361
- package/android/jni/HDiffPatch/builds/xcode/lzma.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.pbxproj +0 -301
- package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- package/android/jni/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.pbxproj +0 -411
- package/android/jni/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/android/jni/HDiffPatch/builds/xcode/zstd.xcodeproj/project.pbxproj +0 -504
- package/android/jni/HDiffPatch/builds/xcode/zstd.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/android/jni/HDiffPatch/checksum_plugin_demo.h +0 -344
- package/android/jni/HDiffPatch/compress_parallel.cpp +0 -166
- package/android/jni/HDiffPatch/compress_parallel.h +0 -59
- package/android/jni/HDiffPatch/compress_plugin_demo.h +0 -1152
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.cpp +0 -797
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.h +0 -65
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.cpp +0 -200
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.h +0 -178
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.cpp +0 -357
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.h +0 -87
- package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/file_for_dirDiff.h +0 -151
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.c +0 -770
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.h +0 -236
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_private.h +0 -47
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.c +0 -112
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.h +0 -53
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.c +0 -331
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.h +0 -144
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_stream.c +0 -176
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_stream.h +0 -84
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.c +0 -146
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.h +0 -61
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.c +0 -152
- package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.h +0 -76
- package/android/jni/HDiffPatch/hdiffz.cpp +0 -1570
- package/android/jni/HDiffPatch/hpatch_dir_listener.h +0 -290
- package/android/jni/HDiffPatch/hpatchz.c +0 -1221
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff.cpp +0 -1025
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff.h +0 -116
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff_types.h +0 -72
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.cpp +0 -213
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.h +0 -63
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.cpp +0 -170
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.h +0 -86
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/config.h +0 -89
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c +0 -13
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c.inc.h +0 -398
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.h +0 -194
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.c +0 -13
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.h +0 -204
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort_private.h +0 -207
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/sssort.c.inc.h +0 -815
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/trsort.c.inc.h +0 -586
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/utils.c.inc.h +0 -381
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.c +0 -352
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.h +0 -137
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/bloom_filter.h +0 -137
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/covers.h +0 -70
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.cpp +0 -628
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.h +0 -87
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.cpp +0 -363
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.h +0 -139
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/mem_buf.h +0 -68
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/pack_uint.h +0 -115
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.cpp +0 -342
- package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.h +0 -94
- package/android/jni/HDiffPatch/libHDiffPatch/HPatch/checksum_plugin.h +0 -52
- package/android/jni/HDiffPatch/libParallel/parallel_channel.cpp +0 -174
- package/android/jni/HDiffPatch/libParallel/parallel_channel.h +0 -73
- package/android/jni/HDiffPatch/libParallel/parallel_import.cpp +0 -367
- package/android/jni/HDiffPatch/libParallel/parallel_import.h +0 -92
- package/android/jni/lzma/Asm/arm/7zCrcOpt.asm +0 -100
- package/android/jni/lzma/Asm/x86/7zAsm.asm +0 -147
- package/android/jni/lzma/Asm/x86/7zCrcOpt.asm +0 -147
- package/android/jni/lzma/Asm/x86/AesOpt.asm +0 -237
- package/android/jni/lzma/Asm/x86/LzmaDecOpt.asm +0 -1258
- package/android/jni/lzma/Asm/x86/XzCrc64Opt.asm +0 -205
- package/android/jni/lzma/C/7z.h +0 -202
- package/android/jni/lzma/C/7zAlloc.c +0 -80
- package/android/jni/lzma/C/7zAlloc.h +0 -19
- package/android/jni/lzma/C/7zArcIn.c +0 -1771
- package/android/jni/lzma/C/7zBuf.c +0 -36
- package/android/jni/lzma/C/7zBuf.h +0 -35
- package/android/jni/lzma/C/7zBuf2.c +0 -52
- package/android/jni/lzma/C/7zCrc.c +0 -128
- package/android/jni/lzma/C/7zCrc.h +0 -25
- package/android/jni/lzma/C/7zCrcOpt.c +0 -115
- package/android/jni/lzma/C/7zDec.c +0 -591
- package/android/jni/lzma/C/7zFile.c +0 -286
- package/android/jni/lzma/C/7zFile.h +0 -83
- package/android/jni/lzma/C/7zStream.c +0 -176
- package/android/jni/lzma/C/7zVersion.h +0 -27
- package/android/jni/lzma/C/7zVersion.rc +0 -55
- package/android/jni/lzma/C/Aes.c +0 -306
- package/android/jni/lzma/C/Aes.h +0 -38
- package/android/jni/lzma/C/AesOpt.c +0 -184
- package/android/jni/lzma/C/Alloc.c +0 -455
- package/android/jni/lzma/C/Alloc.h +0 -51
- package/android/jni/lzma/C/Bcj2.c +0 -257
- package/android/jni/lzma/C/Bcj2.h +0 -146
- package/android/jni/lzma/C/Bcj2Enc.c +0 -311
- package/android/jni/lzma/C/Bra.c +0 -230
- package/android/jni/lzma/C/Bra.h +0 -64
- package/android/jni/lzma/C/Bra86.c +0 -82
- package/android/jni/lzma/C/BraIA64.c +0 -53
- package/android/jni/lzma/C/CpuArch.c +0 -218
- package/android/jni/lzma/C/CpuArch.h +0 -336
- package/android/jni/lzma/C/Delta.c +0 -64
- package/android/jni/lzma/C/Delta.h +0 -19
- package/android/jni/lzma/C/DllSecur.c +0 -108
- package/android/jni/lzma/C/DllSecur.h +0 -20
- package/android/jni/lzma/C/LzFind.c +0 -1127
- package/android/jni/lzma/C/LzFind.h +0 -121
- package/android/jni/lzma/C/LzFindMt.c +0 -853
- package/android/jni/lzma/C/LzFindMt.h +0 -101
- package/android/jni/lzma/C/LzHash.h +0 -57
- package/android/jni/lzma/C/Lzma2DecMt.c +0 -1082
- package/android/jni/lzma/C/Lzma2DecMt.h +0 -79
- package/android/jni/lzma/C/Lzma2Enc.c +0 -803
- package/android/jni/lzma/C/Lzma2Enc.h +0 -55
- package/android/jni/lzma/C/Lzma86.h +0 -111
- package/android/jni/lzma/C/Lzma86Dec.c +0 -54
- package/android/jni/lzma/C/Lzma86Enc.c +0 -106
- package/android/jni/lzma/C/LzmaEnc.c +0 -2976
- package/android/jni/lzma/C/LzmaEnc.h +0 -76
- package/android/jni/lzma/C/LzmaLib.c +0 -40
- package/android/jni/lzma/C/LzmaLib.h +0 -131
- package/android/jni/lzma/C/MtCoder.c +0 -601
- package/android/jni/lzma/C/MtCoder.h +0 -141
- package/android/jni/lzma/C/MtDec.c +0 -1138
- package/android/jni/lzma/C/MtDec.h +0 -201
- package/android/jni/lzma/C/Ppmd.h +0 -85
- package/android/jni/lzma/C/Ppmd7.c +0 -712
- package/android/jni/lzma/C/Ppmd7.h +0 -142
- package/android/jni/lzma/C/Ppmd7Dec.c +0 -191
- package/android/jni/lzma/C/Ppmd7Enc.c +0 -187
- package/android/jni/lzma/C/RotateDefs.h +0 -30
- package/android/jni/lzma/C/Sha256.c +0 -248
- package/android/jni/lzma/C/Sha256.h +0 -26
- package/android/jni/lzma/C/Sort.c +0 -141
- package/android/jni/lzma/C/Sort.h +0 -18
- package/android/jni/lzma/C/Threads.c +0 -95
- package/android/jni/lzma/C/Threads.h +0 -70
- package/android/jni/lzma/C/ThreadsP.c +0 -396
- package/android/jni/lzma/C/ThreadsP.h +0 -31
- package/android/jni/lzma/C/Util/7z/7z.dsp +0 -241
- package/android/jni/lzma/C/Util/7z/7z.dsw +0 -29
- package/android/jni/lzma/C/Util/7z/7zMain.c +0 -686
- package/android/jni/lzma/C/Util/7z/Precomp.c +0 -4
- package/android/jni/lzma/C/Util/7z/Precomp.h +0 -10
- package/android/jni/lzma/C/Util/7z/makefile +0 -40
- package/android/jni/lzma/C/Util/7z/makefile.gcc +0 -75
- package/android/jni/lzma/C/Util/Lzma/LzmaUtil.c +0 -258
- package/android/jni/lzma/C/Util/Lzma/LzmaUtil.dsp +0 -168
- package/android/jni/lzma/C/Util/Lzma/LzmaUtil.dsw +0 -29
- package/android/jni/lzma/C/Util/Lzma/makefile +0 -28
- package/android/jni/lzma/C/Util/Lzma/makefile.gcc +0 -44
- package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.def +0 -4
- package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.dsp +0 -178
- package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.dsw +0 -29
- package/android/jni/lzma/C/Util/LzmaLib/LzmaLibExports.c +0 -14
- package/android/jni/lzma/C/Util/LzmaLib/makefile +0 -34
- package/android/jni/lzma/C/Util/LzmaLib/resource.rc +0 -3
- package/android/jni/lzma/C/Util/SfxSetup/Precomp.c +0 -4
- package/android/jni/lzma/C/Util/SfxSetup/Precomp.h +0 -10
- package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.c +0 -640
- package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.dsp +0 -231
- package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.dsw +0 -29
- package/android/jni/lzma/C/Util/SfxSetup/makefile +0 -37
- package/android/jni/lzma/C/Util/SfxSetup/makefile_con +0 -38
- package/android/jni/lzma/C/Util/SfxSetup/resource.rc +0 -5
- package/android/jni/lzma/C/Util/SfxSetup/setup.ico +0 -0
- package/android/jni/lzma/C/Xz.c +0 -90
- package/android/jni/lzma/C/Xz.h +0 -460
- package/android/jni/lzma/C/XzCrc64.c +0 -86
- package/android/jni/lzma/C/XzCrc64.h +0 -26
- package/android/jni/lzma/C/XzCrc64Opt.c +0 -69
- package/android/jni/lzma/C/XzDec.c +0 -2766
- package/android/jni/lzma/C/XzEnc.c +0 -1329
- package/android/jni/lzma/C/XzEnc.h +0 -60
- package/android/jni/lzma/C/XzIn.c +0 -319
- package/android/jni/lzma/CPP/7zip/7zip.mak +0 -240
- package/android/jni/lzma/CPP/7zip/Aes.mak +0 -7
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zCompressionMode.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h +0 -76
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zDecode.cpp +0 -569
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zDecode.h +0 -70
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zEncode.cpp +0 -678
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zEncode.h +0 -92
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zExtract.cpp +0 -423
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zFolderInStream.cpp +0 -139
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zFolderInStream.h +0 -61
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandler.cpp +0 -763
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandler.h +0 -181
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandlerOut.cpp +0 -942
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zHeader.cpp +0 -19
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zHeader.h +0 -148
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zIn.cpp +0 -1666
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zIn.h +0 -445
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zItem.h +0 -202
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zOut.cpp +0 -901
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zOut.h +0 -335
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zProperties.cpp +0 -174
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zProperties.h +0 -22
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zRegister.cpp +0 -21
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zSpecStream.cpp +0 -22
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zSpecStream.h +0 -35
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zUpdate.cpp +0 -2500
- package/android/jni/lzma/CPP/7zip/Archive/7z/7zUpdate.h +0 -139
- package/android/jni/lzma/CPP/7zip/Archive/7z/StdAfx.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/Archive/7z/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/Archive/Archive.def +0 -12
- package/android/jni/lzma/CPP/7zip/Archive/Archive2.def +0 -19
- package/android/jni/lzma/CPP/7zip/Archive/ArchiveExports.cpp +0 -151
- package/android/jni/lzma/CPP/7zip/Archive/Common/CoderMixer2.cpp +0 -1125
- package/android/jni/lzma/CPP/7zip/Archive/Common/CoderMixer2.h +0 -447
- package/android/jni/lzma/CPP/7zip/Archive/Common/DummyOutStream.cpp +0 -17
- package/android/jni/lzma/CPP/7zip/Archive/Common/DummyOutStream.h +0 -25
- package/android/jni/lzma/CPP/7zip/Archive/Common/HandlerOut.cpp +0 -232
- package/android/jni/lzma/CPP/7zip/Archive/Common/HandlerOut.h +0 -110
- package/android/jni/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.cpp +0 -46
- package/android/jni/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.h +0 -67
- package/android/jni/lzma/CPP/7zip/Archive/Common/ItemNameUtils.cpp +0 -88
- package/android/jni/lzma/CPP/7zip/Archive/Common/ItemNameUtils.h +0 -28
- package/android/jni/lzma/CPP/7zip/Archive/Common/MultiStream.cpp +0 -191
- package/android/jni/lzma/CPP/7zip/Archive/Common/MultiStream.h +0 -89
- package/android/jni/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp +0 -18
- package/android/jni/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.h +0 -37
- package/android/jni/lzma/CPP/7zip/Archive/Common/ParseProperties.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/Archive/Common/ParseProperties.h +0 -6
- package/android/jni/lzma/CPP/7zip/Archive/Common/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/Archive/DllExports2.cpp +0 -122
- package/android/jni/lzma/CPP/7zip/Archive/IArchive.h +0 -608
- package/android/jni/lzma/CPP/7zip/Archive/Icons/7z.ico +0 -0
- package/android/jni/lzma/CPP/7zip/Archive/LzmaHandler.cpp +0 -629
- package/android/jni/lzma/CPP/7zip/Archive/SplitHandler.cpp +0 -359
- package/android/jni/lzma/CPP/7zip/Archive/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/Archive/XzHandler.cpp +0 -1308
- package/android/jni/lzma/CPP/7zip/Archive/XzHandler.h +0 -11
- package/android/jni/lzma/CPP/7zip/Asm.mak +0 -9
- package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsp +0 -1910
- package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsw +0 -29
- package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/makefile +0 -154
- package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/resource.rc +0 -7
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/makefile +0 -96
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/resource.rc +0 -5
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/makefile +0 -116
- package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/resource.rc +0 -5
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaAlone.cpp +0 -799
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsp +0 -477
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsw +0 -29
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/makefile +0 -59
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/makefile.gcc +0 -195
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/resource.rc +0 -3
- package/android/jni/lzma/CPP/7zip/Bundles/LzmaSpec/LzmaSpec.cpp +0 -715
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/7z.ico +0 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsp +0 -912
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsw +0 -29
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SfxCon.cpp +0 -482
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/makefile +0 -134
- package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/resource.rc +0 -5
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.cpp +0 -246
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.h +0 -86
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.cpp +0 -137
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.h +0 -11
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsp +0 -803
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsw +0 -29
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SfxSetup.cpp +0 -364
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.h +0 -13
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/makefile +0 -117
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/resource.h +0 -6
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/resource.rc +0 -16
- package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/setup.ico +0 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/7z.ico +0 -0
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsp +0 -988
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsw +0 -29
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SfxWin.cpp +0 -241
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.h +0 -14
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/makefile +0 -153
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/resource.h +0 -1
- package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/resource.rc +0 -50
- package/android/jni/lzma/CPP/7zip/Common/CWrappers.cpp +0 -250
- package/android/jni/lzma/CPP/7zip/Common/CWrappers.h +0 -120
- package/android/jni/lzma/CPP/7zip/Common/CreateCoder.cpp +0 -536
- package/android/jni/lzma/CPP/7zip/Common/CreateCoder.h +0 -192
- package/android/jni/lzma/CPP/7zip/Common/FilePathAutoRename.cpp +0 -46
- package/android/jni/lzma/CPP/7zip/Common/FilePathAutoRename.h +0 -10
- package/android/jni/lzma/CPP/7zip/Common/FileStreams.cpp +0 -475
- package/android/jni/lzma/CPP/7zip/Common/FileStreams.h +0 -166
- package/android/jni/lzma/CPP/7zip/Common/FilterCoder.cpp +0 -435
- package/android/jni/lzma/CPP/7zip/Common/FilterCoder.h +0 -205
- package/android/jni/lzma/CPP/7zip/Common/InBuffer.cpp +0 -163
- package/android/jni/lzma/CPP/7zip/Common/InBuffer.h +0 -92
- package/android/jni/lzma/CPP/7zip/Common/InOutTempBuffer.cpp +0 -127
- package/android/jni/lzma/CPP/7zip/Common/InOutTempBuffer.h +0 -48
- package/android/jni/lzma/CPP/7zip/Common/LimitedStreams.cpp +0 -367
- package/android/jni/lzma/CPP/7zip/Common/LimitedStreams.h +0 -252
- package/android/jni/lzma/CPP/7zip/Common/LockedStream.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/Common/LockedStream.h +0 -6
- package/android/jni/lzma/CPP/7zip/Common/MethodId.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/Common/MethodId.h +0 -10
- package/android/jni/lzma/CPP/7zip/Common/MethodProps.cpp +0 -509
- package/android/jni/lzma/CPP/7zip/Common/MethodProps.h +0 -264
- package/android/jni/lzma/CPP/7zip/Common/OffsetStream.cpp +0 -39
- package/android/jni/lzma/CPP/7zip/Common/OffsetStream.h +0 -26
- package/android/jni/lzma/CPP/7zip/Common/OutBuffer.cpp +0 -111
- package/android/jni/lzma/CPP/7zip/Common/OutBuffer.h +0 -66
- package/android/jni/lzma/CPP/7zip/Common/ProgressUtils.cpp +0 -51
- package/android/jni/lzma/CPP/7zip/Common/ProgressUtils.h +0 -35
- package/android/jni/lzma/CPP/7zip/Common/PropId.cpp +0 -108
- package/android/jni/lzma/CPP/7zip/Common/RegisterArc.h +0 -78
- package/android/jni/lzma/CPP/7zip/Common/RegisterCodec.h +0 -106
- package/android/jni/lzma/CPP/7zip/Common/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/Common/StreamBinder.cpp +0 -156
- package/android/jni/lzma/CPP/7zip/Common/StreamBinder.h +0 -60
- package/android/jni/lzma/CPP/7zip/Common/StreamObjects.cpp +0 -285
- package/android/jni/lzma/CPP/7zip/Common/StreamObjects.h +0 -157
- package/android/jni/lzma/CPP/7zip/Common/StreamUtils.cpp +0 -56
- package/android/jni/lzma/CPP/7zip/Common/StreamUtils.h +0 -13
- package/android/jni/lzma/CPP/7zip/Common/UniqBlocks.cpp +0 -57
- package/android/jni/lzma/CPP/7zip/Common/UniqBlocks.h +0 -26
- package/android/jni/lzma/CPP/7zip/Common/VirtThread.cpp +0 -48
- package/android/jni/lzma/CPP/7zip/Common/VirtThread.h +0 -24
- package/android/jni/lzma/CPP/7zip/Compress/Bcj2Coder.cpp +0 -666
- package/android/jni/lzma/CPP/7zip/Compress/Bcj2Coder.h +0 -120
- package/android/jni/lzma/CPP/7zip/Compress/Bcj2Register.cpp +0 -24
- package/android/jni/lzma/CPP/7zip/Compress/BcjCoder.cpp +0 -24
- package/android/jni/lzma/CPP/7zip/Compress/BcjCoder.h +0 -31
- package/android/jni/lzma/CPP/7zip/Compress/BcjRegister.cpp +0 -17
- package/android/jni/lzma/CPP/7zip/Compress/BranchMisc.cpp +0 -23
- package/android/jni/lzma/CPP/7zip/Compress/BranchMisc.h +0 -35
- package/android/jni/lzma/CPP/7zip/Compress/BranchRegister.cpp +0 -41
- package/android/jni/lzma/CPP/7zip/Compress/ByteSwap.cpp +0 -92
- package/android/jni/lzma/CPP/7zip/Compress/CodecExports.cpp +0 -344
- package/android/jni/lzma/CPP/7zip/Compress/CopyCoder.cpp +0 -120
- package/android/jni/lzma/CPP/7zip/Compress/CopyCoder.h +0 -49
- package/android/jni/lzma/CPP/7zip/Compress/CopyRegister.cpp +0 -15
- package/android/jni/lzma/CPP/7zip/Compress/DeltaFilter.cpp +0 -128
- package/android/jni/lzma/CPP/7zip/Compress/Lzma2Decoder.cpp +0 -265
- package/android/jni/lzma/CPP/7zip/Compress/Lzma2Decoder.h +0 -96
- package/android/jni/lzma/CPP/7zip/Compress/Lzma2Encoder.cpp +0 -122
- package/android/jni/lzma/CPP/7zip/Compress/Lzma2Encoder.h +0 -42
- package/android/jni/lzma/CPP/7zip/Compress/Lzma2Register.cpp +0 -22
- package/android/jni/lzma/CPP/7zip/Compress/LzmaDecoder.cpp +0 -343
- package/android/jni/lzma/CPP/7zip/Compress/LzmaDecoder.h +0 -113
- package/android/jni/lzma/CPP/7zip/Compress/LzmaEncoder.cpp +0 -182
- package/android/jni/lzma/CPP/7zip/Compress/LzmaEncoder.h +0 -46
- package/android/jni/lzma/CPP/7zip/Compress/LzmaRegister.cpp +0 -22
- package/android/jni/lzma/CPP/7zip/Compress/PpmdDecoder.cpp +0 -170
- package/android/jni/lzma/CPP/7zip/Compress/PpmdDecoder.h +0 -86
- package/android/jni/lzma/CPP/7zip/Compress/PpmdEncoder.cpp +0 -152
- package/android/jni/lzma/CPP/7zip/Compress/PpmdEncoder.h +0 -58
- package/android/jni/lzma/CPP/7zip/Compress/PpmdRegister.cpp +0 -22
- package/android/jni/lzma/CPP/7zip/Compress/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/Compress/XzDecoder.cpp +0 -150
- package/android/jni/lzma/CPP/7zip/Compress/XzDecoder.h +0 -92
- package/android/jni/lzma/CPP/7zip/Compress/XzEncoder.cpp +0 -245
- package/android/jni/lzma/CPP/7zip/Compress/XzEncoder.h +0 -46
- package/android/jni/lzma/CPP/7zip/Crc.mak +0 -8
- package/android/jni/lzma/CPP/7zip/Crc64.mak +0 -8
- package/android/jni/lzma/CPP/7zip/Crypto/7zAes.cpp +0 -280
- package/android/jni/lzma/CPP/7zip/Crypto/7zAes.h +0 -118
- package/android/jni/lzma/CPP/7zip/Crypto/7zAesRegister.cpp +0 -17
- package/android/jni/lzma/CPP/7zip/Crypto/MyAes.cpp +0 -112
- package/android/jni/lzma/CPP/7zip/Crypto/MyAes.h +0 -57
- package/android/jni/lzma/CPP/7zip/Crypto/MyAesReg.cpp +0 -16
- package/android/jni/lzma/CPP/7zip/Crypto/RandGen.cpp +0 -233
- package/android/jni/lzma/CPP/7zip/Crypto/RandGen.h +0 -40
- package/android/jni/lzma/CPP/7zip/Crypto/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/GuiCommon.rc +0 -84
- package/android/jni/lzma/CPP/7zip/Guid.txt +0 -220
- package/android/jni/lzma/CPP/7zip/ICoder.h +0 -399
- package/android/jni/lzma/CPP/7zip/IDecl.h +0 -28
- package/android/jni/lzma/CPP/7zip/IPassword.h +0 -23
- package/android/jni/lzma/CPP/7zip/IProgress.h +0 -19
- package/android/jni/lzma/CPP/7zip/IStream.h +0 -127
- package/android/jni/lzma/CPP/7zip/LzmaDec.mak +0 -5
- package/android/jni/lzma/CPP/7zip/MyVersion.h +0 -2
- package/android/jni/lzma/CPP/7zip/MyVersionInfo.rc +0 -2
- package/android/jni/lzma/CPP/7zip/PropID.h +0 -127
- package/android/jni/lzma/CPP/7zip/SubBuild.mak +0 -3
- package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.cpp +0 -993
- package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.dsp +0 -235
- package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.dsw +0 -29
- package/android/jni/lzma/CPP/7zip/UI/Client7z/StdAfx.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/UI/Client7z/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/UI/Client7z/makefile +0 -28
- package/android/jni/lzma/CPP/7zip/UI/Client7z/resource.rc +0 -3
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.cpp +0 -1295
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.h +0 -136
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.cpp +0 -1715
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.h +0 -403
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveName.cpp +0 -155
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveName.h +0 -10
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.cpp +0 -161
- package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.h +0 -112
- package/android/jni/lzma/CPP/7zip/UI/Common/Bench.cpp +0 -3618
- package/android/jni/lzma/CPP/7zip/UI/Common/Bench.h +0 -77
- package/android/jni/lzma/CPP/7zip/UI/Common/DefaultName.cpp +0 -37
- package/android/jni/lzma/CPP/7zip/UI/Common/DefaultName.h +0 -11
- package/android/jni/lzma/CPP/7zip/UI/Common/DirItem.h +0 -190
- package/android/jni/lzma/CPP/7zip/UI/Common/EnumDirItems.cpp +0 -1096
- package/android/jni/lzma/CPP/7zip/UI/Common/EnumDirItems.h +0 -42
- package/android/jni/lzma/CPP/7zip/UI/Common/ExitCode.h +0 -27
- package/android/jni/lzma/CPP/7zip/UI/Common/Extract.cpp +0 -482
- package/android/jni/lzma/CPP/7zip/UI/Common/Extract.h +0 -94
- package/android/jni/lzma/CPP/7zip/UI/Common/ExtractMode.h +0 -34
- package/android/jni/lzma/CPP/7zip/UI/Common/ExtractingFilePath.cpp +0 -280
- package/android/jni/lzma/CPP/7zip/UI/Common/ExtractingFilePath.h +0 -31
- package/android/jni/lzma/CPP/7zip/UI/Common/HashCalc.cpp +0 -347
- package/android/jni/lzma/CPP/7zip/UI/Common/HashCalc.h +0 -110
- package/android/jni/lzma/CPP/7zip/UI/Common/IFileExtractCallback.h +0 -114
- package/android/jni/lzma/CPP/7zip/UI/Common/LoadCodecs.cpp +0 -1074
- package/android/jni/lzma/CPP/7zip/UI/Common/LoadCodecs.h +0 -424
- package/android/jni/lzma/CPP/7zip/UI/Common/OpenArchive.cpp +0 -3553
- package/android/jni/lzma/CPP/7zip/UI/Common/OpenArchive.h +0 -436
- package/android/jni/lzma/CPP/7zip/UI/Common/PropIDUtils.cpp +0 -668
- package/android/jni/lzma/CPP/7zip/UI/Common/PropIDUtils.h +0 -18
- package/android/jni/lzma/CPP/7zip/UI/Common/Property.h +0 -14
- package/android/jni/lzma/CPP/7zip/UI/Common/SetProperties.cpp +0 -80
- package/android/jni/lzma/CPP/7zip/UI/Common/SetProperties.h +0 -10
- package/android/jni/lzma/CPP/7zip/UI/Common/SortUtils.cpp +0 -25
- package/android/jni/lzma/CPP/7zip/UI/Common/SortUtils.h +0 -10
- package/android/jni/lzma/CPP/7zip/UI/Common/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/UI/Common/TempFiles.cpp +0 -19
- package/android/jni/lzma/CPP/7zip/UI/Common/TempFiles.h +0 -16
- package/android/jni/lzma/CPP/7zip/UI/Common/Update.cpp +0 -1704
- package/android/jni/lzma/CPP/7zip/UI/Common/Update.h +0 -200
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdateAction.cpp +0 -64
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdateAction.h +0 -66
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdateCallback.cpp +0 -771
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdateCallback.h +0 -162
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdatePair.cpp +0 -233
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdatePair.h +0 -27
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdateProduce.cpp +0 -70
- package/android/jni/lzma/CPP/7zip/UI/Common/UpdateProduce.h +0 -55
- package/android/jni/lzma/CPP/7zip/UI/Common/WorkDir.cpp +0 -94
- package/android/jni/lzma/CPP/7zip/UI/Common/WorkDir.h +0 -26
- package/android/jni/lzma/CPP/7zip/UI/Common/ZipRegistry.h +0 -130
- package/android/jni/lzma/CPP/7zip/UI/Console/BenchCon.cpp +0 -41
- package/android/jni/lzma/CPP/7zip/UI/Console/BenchCon.h +0 -14
- package/android/jni/lzma/CPP/7zip/UI/Console/Console.mak +0 -43
- package/android/jni/lzma/CPP/7zip/UI/Console/Console.manifest +0 -13
- package/android/jni/lzma/CPP/7zip/UI/Console/ConsoleClose.cpp +0 -69
- package/android/jni/lzma/CPP/7zip/UI/Console/ConsoleClose.h +0 -33
- package/android/jni/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.cpp +0 -825
- package/android/jni/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.h +0 -164
- package/android/jni/lzma/CPP/7zip/UI/Console/HashCon.cpp +0 -367
- package/android/jni/lzma/CPP/7zip/UI/Console/HashCon.h +0 -48
- package/android/jni/lzma/CPP/7zip/UI/Console/List.cpp +0 -1359
- package/android/jni/lzma/CPP/7zip/UI/Console/List.h +0 -27
- package/android/jni/lzma/CPP/7zip/UI/Console/Main.cpp +0 -1154
- package/android/jni/lzma/CPP/7zip/UI/Console/MainAr.cpp +0 -175
- package/android/jni/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.cpp +0 -115
- package/android/jni/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.h +0 -66
- package/android/jni/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp +0 -183
- package/android/jni/lzma/CPP/7zip/UI/Console/PercentPrinter.h +0 -62
- package/android/jni/lzma/CPP/7zip/UI/Console/StdAfx.cpp +0 -3
- package/android/jni/lzma/CPP/7zip/UI/Console/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.cpp +0 -702
- package/android/jni/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.h +0 -124
- package/android/jni/lzma/CPP/7zip/UI/Console/UserInputUtils.cpp +0 -110
- package/android/jni/lzma/CPP/7zip/UI/Console/UserInputUtils.h +0 -27
- package/android/jni/lzma/CPP/7zip/UI/Console/makefile +0 -64
- package/android/jni/lzma/CPP/7zip/UI/Console/resource.rc +0 -7
- package/android/jni/lzma/CPP/7zip/UI/Explorer/MyMessages.cpp +0 -37
- package/android/jni/lzma/CPP/7zip/UI/Explorer/MyMessages.h +0 -16
- package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialog.cpp +0 -1025
- package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialog.h +0 -21
- package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialogRes.h +0 -9
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialog.cpp +0 -64
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialog.h +0 -28
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialogRes.h +0 -4
- package/android/jni/lzma/CPP/7zip/UI/FileManager/DialogSize.h +0 -16
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ExtractCallback.cpp +0 -1037
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ExtractCallback.h +0 -328
- package/android/jni/lzma/CPP/7zip/UI/FileManager/FormatUtils.cpp +0 -28
- package/android/jni/lzma/CPP/7zip/UI/FileManager/FormatUtils.h +0 -14
- package/android/jni/lzma/CPP/7zip/UI/FileManager/LangUtils.h +0 -40
- package/android/jni/lzma/CPP/7zip/UI/FileManager/MyWindowsNew.h +0 -76
- package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.cpp +0 -122
- package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.h +0 -69
- package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.rc +0 -91
- package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialogRes.h +0 -17
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.cpp +0 -58
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.h +0 -28
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.rc +0 -14
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialogRes.h +0 -5
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.cpp +0 -196
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.h +0 -170
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.rc +0 -12
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.cpp +0 -1337
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.h +0 -351
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.rc +0 -40
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2Res.h +0 -48
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2a.rc +0 -80
- package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialogRes.h +0 -3
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyName.cpp +0 -23
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyName.h +0 -10
- package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyNameRes.h +0 -95
- package/android/jni/lzma/CPP/7zip/UI/FileManager/SysIconUtils.cpp +0 -255
- package/android/jni/lzma/CPP/7zip/UI/FileManager/SysIconUtils.h +0 -62
- package/android/jni/lzma/CPP/7zip/UI/FileManager/resource.h +0 -177
- package/android/jni/lzma/CPP/7zip/UI/FileManager/resourceGui.h +0 -15
- package/android/jni/lzma/CPP/7zip/UI/GUI/Extract.rc +0 -59
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.cpp +0 -418
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.h +0 -113
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.rc +0 -98
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialogRes.h +0 -24
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractGUI.cpp +0 -280
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractGUI.h +0 -38
- package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractRes.h +0 -51
- package/android/jni/lzma/CPP/7zip/UI/GUI/HashGUI.h +0 -27
- package/android/jni/lzma/CPP/7zip/UI/GUI/resource2.h +0 -2
- package/android/jni/lzma/CPP/Build.mak +0 -156
- package/android/jni/lzma/CPP/Common/AutoPtr.h +0 -35
- package/android/jni/lzma/CPP/Common/CRC.cpp +0 -7
- package/android/jni/lzma/CPP/Common/C_FileIO.cpp +0 -92
- package/android/jni/lzma/CPP/Common/C_FileIO.h +0 -53
- package/android/jni/lzma/CPP/Common/ComTry.h +0 -21
- package/android/jni/lzma/CPP/Common/CommandLineParser.cpp +0 -197
- package/android/jni/lzma/CPP/Common/CommandLineParser.h +0 -63
- package/android/jni/lzma/CPP/Common/Common.h +0 -43
- package/android/jni/lzma/CPP/Common/CrcReg.cpp +0 -98
- package/android/jni/lzma/CPP/Common/Defs.h +0 -15
- package/android/jni/lzma/CPP/Common/DynamicBuffer.h +0 -64
- package/android/jni/lzma/CPP/Common/IntToString.cpp +0 -193
- package/android/jni/lzma/CPP/Common/IntToString.h +0 -28
- package/android/jni/lzma/CPP/Common/Lang.h +0 -23
- package/android/jni/lzma/CPP/Common/ListFileUtils.cpp +0 -132
- package/android/jni/lzma/CPP/Common/ListFileUtils.h +0 -18
- package/android/jni/lzma/CPP/Common/MyBuffer.h +0 -259
- package/android/jni/lzma/CPP/Common/MyBuffer2.h +0 -100
- package/android/jni/lzma/CPP/Common/MyCom.h +0 -277
- package/android/jni/lzma/CPP/Common/MyException.h +0 -14
- package/android/jni/lzma/CPP/Common/MyGuidDef.h +0 -54
- package/android/jni/lzma/CPP/Common/MyInitGuid.h +0 -45
- package/android/jni/lzma/CPP/Common/MyLinux.h +0 -42
- package/android/jni/lzma/CPP/Common/MyString.cpp +0 -1659
- package/android/jni/lzma/CPP/Common/MyString.h +0 -868
- package/android/jni/lzma/CPP/Common/MyTypes.h +0 -35
- package/android/jni/lzma/CPP/Common/MyUnknown.h +0 -17
- package/android/jni/lzma/CPP/Common/MyVector.cpp +0 -3
- package/android/jni/lzma/CPP/Common/MyVector.h +0 -634
- package/android/jni/lzma/CPP/Common/MyWindows.cpp +0 -145
- package/android/jni/lzma/CPP/Common/MyWindows.h +0 -231
- package/android/jni/lzma/CPP/Common/NewHandler.cpp +0 -163
- package/android/jni/lzma/CPP/Common/NewHandler.h +0 -88
- package/android/jni/lzma/CPP/Common/Sha256Reg.cpp +0 -40
- package/android/jni/lzma/CPP/Common/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/Common/StdInStream.cpp +0 -89
- package/android/jni/lzma/CPP/Common/StdInStream.h +0 -38
- package/android/jni/lzma/CPP/Common/StdOutStream.cpp +0 -163
- package/android/jni/lzma/CPP/Common/StdOutStream.h +0 -71
- package/android/jni/lzma/CPP/Common/StringConvert.cpp +0 -319
- package/android/jni/lzma/CPP/Common/StringConvert.h +0 -88
- package/android/jni/lzma/CPP/Common/StringToInt.cpp +0 -144
- package/android/jni/lzma/CPP/Common/StringToInt.h +0 -21
- package/android/jni/lzma/CPP/Common/TextConfig.cpp +0 -124
- package/android/jni/lzma/CPP/Common/TextConfig.h +0 -19
- package/android/jni/lzma/CPP/Common/UTFConvert.cpp +0 -288
- package/android/jni/lzma/CPP/Common/UTFConvert.h +0 -12
- package/android/jni/lzma/CPP/Common/Wildcard.cpp +0 -676
- package/android/jni/lzma/CPP/Common/Wildcard.h +0 -149
- package/android/jni/lzma/CPP/Common/XzCrc64Init.cpp +0 -7
- package/android/jni/lzma/CPP/Common/XzCrc64Reg.cpp +0 -42
- package/android/jni/lzma/CPP/Windows/COM.h +0 -70
- package/android/jni/lzma/CPP/Windows/CommonDialog.cpp +0 -185
- package/android/jni/lzma/CPP/Windows/CommonDialog.h +0 -23
- package/android/jni/lzma/CPP/Windows/Control/ComboBox.cpp +0 -66
- package/android/jni/lzma/CPP/Windows/Control/ComboBox.h +0 -65
- package/android/jni/lzma/CPP/Windows/Control/CommandBar.h +0 -52
- package/android/jni/lzma/CPP/Windows/Control/Dialog.cpp +0 -251
- package/android/jni/lzma/CPP/Windows/Control/Dialog.h +0 -170
- package/android/jni/lzma/CPP/Windows/Control/Edit.h +0 -19
- package/android/jni/lzma/CPP/Windows/Control/ImageList.cpp +0 -10
- package/android/jni/lzma/CPP/Windows/Control/ImageList.h +0 -87
- package/android/jni/lzma/CPP/Windows/Control/ListView.cpp +0 -155
- package/android/jni/lzma/CPP/Windows/Control/ListView.h +0 -146
- package/android/jni/lzma/CPP/Windows/Control/ProgressBar.h +0 -35
- package/android/jni/lzma/CPP/Windows/Control/PropertyPage.cpp +0 -143
- package/android/jni/lzma/CPP/Windows/Control/PropertyPage.h +0 -50
- package/android/jni/lzma/CPP/Windows/Control/ReBar.h +0 -34
- package/android/jni/lzma/CPP/Windows/Control/Static.h +0 -28
- package/android/jni/lzma/CPP/Windows/Control/StatusBar.h +0 -42
- package/android/jni/lzma/CPP/Windows/Control/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/Windows/Control/ToolBar.h +0 -43
- package/android/jni/lzma/CPP/Windows/Control/Trackbar.h +0 -27
- package/android/jni/lzma/CPP/Windows/Control/Window2.cpp +0 -200
- package/android/jni/lzma/CPP/Windows/Control/Window2.h +0 -51
- package/android/jni/lzma/CPP/Windows/DLL.cpp +0 -109
- package/android/jni/lzma/CPP/Windows/DLL.h +0 -58
- package/android/jni/lzma/CPP/Windows/Defs.h +0 -17
- package/android/jni/lzma/CPP/Windows/ErrorMsg.cpp +0 -66
- package/android/jni/lzma/CPP/Windows/ErrorMsg.h +0 -15
- package/android/jni/lzma/CPP/Windows/FileDir.cpp +0 -714
- package/android/jni/lzma/CPP/Windows/FileDir.h +0 -117
- package/android/jni/lzma/CPP/Windows/FileFind.cpp +0 -749
- package/android/jni/lzma/CPP/Windows/FileFind.h +0 -161
- package/android/jni/lzma/CPP/Windows/FileIO.cpp +0 -432
- package/android/jni/lzma/CPP/Windows/FileIO.h +0 -212
- package/android/jni/lzma/CPP/Windows/FileLink.cpp +0 -440
- package/android/jni/lzma/CPP/Windows/FileMapping.cpp +0 -12
- package/android/jni/lzma/CPP/Windows/FileMapping.h +0 -66
- package/android/jni/lzma/CPP/Windows/FileName.cpp +0 -839
- package/android/jni/lzma/CPP/Windows/FileName.h +0 -115
- package/android/jni/lzma/CPP/Windows/FileSystem.cpp +0 -131
- package/android/jni/lzma/CPP/Windows/FileSystem.h +0 -27
- package/android/jni/lzma/CPP/Windows/Handle.h +0 -37
- package/android/jni/lzma/CPP/Windows/MemoryLock.cpp +0 -112
- package/android/jni/lzma/CPP/Windows/MemoryLock.h +0 -40
- package/android/jni/lzma/CPP/Windows/NtCheck.h +0 -46
- package/android/jni/lzma/CPP/Windows/PropVariant.cpp +0 -347
- package/android/jni/lzma/CPP/Windows/PropVariant.h +0 -114
- package/android/jni/lzma/CPP/Windows/PropVariantConv.cpp +0 -138
- package/android/jni/lzma/CPP/Windows/PropVariantConv.h +0 -37
- package/android/jni/lzma/CPP/Windows/Registry.cpp +0 -390
- package/android/jni/lzma/CPP/Windows/Registry.h +0 -84
- package/android/jni/lzma/CPP/Windows/ResourceString.cpp +0 -103
- package/android/jni/lzma/CPP/Windows/ResourceString.h +0 -16
- package/android/jni/lzma/CPP/Windows/SecurityUtils.cpp +0 -181
- package/android/jni/lzma/CPP/Windows/SecurityUtils.h +0 -167
- package/android/jni/lzma/CPP/Windows/Shell.cpp +0 -358
- package/android/jni/lzma/CPP/Windows/Shell.h +0 -94
- package/android/jni/lzma/CPP/Windows/StdAfx.h +0 -8
- package/android/jni/lzma/CPP/Windows/Synchronization.cpp +0 -10
- package/android/jni/lzma/CPP/Windows/Synchronization.h +0 -164
- package/android/jni/lzma/CPP/Windows/System.cpp +0 -142
- package/android/jni/lzma/CPP/Windows/System.h +0 -40
- package/android/jni/lzma/CPP/Windows/Thread.h +0 -38
- package/android/jni/lzma/CPP/Windows/TimeUtils.cpp +0 -213
- package/android/jni/lzma/CPP/Windows/TimeUtils.h +0 -32
- package/android/jni/lzma/CPP/Windows/Window.cpp +0 -179
- package/android/jni/lzma/CPP/Windows/Window.h +0 -284
- package/android/jni/lzma/CS/7zip/Common/CRC.cs +0 -55
- package/android/jni/lzma/CS/7zip/Common/CommandLineParser.cs +0 -274
- package/android/jni/lzma/CS/7zip/Common/InBuffer.cs +0 -72
- package/android/jni/lzma/CS/7zip/Common/OutBuffer.cs +0 -47
- package/android/jni/lzma/CS/7zip/Compress/LZ/IMatchFinder.cs +0 -24
- package/android/jni/lzma/CS/7zip/Compress/LZ/LzBinTree.cs +0 -367
- package/android/jni/lzma/CS/7zip/Compress/LZ/LzInWindow.cs +0 -132
- package/android/jni/lzma/CS/7zip/Compress/LZ/LzOutWindow.cs +0 -110
- package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaBase.cs +0 -76
- package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaDecoder.cs +0 -398
- package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaEncoder.cs +0 -1480
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.cs +0 -364
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.csproj +0 -90
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.sln +0 -20
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaBench.cs +0 -340
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/AssemblyInfo.cs +0 -29
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/Resources.cs +0 -70
- package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/Settings.cs +0 -42
- package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoder.cs +0 -234
- package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBit.cs +0 -117
- package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBitTree.cs +0 -157
- package/android/jni/lzma/CS/7zip/ICoder.cs +0 -157
- package/android/jni/lzma/DOC/7zC.txt +0 -187
- package/android/jni/lzma/DOC/7zFormat.txt +0 -469
- package/android/jni/lzma/DOC/Methods.txt +0 -173
- package/android/jni/lzma/DOC/installer.txt +0 -166
- package/android/jni/lzma/DOC/lzma-history.txt +0 -446
- package/android/jni/lzma/DOC/lzma-specification.txt +0 -1176
- package/android/jni/lzma/DOC/lzma.txt +0 -328
- package/android/jni/lzma/Java/SevenZip/CRC.java +0 -52
- package/android/jni/lzma/Java/SevenZip/Compression/LZ/BinTree.java +0 -382
- package/android/jni/lzma/Java/SevenZip/Compression/LZ/InWindow.java +0 -131
- package/android/jni/lzma/Java/SevenZip/Compression/LZ/OutWindow.java +0 -85
- package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Base.java +0 -88
- package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Decoder.java +0 -329
- package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Encoder.java +0 -1416
- package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeDecoder.java +0 -55
- package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeEncoder.java +0 -99
- package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/Decoder.java +0 -88
- package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/Encoder.java +0 -151
- package/android/jni/lzma/Java/SevenZip/ICodeProgress.java +0 -6
- package/android/jni/lzma/Java/SevenZip/LzmaAlone.java +0 -253
- package/android/jni/lzma/Java/SevenZip/LzmaBench.java +0 -392
- package/android/jni/lzma/bin/7zS2.sfx +0 -0
- package/android/jni/lzma/bin/7zS2con.sfx +0 -0
- package/android/jni/lzma/bin/7zSD.sfx +0 -0
- package/android/jni/lzma/bin/7zdec.exe +0 -0
- package/android/jni/lzma/bin/7zr.exe +0 -0
- package/android/jni/lzma/bin/installer/config.txt +0 -5
- package/android/jni/lzma/bin/installer/cr.bat +0 -5
- package/android/jni/lzma/bin/lzma.exe +0 -0
- package/android/jni/lzma/bin/x64/7zr.exe +0 -0
- package/android/src/main/java/cn/reactnative/modules/update/ArchivePatchPlanResult.java +0 -6
- package/android/src/main/java/cn/reactnative/modules/update/PushyConfiguration.java +0 -104
- package/android/src/main/java/cn/reactnative/modules/update/UiThreadRunner.java +0 -37
- package/android/src/newarch/cn/reactnative/modules/update/UpdateModule.java +0 -121
- package/android/src/oldarch/cn/reactnative/modules/update/UpdateModule.java +0 -125
- package/cpp/patch_core/jni_natives.h +0 -27
- package/cpp/patch_core/jni_registration.cpp +0 -103
- package/cpp/patch_core/jni_util.h +0 -60
- package/cpp/patch_core/patch_core_android.cpp +0 -97
- package/cpp/patch_core/update_core_android.cpp +0 -485
- package/cpp/update_flow_core/update_flow_jni.cpp +0 -150
|
@@ -5,107 +5,87 @@ import NativePatchCore from './NativePatchCore';
|
|
|
5
5
|
import type { UpdateContext } from './UpdateContext';
|
|
6
6
|
import { BundlePreparationRound, bundlePreparationResult } from './BundlePreparationResult';
|
|
7
7
|
import type { BundlePreparationResult } from './BundlePreparationResult';
|
|
8
|
-
import { isSafePathComponent } from './PathUtils';
|
|
9
|
-
import { QUERY_PATH, STATUS_NONE } from './Texts';
|
|
10
8
|
import { monotonicNowMs } from './MonotonicClock';
|
|
11
|
-
import {
|
|
12
|
-
ERROR_DOWNLOAD_FAILED,
|
|
13
|
-
createPushyError,
|
|
14
|
-
getErrorMessage,
|
|
15
|
-
} from './ErrorCodes';
|
|
9
|
+
import { PushyError, getErrorMessage } from './ErrorCodes';
|
|
16
10
|
|
|
17
11
|
// 原生冷启动检测(NATIVE_CHECKUPDATE_DESIGN §10):每进程一次,getBundleUrl
|
|
18
12
|
// 后延迟数秒运行,完全不依赖 app bundle——坏热更把 JS 砸挂后,下次启动仍能
|
|
19
|
-
//
|
|
20
|
-
//
|
|
13
|
+
// 拉到修复版。轮次本身由共享引擎驱动(cpp/update_flow_core/round_engine.h,
|
|
14
|
+
// 经 NativePatchCore.stepRound,NATIVE_CHECKUPDATE_DESIGN §12),本文件只
|
|
15
|
+
// 执行它要求的 IO。失败静默且有界:每次启动至多一轮,无重试
|
|
21
16
|
// 风暴,不拉黑版本。
|
|
22
17
|
// 鸿蒙的 debug 门控由触发点天然承担:dev 走 MetroJSBundleProvider,
|
|
23
18
|
// PushyFileJSBundleProvider.getBundleUrl 不会被调用。
|
|
24
19
|
const TAG = 'NativeSync';
|
|
20
|
+
// 与 Android 共用的存储键。鸿蒙不做 crash-hold(errorManager 的同步回调驱动
|
|
21
|
+
// 不了 ArkTS 异步网络 IO),续传 + 零延迟标记是收敛砖机的全部机制。
|
|
22
|
+
// <generated:storage-keys> (scripts/contract.ts; bun scripts/generate-contract.ts)
|
|
23
|
+
// The persisted native check config (JS syncNativeConfig or the host).
|
|
25
24
|
export const KEY_CONFIG = 'nativeConfig';
|
|
26
|
-
//
|
|
25
|
+
// Raw response cache for the JS side to reuse (§10.3), scoped to the exact
|
|
26
|
+
// logical request and native config that produced it.
|
|
27
27
|
export const KEY_RESP_CACHE = 'nativeCheckResp';
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
//
|
|
31
|
-
// 标记是收敛砖机的全部机制。
|
|
28
|
+
// Set when a round starts, cleared when it ends (§11.4). Residue on the
|
|
29
|
+
// next launch means the previous process died mid-round: that launch
|
|
30
|
+
// resumes immediately instead of waiting 5s.
|
|
32
31
|
export const KEY_ROUND_INCOMPLETE = 'nativeCheckIncomplete';
|
|
33
|
-
|
|
34
|
-
const REQUEST_CALL_TIMEOUT_MS = 15000;
|
|
35
|
-
const MAX_QUERY_HTTP_ATTEMPTS = 8;
|
|
32
|
+
// </generated:storage-keys>
|
|
36
33
|
const START_DELAY_MS = 5000;
|
|
37
|
-
const DOWNLOAD_PHASE_TIMEOUT_MS = 10 * 60 * 1000;
|
|
38
|
-
const DOWNLOAD_TYPE_DIFF = 'diff';
|
|
39
|
-
const DOWNLOAD_TYPE_PDIFF = 'pdiff';
|
|
40
34
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
packageVersion?: string;
|
|
44
|
-
endpoints?: string[];
|
|
45
|
-
queryUrls?: string[];
|
|
46
|
-
afterDownload?: string;
|
|
47
|
-
rnu?: string;
|
|
48
|
-
rn?: string;
|
|
49
|
-
disabled?: boolean;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
interface FlowIdentity {
|
|
35
|
+
// 本次启动的事实,交给共享内核(cpp/update_flow_core/native_round.h)。
|
|
36
|
+
interface RoundEnv {
|
|
53
37
|
packageVersion: string;
|
|
54
|
-
currentVersion
|
|
55
|
-
uuid: string;
|
|
56
|
-
rolledBackVersion?: string;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
interface FlowCInfo {
|
|
60
|
-
rnu: string;
|
|
61
|
-
rn: string;
|
|
62
|
-
os: string;
|
|
38
|
+
currentVersion: string;
|
|
63
39
|
uuid: string;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
interface FlowInput {
|
|
67
|
-
packageVersion: string;
|
|
68
|
-
currentVersion?: string;
|
|
40
|
+
rolledBackVersion: string;
|
|
69
41
|
buildTime: string;
|
|
70
|
-
|
|
71
|
-
supportedDiffVersion: number;
|
|
42
|
+
os: string;
|
|
72
43
|
bundleHash: string;
|
|
73
44
|
}
|
|
74
45
|
|
|
75
|
-
|
|
46
|
+
// 引擎的事件与命令(字段含义见 round_engine.h)。
|
|
47
|
+
interface RoundEvent {
|
|
76
48
|
type?: string;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
forceBootRescue?: boolean;
|
|
49
|
+
now?: number;
|
|
50
|
+
config?: string;
|
|
51
|
+
resetGeneration?: number;
|
|
52
|
+
configGeneration?: number;
|
|
53
|
+
sample?: number;
|
|
54
|
+
deadline?: number;
|
|
55
|
+
env?: RoundEnv;
|
|
56
|
+
text?: string;
|
|
57
|
+
at?: number;
|
|
58
|
+
installed?: boolean;
|
|
59
|
+
ok?: boolean;
|
|
60
|
+
code?: string;
|
|
61
|
+
timedOut?: boolean;
|
|
62
|
+
reason?: string;
|
|
63
|
+
error?: boolean;
|
|
93
64
|
}
|
|
94
65
|
|
|
95
|
-
interface
|
|
96
|
-
|
|
97
|
-
|
|
66
|
+
interface RoundCommand {
|
|
67
|
+
type: string;
|
|
68
|
+
url?: string;
|
|
69
|
+
post?: boolean;
|
|
70
|
+
body?: string;
|
|
71
|
+
timeoutMs?: number;
|
|
72
|
+
callTimeoutMs?: number;
|
|
98
73
|
hash?: string;
|
|
99
|
-
|
|
74
|
+
strategy?: string;
|
|
75
|
+
originHash?: string;
|
|
76
|
+
deadline?: number;
|
|
77
|
+
hashInfo?: string;
|
|
100
78
|
activate?: boolean;
|
|
101
|
-
|
|
79
|
+
cache?: string;
|
|
80
|
+
resetGeneration?: number;
|
|
81
|
+
status?: string;
|
|
82
|
+
reason?: string;
|
|
83
|
+
activated?: boolean;
|
|
102
84
|
}
|
|
103
85
|
|
|
104
|
-
interface
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
request: string;
|
|
108
|
-
config: string;
|
|
86
|
+
interface RoundStep {
|
|
87
|
+
state: Object;
|
|
88
|
+
commands: RoundCommand[];
|
|
109
89
|
}
|
|
110
90
|
|
|
111
91
|
let scheduled = false;
|
|
@@ -137,57 +117,75 @@ function startNativeRound(
|
|
|
137
117
|
});
|
|
138
118
|
}
|
|
139
119
|
|
|
120
|
+
interface ConfigRead {
|
|
121
|
+
json: string;
|
|
122
|
+
/** Set when the persisted configuration cannot start a round. */
|
|
123
|
+
rejection?: BundlePreparationResult;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// The single configuration gate shared by the preflight, the host API and
|
|
127
|
+
// the round itself, so the three can never disagree about what is runnable.
|
|
128
|
+
// The verdict is the shared core's (cpp/update_flow_core ParseRunnableConfig,
|
|
129
|
+
// also used by Android and iOS).
|
|
130
|
+
interface RunnableVerdict {
|
|
131
|
+
status?: string;
|
|
132
|
+
reason?: string;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function readNativeConfig(context: UpdateContext): ConfigRead {
|
|
136
|
+
const json = context.getKv(KEY_CONFIG);
|
|
137
|
+
const verdict = JSON.parse(NativePatchCore.runnableConfig(json)) as RunnableVerdict;
|
|
138
|
+
if (verdict.status !== undefined) {
|
|
139
|
+
return {
|
|
140
|
+
json,
|
|
141
|
+
rejection: bundlePreparationResult(verdict.status, verdict.reason ?? ''),
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
return { json };
|
|
145
|
+
}
|
|
146
|
+
|
|
140
147
|
// A preflight skip must not consume the process's only round: configuration
|
|
141
148
|
// may arrive after the delayed startup timer on a first-ever launch.
|
|
142
149
|
function configurationError(context: UpdateContext): BundlePreparationResult | undefined {
|
|
143
|
-
|
|
144
|
-
if (!json) {
|
|
145
|
-
return bundlePreparationResult('skipped', 'not_configured');
|
|
146
|
-
}
|
|
147
|
-
try {
|
|
148
|
-
const config = JSON.parse(json) as NativeConfig;
|
|
149
|
-
if (!config || typeof config !== 'object' || Array.isArray(config)) {
|
|
150
|
-
return bundlePreparationResult('failed', 'invalid_config');
|
|
151
|
-
}
|
|
152
|
-
if (config.disabled) {
|
|
153
|
-
return bundlePreparationResult('skipped', 'disabled');
|
|
154
|
-
}
|
|
155
|
-
if (typeof config.appKey !== 'string' || config.appKey.trim().length === 0) {
|
|
156
|
-
return bundlePreparationResult('failed', 'invalid_config');
|
|
157
|
-
}
|
|
158
|
-
} catch (e) {
|
|
159
|
-
return bundlePreparationResult('failed', 'invalid_config');
|
|
160
|
-
}
|
|
161
|
-
return undefined;
|
|
150
|
+
return readNativeConfig(context).rejection;
|
|
162
151
|
}
|
|
163
152
|
|
|
153
|
+
// timeoutMs bounds how long the host waits, as iOS/Android's
|
|
154
|
+
// prepareBundle(timeout): on expiry the result is failed/timeout and the round
|
|
155
|
+
// keeps running (its result still applies to the next launch). Without one the
|
|
156
|
+
// host waits for the round; nothing blocks meanwhile (single-threaded ArkTS).
|
|
164
157
|
export async function prepareBundleNative(
|
|
165
158
|
context: UpdateContext,
|
|
159
|
+
timeoutMs?: number,
|
|
166
160
|
): Promise<BundlePreparationResult> {
|
|
167
161
|
if (scheduledContext !== context) {
|
|
168
162
|
return bundlePreparationResult('skipped', 'not_initialized');
|
|
169
163
|
}
|
|
170
|
-
const
|
|
171
|
-
if (
|
|
172
|
-
return
|
|
164
|
+
const read = readNativeConfig(context);
|
|
165
|
+
if (read.rejection !== undefined) {
|
|
166
|
+
return read.rejection;
|
|
173
167
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
168
|
+
const configJson = read.json;
|
|
169
|
+
const round = startNativeRound(context, scheduledRollback);
|
|
170
|
+
let result: BundlePreparationResult;
|
|
171
|
+
if (timeoutMs === undefined) {
|
|
172
|
+
result = await round;
|
|
173
|
+
} else {
|
|
174
|
+
let timer: number | undefined;
|
|
175
|
+
const expired = new Promise<undefined>((resolve) => {
|
|
176
|
+
timer = setTimeout(() => resolve(undefined), Math.max(0, timeoutMs));
|
|
177
|
+
});
|
|
178
|
+
const settled = await Promise.race([round, expired]);
|
|
179
|
+
clearTimeout(timer);
|
|
180
|
+
if (settled === undefined) {
|
|
181
|
+
return bundlePreparationResult('failed', 'timeout');
|
|
184
182
|
}
|
|
185
|
-
|
|
186
|
-
return bundlePreparationResult('failed', 'invalid_config');
|
|
183
|
+
result = settled;
|
|
187
184
|
}
|
|
188
|
-
|
|
185
|
+
// 与引擎的 HostCancellation 同一规则:三方 C1 等价且配置代数未变。
|
|
189
186
|
if (roundConfigGeneration !== context.getNativeConfigGeneration()
|
|
190
|
-
|| configJson
|
|
187
|
+
|| !NativePatchCore.configsEquivalent(configJson, roundConfigJson)
|
|
188
|
+
|| !context.isStoredNativeConfig(configJson)) {
|
|
191
189
|
return bundlePreparationResult('cancelled', 'config_changed');
|
|
192
190
|
}
|
|
193
191
|
if (roundGeneration !== context.getResetGeneration()) {
|
|
@@ -205,13 +203,11 @@ export function recordJsRound(config: string): void {
|
|
|
205
203
|
jsCompletedConfig = config;
|
|
206
204
|
}
|
|
207
205
|
|
|
208
|
-
// JS
|
|
206
|
+
// JS 已用与原生等价的配置(C1:规范形式相同,而非逐字相同——宿主持有的配置
|
|
207
|
+
// 与 JS 序列化格式不同)拿到有效响应(§10.3):延迟轮次就是一次重复请求。
|
|
209
208
|
// 只有计划内的轮次会问这个问题——JS 没起来、启动即崩、检查失败时都不会有信号。
|
|
210
209
|
function hasJsRound(context: UpdateContext): boolean {
|
|
211
|
-
return (
|
|
212
|
-
jsCompletedConfig !== undefined &&
|
|
213
|
-
jsCompletedConfig === context.getKv(KEY_CONFIG)
|
|
214
|
-
);
|
|
210
|
+
return !!jsCompletedConfig && context.isStoredNativeConfig(jsCompletedConfig);
|
|
215
211
|
}
|
|
216
212
|
|
|
217
213
|
export function scheduleNativeSync(
|
|
@@ -246,286 +242,220 @@ async function runOnce(
|
|
|
246
242
|
context: UpdateContext,
|
|
247
243
|
launchRolledBackVersion: string,
|
|
248
244
|
): Promise<void> {
|
|
249
|
-
// 在任何 IO 之前采样:resetToPackagedBundle
|
|
250
|
-
// reset 必须赢过本轮的决策。
|
|
245
|
+
// 在任何 IO 之前采样:resetToPackagedBundle 与配置替换都会递增 reset 代数,
|
|
246
|
+
// 本轮运行期间发生的 reset 必须赢过本轮的决策。
|
|
251
247
|
const resetGeneration = context.getResetGeneration();
|
|
248
|
+
const configGeneration = context.getNativeConfigGeneration();
|
|
252
249
|
roundGeneration = resetGeneration;
|
|
253
|
-
roundConfigGeneration =
|
|
250
|
+
roundConfigGeneration = configGeneration;
|
|
254
251
|
roundResult = bundlePreparationResult('failed', 'check_failed');
|
|
255
252
|
const configJson = context.getKv(KEY_CONFIG);
|
|
256
253
|
roundConfigJson = configJson;
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
254
|
+
|
|
255
|
+
let event: RoundEvent = {
|
|
256
|
+
type: 'start',
|
|
257
|
+
config: configJson ?? '',
|
|
258
|
+
resetGeneration,
|
|
259
|
+
configGeneration,
|
|
260
|
+
sample: Math.random(),
|
|
261
|
+
deadline: 0,
|
|
262
|
+
};
|
|
263
|
+
let state: string | undefined = undefined;
|
|
264
|
+
let marked = false;
|
|
263
265
|
try {
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
266
|
+
for (;;) {
|
|
267
|
+
event.now = monotonicNowMs();
|
|
268
|
+
const step = JSON.parse(
|
|
269
|
+
NativePatchCore.stepRound(state, JSON.stringify(event)),
|
|
270
|
+
) as RoundStep;
|
|
271
|
+
state = JSON.stringify(step.state);
|
|
272
|
+
event = {};
|
|
273
|
+
for (const command of step.commands) {
|
|
274
|
+
if (command.type === 'markIncomplete') {
|
|
275
|
+
// 从这里起本轮开始做真实工作:留下面包屑,死于轮中时下次启动零延迟续传。
|
|
276
|
+
marked = true;
|
|
277
|
+
logger.info(
|
|
278
|
+
TAG,
|
|
279
|
+
`round started (resume=${!!context.getKv(KEY_ROUND_INCOMPLETE)})`,
|
|
280
|
+
);
|
|
281
|
+
// 面包屑只是"下次零延迟"的优化:落盘失败不能阻止救援轮次本身。
|
|
282
|
+
try {
|
|
283
|
+
await context.setKv(KEY_ROUND_INCOMPLETE, '1');
|
|
284
|
+
} catch (e) {
|
|
285
|
+
logger.warn(TAG, `cannot persist round marker: ${getErrorMessage(e)}`);
|
|
286
|
+
}
|
|
287
|
+
} else if (command.type === 'finish') {
|
|
288
|
+
finishRound(command);
|
|
289
|
+
return;
|
|
290
|
+
} else {
|
|
291
|
+
event = await perform(context, launchRolledBackVersion, command, configGeneration);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
268
294
|
}
|
|
269
|
-
} catch (e) {
|
|
270
|
-
roundResult = bundlePreparationResult('failed', 'invalid_config');
|
|
271
|
-
return;
|
|
272
|
-
}
|
|
273
|
-
if (config.disabled) {
|
|
274
|
-
roundResult = bundlePreparationResult('skipped', 'disabled');
|
|
275
|
-
return;
|
|
276
|
-
}
|
|
277
|
-
const appKey = config.appKey ?? '';
|
|
278
|
-
if (!appKey) {
|
|
279
|
-
roundResult = bundlePreparationResult('failed', 'invalid_config');
|
|
280
|
-
return;
|
|
281
|
-
}
|
|
282
|
-
// 从这里起本轮开始做真实工作:留下面包屑,死于轮中时下次启动零延迟续传。
|
|
283
|
-
logger.info(
|
|
284
|
-
TAG,
|
|
285
|
-
`round started (resume=${!!context.getKv(KEY_ROUND_INCOMPLETE)})`,
|
|
286
|
-
);
|
|
287
|
-
// 面包屑只是"下次零延迟"的优化:落盘失败不能阻止救援轮次本身。
|
|
288
|
-
try {
|
|
289
|
-
await context.setKv(KEY_ROUND_INCOMPLETE, '1');
|
|
290
|
-
} catch (e) {
|
|
291
|
-
logger.warn(TAG, `cannot persist round marker: ${getErrorMessage(e)}`);
|
|
292
|
-
}
|
|
293
|
-
try {
|
|
294
|
-
await runConfiguredRound(
|
|
295
|
-
context,
|
|
296
|
-
launchRolledBackVersion,
|
|
297
|
-
resetGeneration,
|
|
298
|
-
configJson,
|
|
299
|
-
config,
|
|
300
|
-
appKey,
|
|
301
|
-
);
|
|
302
295
|
} finally {
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
296
|
+
if (marked) {
|
|
297
|
+
try {
|
|
298
|
+
await context.removeKv(KEY_ROUND_INCOMPLETE);
|
|
299
|
+
} catch (e) {
|
|
300
|
+
// 残留标记只意味着下次启动少等 5 秒。
|
|
301
|
+
logger.warn(TAG, `cannot clear round marker: ${getErrorMessage(e)}`);
|
|
302
|
+
}
|
|
308
303
|
}
|
|
309
304
|
}
|
|
310
305
|
}
|
|
311
306
|
|
|
312
|
-
//
|
|
313
|
-
|
|
314
|
-
// https→http 降级防线(SR-1);其余依赖宿主 network_config.json 的
|
|
315
|
-
// cleartextTrafficPermitted:false(见 harmony/pushy/src/README.md)。
|
|
316
|
-
function isHttpsOnly(config: NativeConfig): boolean {
|
|
317
|
-
const endpoints = config.endpoints ?? [];
|
|
318
|
-
return (
|
|
319
|
-
endpoints.length > 0 &&
|
|
320
|
-
endpoints.every(endpoint => isHttpsUrl(endpoint))
|
|
321
|
-
);
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
function isHttpsUrl(url: string): boolean {
|
|
325
|
-
return typeof url === 'string' && url.toLowerCase().startsWith('https://');
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
function isCleartextUrl(url: string): boolean {
|
|
329
|
-
return typeof url === 'string' && url.toLowerCase().startsWith('http://');
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
async function runConfiguredRound(
|
|
307
|
+
// 执行引擎的一条命令,返回回应它的事件。
|
|
308
|
+
async function perform(
|
|
333
309
|
context: UpdateContext,
|
|
334
310
|
launchRolledBackVersion: string,
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
311
|
+
command: RoundCommand,
|
|
312
|
+
configGeneration: number,
|
|
313
|
+
): Promise<RoundEvent> {
|
|
314
|
+
switch (command.type) {
|
|
315
|
+
case 'collectEnv':
|
|
316
|
+
return { type: 'env', env: await launchEnv(context, launchRolledBackVersion) };
|
|
317
|
+
case 'http': {
|
|
318
|
+
const text = await httpRequest(
|
|
319
|
+
command.url ?? '',
|
|
320
|
+
command.post ? command.body ?? '' : undefined,
|
|
321
|
+
command.timeoutMs ?? 0,
|
|
322
|
+
command.callTimeoutMs ?? 0,
|
|
323
|
+
);
|
|
324
|
+
return text === undefined
|
|
325
|
+
? { type: 'http' }
|
|
326
|
+
: { type: 'http', text, at: Date.now() / 1000 };
|
|
327
|
+
}
|
|
328
|
+
case 'checkInstalled':
|
|
329
|
+
return { type: 'installed', installed: context.hasDownloadedVersion(command.hash ?? '') };
|
|
330
|
+
case 'download':
|
|
331
|
+
return download(context, command);
|
|
332
|
+
case 'commit':
|
|
333
|
+
return commit(context, command, configGeneration);
|
|
334
|
+
default:
|
|
335
|
+
// 本适配器不认识的命令:引擎会以 internal_error 结束本轮。
|
|
336
|
+
return { type: command.type };
|
|
354
337
|
}
|
|
338
|
+
}
|
|
355
339
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
340
|
+
async function launchEnv(
|
|
341
|
+
context: UpdateContext,
|
|
342
|
+
launchRolledBackVersion: string,
|
|
343
|
+
): Promise<RoundEnv> {
|
|
344
|
+
return {
|
|
345
|
+
packageVersion: context.getPackageVersion(),
|
|
346
|
+
// 与 JS 常量同形(无版本时为 ''),JS 才能复用这次请求的响应缓存。
|
|
347
|
+
currentVersion: context.getCurrentVersion(),
|
|
348
|
+
uuid: context.getKv('uuid') ?? '',
|
|
349
|
+
// getConstants consumes the persisted rollback marker during startup; use
|
|
350
|
+
// the launch-path snapshot captured before that happens.
|
|
351
|
+
rolledBackVersion: launchRolledBackVersion,
|
|
352
|
+
buildTime: context.getBuildTime(),
|
|
359
353
|
// RNOH's Platform.Version is osFullName; use the same value so JS can
|
|
360
354
|
// reuse the response cache produced by this native request.
|
|
361
355
|
os: `harmony ${deviceInfo.osFullName}`,
|
|
362
|
-
uuid,
|
|
363
|
-
};
|
|
364
|
-
|
|
365
|
-
const input: FlowInput = {
|
|
366
|
-
packageVersion: identity.packageVersion,
|
|
367
|
-
currentVersion,
|
|
368
|
-
buildTime: context.getBuildTime(),
|
|
369
|
-
cInfo,
|
|
370
|
-
supportedDiffVersion: NativePatchCore.getSupportedDiffVersion(),
|
|
371
356
|
bundleHash: await context.getBundleHash(),
|
|
372
357
|
};
|
|
373
|
-
|
|
374
|
-
if (!body) {
|
|
375
|
-
roundResult = bundlePreparationResult('failed', 'invalid_request');
|
|
376
|
-
return;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
const httpsOnly = isHttpsOnly(config);
|
|
380
|
-
const responseText = await runQueryRequest(config, appKey, body, httpsOnly);
|
|
381
|
-
if (!responseText) {
|
|
382
|
-
logger.warn(TAG, 'no endpoint reachable, giving up until next launch');
|
|
383
|
-
return;
|
|
384
|
-
}
|
|
385
|
-
// Anchor cache freshness to response arrival, before download/patch work.
|
|
386
|
-
const responseAtSeconds = Math.floor(Date.now() / 1000);
|
|
387
|
-
|
|
388
|
-
const decisionJson = NativePatchCore.handleResponse(
|
|
389
|
-
responseText,
|
|
390
|
-
JSON.stringify(identity),
|
|
391
|
-
config.afterDownload ?? '',
|
|
392
|
-
);
|
|
393
|
-
if (!decisionJson) {
|
|
394
|
-
roundResult = bundlePreparationResult('failed', 'invalid_response');
|
|
395
|
-
return;
|
|
396
|
-
}
|
|
397
|
-
const decision = JSON.parse(decisionJson) as Decision;
|
|
398
|
-
if (decision.action !== 'download') {
|
|
399
|
-
const committed = await context.commitSyncResult(
|
|
400
|
-
resetGeneration,
|
|
401
|
-
'',
|
|
402
|
-
'',
|
|
403
|
-
false,
|
|
404
|
-
buildResponseCacheJson(configJson, body, responseText, responseAtSeconds),
|
|
405
|
-
);
|
|
406
|
-
roundResult = committed
|
|
407
|
-
? bundlePreparationResult(STATUS_NONE, decision.reason ?? '')
|
|
408
|
-
: bundlePreparationResult('cancelled', 'reset');
|
|
409
|
-
logger.info(TAG, `nothing to do (${decision.reason ?? ''})`);
|
|
410
|
-
return;
|
|
411
|
-
}
|
|
412
|
-
const hash = decision.hash ?? '';
|
|
413
|
-
if (!isSafePathComponent(hash)) {
|
|
414
|
-
logger.warn(TAG, 'decision carries an unsafe hash, ignoring');
|
|
415
|
-
roundResult = bundlePreparationResult('failed', 'invalid_response');
|
|
416
|
-
return;
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
let downloaded = context.hasDownloadedVersion(hash);
|
|
420
|
-
if (downloaded) {
|
|
421
|
-
logger.info(TAG, `${hash} already installed, skipping download`);
|
|
422
|
-
} else {
|
|
423
|
-
logger.info(TAG, `downloading ${hash}`);
|
|
424
|
-
downloaded = await performAttempts(
|
|
425
|
-
context,
|
|
426
|
-
decision.attempts ?? [],
|
|
427
|
-
hash,
|
|
428
|
-
currentVersion,
|
|
429
|
-
httpsOnly,
|
|
430
|
-
);
|
|
431
|
-
}
|
|
432
|
-
if (!downloaded) {
|
|
433
|
-
logger.warn(TAG, `all download attempts for ${hash} failed`);
|
|
434
|
-
const committed = await context.commitSyncResult(
|
|
435
|
-
resetGeneration,
|
|
436
|
-
'',
|
|
437
|
-
'',
|
|
438
|
-
false,
|
|
439
|
-
buildResponseCacheJson(configJson, body, responseText, responseAtSeconds),
|
|
440
|
-
);
|
|
441
|
-
roundResult = committed
|
|
442
|
-
? bundlePreparationResult('failed', 'download_failed')
|
|
443
|
-
: bundlePreparationResult('cancelled', 'reset');
|
|
444
|
-
return;
|
|
445
|
-
}
|
|
358
|
+
}
|
|
446
359
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
360
|
+
// 一次下载尝试,以引擎给的 deadline 为界:超时即 timedOut,失败带错误码
|
|
361
|
+
// (PATCH_FAILED 由引擎决定换策略而不换镜像)。
|
|
362
|
+
async function download(
|
|
363
|
+
context: UpdateContext,
|
|
364
|
+
command: RoundCommand,
|
|
365
|
+
): Promise<RoundEvent> {
|
|
366
|
+
const strategy = command.strategy ?? '';
|
|
367
|
+
const url = command.url ?? '';
|
|
368
|
+
const hash = command.hash ?? '';
|
|
369
|
+
const deadline = command.deadline ?? 0;
|
|
370
|
+
let timedOut = false;
|
|
371
|
+
let timer = 0;
|
|
372
|
+
const expired = new Promise<void>((resolve) => {
|
|
373
|
+
timer = setTimeout(() => {
|
|
374
|
+
timedOut = true;
|
|
375
|
+
resolve();
|
|
376
|
+
}, Math.max(0, deadline - monotonicNowMs()));
|
|
377
|
+
});
|
|
378
|
+
// This bounds queueing, HTTP, decompression and native hpatch work from the
|
|
379
|
+
// round's perspective. The serialized task may still finish later, but it
|
|
380
|
+
// can no longer hold the round.
|
|
381
|
+
const start = (): Promise<void> => {
|
|
382
|
+
if (strategy === 'diff') {
|
|
383
|
+
return context.downloadPatchFromPpk(url, hash, command.originHash ?? '', deadline);
|
|
457
384
|
}
|
|
458
|
-
if (
|
|
459
|
-
|
|
385
|
+
if (strategy === 'pdiff') {
|
|
386
|
+
return context.downloadPatchFromPackage(url, hash, deadline);
|
|
460
387
|
}
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
388
|
+
return context.downloadFullUpdate(url, hash, deadline);
|
|
389
|
+
};
|
|
390
|
+
try {
|
|
391
|
+
await Promise.race([start(), expired]);
|
|
392
|
+
if (timedOut) {
|
|
393
|
+
logger.warn(TAG, `${strategy} attempt timed out`);
|
|
394
|
+
return { type: 'download', timedOut: true };
|
|
466
395
|
}
|
|
467
|
-
|
|
396
|
+
return { type: 'download', ok: true };
|
|
397
|
+
} catch (e) {
|
|
398
|
+
logger.warn(TAG, `${strategy} attempt failed: ${getErrorMessage(e)}`);
|
|
399
|
+
// 无错误码的失败(网络异常等)可换镜像重试。
|
|
400
|
+
return e instanceof PushyError
|
|
401
|
+
? { type: 'download', ok: false, code: e.code }
|
|
402
|
+
: { type: 'download', ok: false };
|
|
403
|
+
} finally {
|
|
404
|
+
clearTimeout(timer);
|
|
468
405
|
}
|
|
406
|
+
}
|
|
469
407
|
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
408
|
+
// 版本元信息、激活与响应缓存一次性原子提交(见 commitSyncResult)。配置替换
|
|
409
|
+
// 也会递增 reset 代数,提交因此被拒;配置代数用来区分是哪一种。
|
|
410
|
+
async function commit(
|
|
411
|
+
context: UpdateContext,
|
|
412
|
+
command: RoundCommand,
|
|
413
|
+
configGeneration: number,
|
|
414
|
+
): Promise<RoundEvent> {
|
|
475
415
|
try {
|
|
476
|
-
committed = await context.commitSyncResult(
|
|
477
|
-
resetGeneration,
|
|
478
|
-
hash,
|
|
479
|
-
|
|
480
|
-
activate,
|
|
481
|
-
|
|
416
|
+
const committed = await context.commitSyncResult(
|
|
417
|
+
command.resetGeneration ?? -1,
|
|
418
|
+
command.hash ?? '',
|
|
419
|
+
command.hashInfo ?? '',
|
|
420
|
+
command.activate === true,
|
|
421
|
+
command.cache ?? '',
|
|
482
422
|
);
|
|
423
|
+
if (!committed && context.getNativeConfigGeneration() !== configGeneration) {
|
|
424
|
+
return { type: 'committed', ok: false, reason: 'config_changed' };
|
|
425
|
+
}
|
|
426
|
+
return { type: 'committed', ok: committed };
|
|
483
427
|
} catch (e) {
|
|
484
428
|
logger.error(TAG, `commit failed: ${getErrorMessage(e)}`);
|
|
485
|
-
|
|
486
|
-
return;
|
|
487
|
-
}
|
|
488
|
-
if (!committed) {
|
|
489
|
-
logger.warn(TAG, 'reset during round, dropping result');
|
|
490
|
-
} else if (activate) {
|
|
491
|
-
logger.info(TAG, `downloaded ${hash} and set for next launch`);
|
|
492
|
-
} else {
|
|
493
|
-
logger.info(TAG, `downloaded ${hash}, activation left to JS`);
|
|
429
|
+
return { type: 'committed', ok: false, error: true };
|
|
494
430
|
}
|
|
495
|
-
roundResult = committed
|
|
496
|
-
? bundlePreparationResult('downloaded', '', hash, activate)
|
|
497
|
-
: bundlePreparationResult('cancelled', 'reset');
|
|
498
431
|
}
|
|
499
432
|
|
|
500
|
-
function
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
function isValidResponse(responseText: string | undefined): boolean {
|
|
516
|
-
if (responseText === undefined) {
|
|
517
|
-
return false;
|
|
518
|
-
}
|
|
519
|
-
try {
|
|
520
|
-
return NativePatchCore.isValidResponse(responseText);
|
|
521
|
-
} catch (e) {
|
|
522
|
-
return false;
|
|
433
|
+
function finishRound(finish: RoundCommand): void {
|
|
434
|
+
const status = finish.status ?? 'failed';
|
|
435
|
+
const reason = finish.reason ?? '';
|
|
436
|
+
if (status === 'downloaded') {
|
|
437
|
+
const hash = finish.hash ?? '';
|
|
438
|
+
const activated = finish.activated === true;
|
|
439
|
+
logger.info(
|
|
440
|
+
TAG,
|
|
441
|
+
activated
|
|
442
|
+
? `downloaded ${hash} and set for next launch`
|
|
443
|
+
: `downloaded ${hash}, activation left to JS`,
|
|
444
|
+
);
|
|
445
|
+
roundResult = bundlePreparationResult(status, reason, hash, activated);
|
|
446
|
+
return;
|
|
523
447
|
}
|
|
448
|
+
logger.info(TAG, `${status} (${reason})`);
|
|
449
|
+
roundResult = bundlePreparationResult(status, reason);
|
|
524
450
|
}
|
|
525
451
|
|
|
452
|
+
// The engine's per-request bounds: timeoutMs for connect/read, callTimeoutMs
|
|
453
|
+
// for the whole call.
|
|
526
454
|
async function httpRequest(
|
|
527
455
|
url: string,
|
|
528
|
-
postBody
|
|
456
|
+
postBody: string | undefined,
|
|
457
|
+
timeoutMs: number,
|
|
458
|
+
callTimeoutMs: number,
|
|
529
459
|
): Promise<string | undefined> {
|
|
530
460
|
const client = http.createHttp();
|
|
531
461
|
let callTimer: number | null = null;
|
|
@@ -540,14 +470,14 @@ async function httpRequest(
|
|
|
540
470
|
: http.RequestMethod.GET,
|
|
541
471
|
header,
|
|
542
472
|
extraData: postBody,
|
|
543
|
-
connectTimeout:
|
|
544
|
-
readTimeout:
|
|
473
|
+
connectTimeout: Math.max(1, Math.floor(timeoutMs)),
|
|
474
|
+
readTimeout: Math.max(1, Math.floor(timeoutMs)),
|
|
545
475
|
expectDataType: http.HttpDataType.STRING,
|
|
546
476
|
});
|
|
547
477
|
const timeoutPromise = new Promise<http.HttpResponse>((_, reject) => {
|
|
548
478
|
callTimer = setTimeout(() => {
|
|
549
|
-
reject(Error(`HTTP request exceeded ${
|
|
550
|
-
},
|
|
479
|
+
reject(Error(`HTTP request exceeded ${callTimeoutMs}ms`));
|
|
480
|
+
}, Math.max(0, callTimeoutMs));
|
|
551
481
|
});
|
|
552
482
|
const response = await Promise.race([requestPromise, timeoutPromise]);
|
|
553
483
|
if (
|
|
@@ -567,185 +497,3 @@ async function httpRequest(
|
|
|
567
497
|
client.destroy();
|
|
568
498
|
}
|
|
569
499
|
}
|
|
570
|
-
|
|
571
|
-
// 顺序回退(§5.1):按纯层给出的候选序逐个请求,单请求超时;整轮失败后经
|
|
572
|
-
// queryUrls 发现远程候选(排除已试过的)再来一轮。刻意不做 hedged race——
|
|
573
|
-
// 该路径对延迟不敏感。
|
|
574
|
-
async function runQueryRequest(
|
|
575
|
-
config: NativeConfig,
|
|
576
|
-
appKey: string,
|
|
577
|
-
body: string,
|
|
578
|
-
httpsOnly: boolean,
|
|
579
|
-
): Promise<string | undefined> {
|
|
580
|
-
const orderedJson = NativePatchCore.orderEndpointCandidates(
|
|
581
|
-
JSON.stringify(config.endpoints ?? []),
|
|
582
|
-
Math.random(),
|
|
583
|
-
);
|
|
584
|
-
if (!orderedJson) {
|
|
585
|
-
return undefined;
|
|
586
|
-
}
|
|
587
|
-
const ordered = JSON.parse(orderedJson) as string[];
|
|
588
|
-
const tried = new Set<string>();
|
|
589
|
-
let httpAttempts = 0;
|
|
590
|
-
for (const rawBase of ordered) {
|
|
591
|
-
const base = normalizeEndpointBase(rawBase);
|
|
592
|
-
if (!base || tried.has(base)) {
|
|
593
|
-
continue;
|
|
594
|
-
}
|
|
595
|
-
if (httpAttempts++ >= MAX_QUERY_HTTP_ATTEMPTS) {
|
|
596
|
-
return undefined;
|
|
597
|
-
}
|
|
598
|
-
tried.add(base);
|
|
599
|
-
const response = await httpRequest(`${base}${QUERY_PATH}${appKey}`, body);
|
|
600
|
-
if (isValidResponse(response)) {
|
|
601
|
-
return response;
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
for (const listUrl of config.queryUrls ?? []) {
|
|
605
|
-
if (!listUrl) {
|
|
606
|
-
continue;
|
|
607
|
-
}
|
|
608
|
-
if (httpAttempts++ >= MAX_QUERY_HTTP_ATTEMPTS) {
|
|
609
|
-
return undefined;
|
|
610
|
-
}
|
|
611
|
-
const listText = await httpRequest(listUrl);
|
|
612
|
-
if (listText === undefined) {
|
|
613
|
-
continue;
|
|
614
|
-
}
|
|
615
|
-
let remote: string[];
|
|
616
|
-
try {
|
|
617
|
-
const parsed = JSON.parse(listText) as Object;
|
|
618
|
-
if (!Array.isArray(parsed)) {
|
|
619
|
-
continue;
|
|
620
|
-
}
|
|
621
|
-
remote = parsed as string[];
|
|
622
|
-
} catch (e) {
|
|
623
|
-
continue;
|
|
624
|
-
}
|
|
625
|
-
for (const rawBase of remote) {
|
|
626
|
-
if (typeof rawBase !== 'string') {
|
|
627
|
-
continue;
|
|
628
|
-
}
|
|
629
|
-
const base = normalizeEndpointBase(rawBase);
|
|
630
|
-
if (!base || tried.has(base)) {
|
|
631
|
-
continue;
|
|
632
|
-
}
|
|
633
|
-
if (httpsOnly && !isHttpsUrl(base)) {
|
|
634
|
-
// 远程注入的端点不得把 https 配置降级成明文。
|
|
635
|
-
logger.warn(TAG, `ignoring non-https remote endpoint ${base}`);
|
|
636
|
-
continue;
|
|
637
|
-
}
|
|
638
|
-
if (httpAttempts++ >= MAX_QUERY_HTTP_ATTEMPTS) {
|
|
639
|
-
return undefined;
|
|
640
|
-
}
|
|
641
|
-
tried.add(base);
|
|
642
|
-
const response = await httpRequest(`${base}${QUERY_PATH}${appKey}`, body);
|
|
643
|
-
if (isValidResponse(response)) {
|
|
644
|
-
return response;
|
|
645
|
-
}
|
|
646
|
-
}
|
|
647
|
-
// 拉到一份可解析的远程列表就够了。
|
|
648
|
-
break;
|
|
649
|
-
}
|
|
650
|
-
return undefined;
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
function normalizeEndpointBase(base: string): string {
|
|
654
|
-
return base.replace(/\/+$/, '');
|
|
655
|
-
}
|
|
656
|
-
|
|
657
|
-
async function runWithinDeadline(
|
|
658
|
-
start: () => Promise<void>,
|
|
659
|
-
deadlineUptimeMs: number,
|
|
660
|
-
): Promise<void> {
|
|
661
|
-
const remainingMs = deadlineUptimeMs - monotonicNowMs();
|
|
662
|
-
if (remainingMs <= 0) {
|
|
663
|
-
throw createPushyError(
|
|
664
|
-
ERROR_DOWNLOAD_FAILED,
|
|
665
|
-
'Download phase deadline expired before start',
|
|
666
|
-
);
|
|
667
|
-
}
|
|
668
|
-
let deadlineTimer = 0;
|
|
669
|
-
const deadlinePromise = new Promise<void>((_, reject) => {
|
|
670
|
-
deadlineTimer = setTimeout(() => {
|
|
671
|
-
reject(
|
|
672
|
-
createPushyError(
|
|
673
|
-
ERROR_DOWNLOAD_FAILED,
|
|
674
|
-
'Download phase deadline exceeded',
|
|
675
|
-
),
|
|
676
|
-
);
|
|
677
|
-
}, remainingMs);
|
|
678
|
-
});
|
|
679
|
-
try {
|
|
680
|
-
// This bounds queueing, HTTP, decompression and native hpatch work from
|
|
681
|
-
// the orchestrator's perspective. The serialized task may still finish
|
|
682
|
-
// later, but it can no longer prevent the response cache from settling.
|
|
683
|
-
await Promise.race([start(), deadlinePromise]);
|
|
684
|
-
} finally {
|
|
685
|
-
clearTimeout(deadlineTimer);
|
|
686
|
-
}
|
|
687
|
-
}
|
|
688
|
-
|
|
689
|
-
async function performAttempts(
|
|
690
|
-
context: UpdateContext,
|
|
691
|
-
attempts: DecisionAttempt[],
|
|
692
|
-
hash: string,
|
|
693
|
-
originHash: string,
|
|
694
|
-
httpsOnly: boolean,
|
|
695
|
-
): Promise<boolean> {
|
|
696
|
-
const incrementalDeadline = monotonicNowMs() + DOWNLOAD_PHASE_TIMEOUT_MS;
|
|
697
|
-
let fullDeadline = 0;
|
|
698
|
-
for (const attempt of attempts) {
|
|
699
|
-
const type = attempt.type ?? '';
|
|
700
|
-
if (type === DOWNLOAD_TYPE_DIFF && !originHash) {
|
|
701
|
-
// diff 以当前运行版本为源;没有运行中的热更版本就跳过。
|
|
702
|
-
continue;
|
|
703
|
-
}
|
|
704
|
-
const isFullAttempt =
|
|
705
|
-
type !== DOWNLOAD_TYPE_DIFF && type !== DOWNLOAD_TYPE_PDIFF;
|
|
706
|
-
if (isFullAttempt && fullDeadline === 0) {
|
|
707
|
-
// Preserve a full 10min rescue budget even when diff/pdiff exhausted
|
|
708
|
-
// their own phase window.
|
|
709
|
-
fullDeadline = monotonicNowMs() + DOWNLOAD_PHASE_TIMEOUT_MS;
|
|
710
|
-
}
|
|
711
|
-
const deadline = isFullAttempt ? fullDeadline : incrementalDeadline;
|
|
712
|
-
for (const url of attempt.urls ?? []) {
|
|
713
|
-
if (!url) {
|
|
714
|
-
continue;
|
|
715
|
-
}
|
|
716
|
-
if (httpsOnly && isCleartextUrl(url)) {
|
|
717
|
-
// 决策里的明文制品 URL 不得把 https 配置降级(SR-1)。
|
|
718
|
-
logger.warn(TAG, `ignoring cleartext ${type} url ${url}`);
|
|
719
|
-
continue;
|
|
720
|
-
}
|
|
721
|
-
if (monotonicNowMs() >= deadline) {
|
|
722
|
-
if (isFullAttempt) {
|
|
723
|
-
return false;
|
|
724
|
-
}
|
|
725
|
-
break;
|
|
726
|
-
}
|
|
727
|
-
try {
|
|
728
|
-
if (type === DOWNLOAD_TYPE_DIFF) {
|
|
729
|
-
await runWithinDeadline(
|
|
730
|
-
() => context.downloadPatchFromPpk(url, hash, originHash, deadline),
|
|
731
|
-
deadline,
|
|
732
|
-
);
|
|
733
|
-
} else if (type === DOWNLOAD_TYPE_PDIFF) {
|
|
734
|
-
await runWithinDeadline(
|
|
735
|
-
() => context.downloadPatchFromPackage(url, hash, deadline),
|
|
736
|
-
deadline,
|
|
737
|
-
);
|
|
738
|
-
} else {
|
|
739
|
-
await runWithinDeadline(
|
|
740
|
-
() => context.downloadFullUpdate(url, hash, deadline),
|
|
741
|
-
deadline,
|
|
742
|
-
);
|
|
743
|
-
}
|
|
744
|
-
return true;
|
|
745
|
-
} catch (e) {
|
|
746
|
-
logger.warn(TAG, `${type} attempt failed: ${getErrorMessage(e)}`);
|
|
747
|
-
}
|
|
748
|
-
}
|
|
749
|
-
}
|
|
750
|
-
return false;
|
|
751
|
-
}
|