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.
Files changed (877) hide show
  1. package/README-CN.md +13 -7
  2. package/README.md +15 -6
  3. package/android/build.gradle +25 -33
  4. package/android/jni/Android.mk +18 -24
  5. package/android/jni/Application.mk +3 -1
  6. package/android/lib/arm64-v8a/librnpushy.so +0 -0
  7. package/android/lib/armeabi-v7a/librnpushy.so +0 -0
  8. package/android/lib/x86/librnpushy.so +0 -0
  9. package/android/lib/x86_64/librnpushy.so +0 -0
  10. package/android/proguard.pro +9 -7
  11. package/android/src/main/java/cn/reactnative/modules/update/ApkInstaller.java +3 -8
  12. package/android/src/main/java/cn/reactnative/modules/update/ArchiveLimits.java +24 -6
  13. package/android/src/main/java/cn/reactnative/modules/update/BundlePreparationResult.java +2 -0
  14. package/android/src/main/java/cn/reactnative/modules/update/BundledResourceCopier.java +50 -51
  15. package/android/src/main/java/cn/reactnative/modules/update/CleanupKeepNames.java +12 -13
  16. package/android/src/main/java/cn/reactnative/modules/update/CopyGroupResult.java +3 -0
  17. package/android/src/main/java/cn/reactnative/modules/update/CrashHold.java +22 -30
  18. package/android/src/main/java/cn/reactnative/modules/update/DownloadTask.java +284 -452
  19. package/android/src/main/java/cn/reactnative/modules/update/DownloadTaskParams.java +8 -4
  20. package/android/src/main/java/cn/reactnative/modules/update/ErrorCodes.java +32 -3
  21. package/android/src/main/java/cn/reactnative/modules/update/FileOperationException.java +1 -1
  22. package/android/src/main/java/cn/reactnative/modules/update/FlowBridge.java +39 -8
  23. package/android/src/main/java/cn/reactnative/modules/update/HttpClients.java +63 -0
  24. package/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java +0 -45
  25. package/android/src/main/java/cn/reactnative/modules/update/InstallRecord.java +68 -116
  26. package/android/src/main/java/cn/reactnative/modules/update/NativeCore.java +10 -2
  27. package/android/src/main/java/cn/reactnative/modules/update/PatchFailedException.java +1 -1
  28. package/android/src/main/java/cn/reactnative/modules/update/PushyRuntime.java +53 -62
  29. package/android/src/main/java/cn/reactnative/modules/update/ReactReloadManager.java +9 -24
  30. package/android/src/main/java/cn/reactnative/modules/update/ResumePlan.java +31 -0
  31. package/android/src/main/java/cn/reactnative/modules/update/SafeZipFile.java +42 -80
  32. package/android/src/main/java/cn/reactnative/modules/update/StateSerialRunner.java +22 -39
  33. package/android/src/main/java/cn/reactnative/modules/update/SyncCoordinator.java +474 -500
  34. package/android/src/main/java/cn/reactnative/modules/update/Texts.java +15 -1
  35. package/android/src/main/java/cn/reactnative/modules/update/Threads.java +44 -0
  36. package/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java +265 -188
  37. package/android/src/main/java/cn/reactnative/modules/update/UpdateEventEmitter.java +1 -1
  38. package/android/src/main/java/cn/reactnative/modules/update/UpdateFileUtils.java +75 -17
  39. package/android/src/main/java/cn/reactnative/modules/update/{UpdateModuleImpl.java → UpdateModule.java} +114 -96
  40. package/android/src/main/java/cn/reactnative/modules/update/UpdatePackage.java +16 -19
  41. package/android/src/main/java/cn/reactnative/modules/update/VersionScopedKeys.java +64 -0
  42. package/android/src/oldarch/cn/reactnative/modules/update/NativePushySpec.java +71 -0
  43. package/cpp/android_jni/archive_limits_jni.cpp +83 -0
  44. package/cpp/android_jni/install_record_jni.cpp +89 -0
  45. package/cpp/android_jni/jni_log.h +30 -0
  46. package/cpp/android_jni/jni_natives.h +46 -0
  47. package/cpp/android_jni/jni_registration.cpp +146 -0
  48. package/cpp/android_jni/jni_util.h +160 -0
  49. package/cpp/android_jni/resume_plan_jni.cpp +58 -0
  50. package/cpp/android_jni/update_core_android.cpp +448 -0
  51. package/cpp/android_jni/update_flow_jni.cpp +150 -0
  52. package/{android/jni → cpp/hpatch}/hpatch.c +5 -5
  53. package/{android/jni → cpp/hpatch}/hpatch.h +4 -1
  54. package/cpp/patch_core/archive_limits.cpp +194 -0
  55. package/cpp/patch_core/archive_limits.h +101 -10
  56. package/cpp/patch_core/archive_patch_core.cpp +98 -15
  57. package/cpp/patch_core/archive_patch_core.h +51 -0
  58. package/cpp/patch_core/digest.h +5 -4
  59. package/cpp/patch_core/error_codes.h +15 -11
  60. package/cpp/patch_core/install_record.cpp +430 -0
  61. package/cpp/patch_core/install_record.h +165 -9
  62. package/cpp/patch_core/native_texts.h +102 -0
  63. package/cpp/patch_core/patch_core.cpp +62 -16
  64. package/cpp/patch_core/patch_core.h +27 -7
  65. package/cpp/patch_core/patch_manifest.cpp +201 -0
  66. package/cpp/patch_core/patch_manifest.h +74 -0
  67. package/cpp/patch_core/resume_plan.cpp +226 -0
  68. package/cpp/patch_core/resume_plan.h +88 -0
  69. package/cpp/patch_core/state_ops.h +5 -3
  70. package/cpp/update_flow_core/flow_json.cpp +82 -8
  71. package/cpp/update_flow_core/flow_json.h +21 -0
  72. package/cpp/update_flow_core/native_config.cpp +436 -0
  73. package/cpp/update_flow_core/native_config.h +84 -0
  74. package/cpp/update_flow_core/native_round.cpp +321 -0
  75. package/cpp/update_flow_core/native_round.h +94 -0
  76. package/cpp/update_flow_core/round_engine.cpp +456 -0
  77. package/cpp/update_flow_core/round_engine.h +106 -0
  78. package/cpp/update_flow_core/update_flow_core.cpp +5 -14
  79. package/cpp/update_flow_core/update_flow_core.h +2 -2
  80. package/harmony/hvigor-plugin.ts +11 -19
  81. package/harmony/pushy/src/main/cpp/CMakeLists.txt +19 -26
  82. package/harmony/pushy/src/main/cpp/PushyPackage.h +2 -2
  83. package/harmony/pushy/src/main/cpp/PushyTurboModule.cpp +57 -94
  84. package/harmony/pushy/src/main/cpp/pushy.cpp +817 -518
  85. package/harmony/pushy/src/main/ets/ArchiveLimits.ts +55 -75
  86. package/harmony/pushy/src/main/ets/DownloadTask.ts +279 -539
  87. package/harmony/pushy/src/main/ets/DownloadTaskParams.ts +6 -6
  88. package/harmony/pushy/src/main/ets/ErrorCodes.ts +3 -15
  89. package/harmony/pushy/src/main/ets/EventHub.ts +1 -1
  90. package/harmony/pushy/src/main/ets/InstallRecord.ts +54 -151
  91. package/harmony/pushy/src/main/ets/Logger.ts +20 -34
  92. package/harmony/pushy/src/main/ets/NativePatchCore.ts +150 -41
  93. package/harmony/pushy/src/main/ets/PushyConfiguration.ts +8 -85
  94. package/harmony/pushy/src/main/ets/PushyFileJSBundleProvider.ets +8 -3
  95. package/harmony/pushy/src/main/ets/PushyTurboModule.ts +11 -25
  96. package/harmony/pushy/src/main/ets/SaveFile.ts +99 -18
  97. package/harmony/pushy/src/main/ets/SyncCoordinator.ts +291 -543
  98. package/harmony/pushy/src/main/ets/Texts.ts +8 -7
  99. package/harmony/pushy/src/main/ets/UpdateContext.ts +245 -152
  100. package/harmony/pushy.har +0 -0
  101. package/ios/RCTPushy/RCTPushy+Launch.mm +190 -0
  102. package/ios/RCTPushy/RCTPushy.h +12 -0
  103. package/ios/RCTPushy/RCTPushy.mm +135 -2666
  104. package/ios/RCTPushy/RCTPushyCommon.h +28 -0
  105. package/ios/RCTPushy/RCTPushyConfiguration.h +0 -8
  106. package/ios/RCTPushy/RCTPushyConfiguration.mm +40 -123
  107. package/ios/RCTPushy/RCTPushyDownloader.mm +152 -198
  108. package/ios/RCTPushy/RCTPushyInstallRecord.mm +101 -0
  109. package/ios/RCTPushy/RCTPushyInstaller.mm +732 -0
  110. package/ios/RCTPushy/RCTPushyInternal.h +185 -0
  111. package/ios/RCTPushy/RCTPushyOrchestrator.mm +969 -0
  112. package/ios/RCTPushy/RCTPushyState.mm +382 -0
  113. package/package.json +46 -25
  114. package/react-native-update.podspec +73 -82
  115. package/src/client.ts +126 -1633
  116. package/src/clientActivation.ts +324 -0
  117. package/src/clientCheck.ts +405 -0
  118. package/src/clientDownload.ts +448 -0
  119. package/src/clientNativeConfig.ts +171 -0
  120. package/src/clientReporter.ts +398 -0
  121. package/src/clientState.ts +51 -0
  122. package/src/context.ts +1 -1
  123. package/src/core.ts +39 -10
  124. package/src/endpoint.ts +22 -8
  125. package/src/error.ts +18 -35
  126. package/src/i18n.ts +18 -83
  127. package/src/locales/en.ts +1 -5
  128. package/src/locales/zh.ts +1 -5
  129. package/src/provider.tsx +86 -67
  130. package/src/telemetry.ts +0 -13
  131. package/src/type.ts +0 -15
  132. package/src/updateFlowCore.ts +116 -10
  133. package/src/utils.ts +49 -42
  134. package/android/jni/HDiffPatch/.travis.yml +0 -33
  135. package/android/jni/HDiffPatch/CHANGELOG.md +0 -153
  136. package/android/jni/HDiffPatch/Makefile +0 -157
  137. package/android/jni/HDiffPatch/_atosize.h +0 -83
  138. package/android/jni/HDiffPatch/_clock_for_demo.h +0 -47
  139. package/android/jni/HDiffPatch/_dir_ignore.h +0 -191
  140. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/Android.mk +0 -37
  141. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/Application.mk +0 -7
  142. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/build_libs.bat +0 -1
  143. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/build_libs.sh +0 -1
  144. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch.c +0 -18
  145. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch.h +0 -20
  146. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch_jni.c +0 -28
  147. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/java/com/github/sisong/HPatch.java +0 -8
  148. package/android/jni/HDiffPatch/builds/codeblocks/HDiffPatch.workspace +0 -8
  149. package/android/jni/HDiffPatch/builds/codeblocks/HDiffZ.cbp +0 -219
  150. package/android/jni/HDiffPatch/builds/codeblocks/HPatchZ.cbp +0 -156
  151. package/android/jni/HDiffPatch/builds/codeblocks/unitTest.cbp +0 -65
  152. package/android/jni/HDiffPatch/builds/vc/HDiffPatch.sln +0 -105
  153. package/android/jni/HDiffPatch/builds/vc/HDiffZ.vcxproj +0 -237
  154. package/android/jni/HDiffPatch/builds/vc/HDiffZ.vcxproj.user +0 -3
  155. package/android/jni/HDiffPatch/builds/vc/HPatchZ.vcxproj +0 -318
  156. package/android/jni/HDiffPatch/builds/vc/HPatchZ.vcxproj.user +0 -3
  157. package/android/jni/HDiffPatch/builds/vc/unitTest.vcxproj +0 -182
  158. package/android/jni/HDiffPatch/builds/vc/unitTest.vcxproj.user +0 -3
  159. package/android/jni/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/contents.xcworkspacedata +0 -30
  160. package/android/jni/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  161. package/android/jni/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.pbxproj +0 -408
  162. package/android/jni/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  163. package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.pbxproj +0 -573
  164. package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  165. package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  166. package/android/jni/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.pbxproj +0 -396
  167. package/android/jni/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  168. package/android/jni/HDiffPatch/builds/xcode/lz4.xcodeproj/project.pbxproj +0 -268
  169. package/android/jni/HDiffPatch/builds/xcode/lz4.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  170. package/android/jni/HDiffPatch/builds/xcode/lzma.xcodeproj/project.pbxproj +0 -361
  171. package/android/jni/HDiffPatch/builds/xcode/lzma.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  172. package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.pbxproj +0 -301
  173. package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  174. package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  175. package/android/jni/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.pbxproj +0 -411
  176. package/android/jni/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  177. package/android/jni/HDiffPatch/builds/xcode/zstd.xcodeproj/project.pbxproj +0 -504
  178. package/android/jni/HDiffPatch/builds/xcode/zstd.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  179. package/android/jni/HDiffPatch/checksum_plugin_demo.h +0 -344
  180. package/android/jni/HDiffPatch/compress_parallel.cpp +0 -166
  181. package/android/jni/HDiffPatch/compress_parallel.h +0 -59
  182. package/android/jni/HDiffPatch/compress_plugin_demo.h +0 -1152
  183. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.cpp +0 -797
  184. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.h +0 -65
  185. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.cpp +0 -200
  186. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.h +0 -178
  187. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.cpp +0 -357
  188. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.h +0 -87
  189. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/file_for_dirDiff.h +0 -151
  190. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.c +0 -770
  191. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.h +0 -236
  192. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_private.h +0 -47
  193. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.c +0 -112
  194. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.h +0 -53
  195. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.c +0 -331
  196. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.h +0 -144
  197. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_stream.c +0 -176
  198. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_stream.h +0 -84
  199. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.c +0 -146
  200. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.h +0 -61
  201. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.c +0 -152
  202. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.h +0 -76
  203. package/android/jni/HDiffPatch/hdiffz.cpp +0 -1570
  204. package/android/jni/HDiffPatch/hpatch_dir_listener.h +0 -290
  205. package/android/jni/HDiffPatch/hpatchz.c +0 -1221
  206. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff.cpp +0 -1025
  207. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff.h +0 -116
  208. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff_types.h +0 -72
  209. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.cpp +0 -213
  210. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.h +0 -63
  211. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.cpp +0 -170
  212. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.h +0 -86
  213. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/config.h +0 -89
  214. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c +0 -13
  215. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c.inc.h +0 -398
  216. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.h +0 -194
  217. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.c +0 -13
  218. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.h +0 -204
  219. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort_private.h +0 -207
  220. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/sssort.c.inc.h +0 -815
  221. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/trsort.c.inc.h +0 -586
  222. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/utils.c.inc.h +0 -381
  223. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.c +0 -352
  224. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.h +0 -137
  225. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/bloom_filter.h +0 -137
  226. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/covers.h +0 -70
  227. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.cpp +0 -628
  228. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.h +0 -87
  229. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.cpp +0 -363
  230. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.h +0 -139
  231. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/mem_buf.h +0 -68
  232. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/pack_uint.h +0 -115
  233. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.cpp +0 -342
  234. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.h +0 -94
  235. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/checksum_plugin.h +0 -52
  236. package/android/jni/HDiffPatch/libParallel/parallel_channel.cpp +0 -174
  237. package/android/jni/HDiffPatch/libParallel/parallel_channel.h +0 -73
  238. package/android/jni/HDiffPatch/libParallel/parallel_import.cpp +0 -367
  239. package/android/jni/HDiffPatch/libParallel/parallel_import.h +0 -92
  240. package/android/jni/lzma/Asm/arm/7zCrcOpt.asm +0 -100
  241. package/android/jni/lzma/Asm/x86/7zAsm.asm +0 -147
  242. package/android/jni/lzma/Asm/x86/7zCrcOpt.asm +0 -147
  243. package/android/jni/lzma/Asm/x86/AesOpt.asm +0 -237
  244. package/android/jni/lzma/Asm/x86/LzmaDecOpt.asm +0 -1258
  245. package/android/jni/lzma/Asm/x86/XzCrc64Opt.asm +0 -205
  246. package/android/jni/lzma/C/7z.h +0 -202
  247. package/android/jni/lzma/C/7zAlloc.c +0 -80
  248. package/android/jni/lzma/C/7zAlloc.h +0 -19
  249. package/android/jni/lzma/C/7zArcIn.c +0 -1771
  250. package/android/jni/lzma/C/7zBuf.c +0 -36
  251. package/android/jni/lzma/C/7zBuf.h +0 -35
  252. package/android/jni/lzma/C/7zBuf2.c +0 -52
  253. package/android/jni/lzma/C/7zCrc.c +0 -128
  254. package/android/jni/lzma/C/7zCrc.h +0 -25
  255. package/android/jni/lzma/C/7zCrcOpt.c +0 -115
  256. package/android/jni/lzma/C/7zDec.c +0 -591
  257. package/android/jni/lzma/C/7zFile.c +0 -286
  258. package/android/jni/lzma/C/7zFile.h +0 -83
  259. package/android/jni/lzma/C/7zStream.c +0 -176
  260. package/android/jni/lzma/C/7zVersion.h +0 -27
  261. package/android/jni/lzma/C/7zVersion.rc +0 -55
  262. package/android/jni/lzma/C/Aes.c +0 -306
  263. package/android/jni/lzma/C/Aes.h +0 -38
  264. package/android/jni/lzma/C/AesOpt.c +0 -184
  265. package/android/jni/lzma/C/Alloc.c +0 -455
  266. package/android/jni/lzma/C/Alloc.h +0 -51
  267. package/android/jni/lzma/C/Bcj2.c +0 -257
  268. package/android/jni/lzma/C/Bcj2.h +0 -146
  269. package/android/jni/lzma/C/Bcj2Enc.c +0 -311
  270. package/android/jni/lzma/C/Bra.c +0 -230
  271. package/android/jni/lzma/C/Bra.h +0 -64
  272. package/android/jni/lzma/C/Bra86.c +0 -82
  273. package/android/jni/lzma/C/BraIA64.c +0 -53
  274. package/android/jni/lzma/C/CpuArch.c +0 -218
  275. package/android/jni/lzma/C/CpuArch.h +0 -336
  276. package/android/jni/lzma/C/Delta.c +0 -64
  277. package/android/jni/lzma/C/Delta.h +0 -19
  278. package/android/jni/lzma/C/DllSecur.c +0 -108
  279. package/android/jni/lzma/C/DllSecur.h +0 -20
  280. package/android/jni/lzma/C/LzFind.c +0 -1127
  281. package/android/jni/lzma/C/LzFind.h +0 -121
  282. package/android/jni/lzma/C/LzFindMt.c +0 -853
  283. package/android/jni/lzma/C/LzFindMt.h +0 -101
  284. package/android/jni/lzma/C/LzHash.h +0 -57
  285. package/android/jni/lzma/C/Lzma2DecMt.c +0 -1082
  286. package/android/jni/lzma/C/Lzma2DecMt.h +0 -79
  287. package/android/jni/lzma/C/Lzma2Enc.c +0 -803
  288. package/android/jni/lzma/C/Lzma2Enc.h +0 -55
  289. package/android/jni/lzma/C/Lzma86.h +0 -111
  290. package/android/jni/lzma/C/Lzma86Dec.c +0 -54
  291. package/android/jni/lzma/C/Lzma86Enc.c +0 -106
  292. package/android/jni/lzma/C/LzmaEnc.c +0 -2976
  293. package/android/jni/lzma/C/LzmaEnc.h +0 -76
  294. package/android/jni/lzma/C/LzmaLib.c +0 -40
  295. package/android/jni/lzma/C/LzmaLib.h +0 -131
  296. package/android/jni/lzma/C/MtCoder.c +0 -601
  297. package/android/jni/lzma/C/MtCoder.h +0 -141
  298. package/android/jni/lzma/C/MtDec.c +0 -1138
  299. package/android/jni/lzma/C/MtDec.h +0 -201
  300. package/android/jni/lzma/C/Ppmd.h +0 -85
  301. package/android/jni/lzma/C/Ppmd7.c +0 -712
  302. package/android/jni/lzma/C/Ppmd7.h +0 -142
  303. package/android/jni/lzma/C/Ppmd7Dec.c +0 -191
  304. package/android/jni/lzma/C/Ppmd7Enc.c +0 -187
  305. package/android/jni/lzma/C/RotateDefs.h +0 -30
  306. package/android/jni/lzma/C/Sha256.c +0 -248
  307. package/android/jni/lzma/C/Sha256.h +0 -26
  308. package/android/jni/lzma/C/Sort.c +0 -141
  309. package/android/jni/lzma/C/Sort.h +0 -18
  310. package/android/jni/lzma/C/Threads.c +0 -95
  311. package/android/jni/lzma/C/Threads.h +0 -70
  312. package/android/jni/lzma/C/ThreadsP.c +0 -396
  313. package/android/jni/lzma/C/ThreadsP.h +0 -31
  314. package/android/jni/lzma/C/Util/7z/7z.dsp +0 -241
  315. package/android/jni/lzma/C/Util/7z/7z.dsw +0 -29
  316. package/android/jni/lzma/C/Util/7z/7zMain.c +0 -686
  317. package/android/jni/lzma/C/Util/7z/Precomp.c +0 -4
  318. package/android/jni/lzma/C/Util/7z/Precomp.h +0 -10
  319. package/android/jni/lzma/C/Util/7z/makefile +0 -40
  320. package/android/jni/lzma/C/Util/7z/makefile.gcc +0 -75
  321. package/android/jni/lzma/C/Util/Lzma/LzmaUtil.c +0 -258
  322. package/android/jni/lzma/C/Util/Lzma/LzmaUtil.dsp +0 -168
  323. package/android/jni/lzma/C/Util/Lzma/LzmaUtil.dsw +0 -29
  324. package/android/jni/lzma/C/Util/Lzma/makefile +0 -28
  325. package/android/jni/lzma/C/Util/Lzma/makefile.gcc +0 -44
  326. package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.def +0 -4
  327. package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.dsp +0 -178
  328. package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.dsw +0 -29
  329. package/android/jni/lzma/C/Util/LzmaLib/LzmaLibExports.c +0 -14
  330. package/android/jni/lzma/C/Util/LzmaLib/makefile +0 -34
  331. package/android/jni/lzma/C/Util/LzmaLib/resource.rc +0 -3
  332. package/android/jni/lzma/C/Util/SfxSetup/Precomp.c +0 -4
  333. package/android/jni/lzma/C/Util/SfxSetup/Precomp.h +0 -10
  334. package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.c +0 -640
  335. package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.dsp +0 -231
  336. package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.dsw +0 -29
  337. package/android/jni/lzma/C/Util/SfxSetup/makefile +0 -37
  338. package/android/jni/lzma/C/Util/SfxSetup/makefile_con +0 -38
  339. package/android/jni/lzma/C/Util/SfxSetup/resource.rc +0 -5
  340. package/android/jni/lzma/C/Util/SfxSetup/setup.ico +0 -0
  341. package/android/jni/lzma/C/Xz.c +0 -90
  342. package/android/jni/lzma/C/Xz.h +0 -460
  343. package/android/jni/lzma/C/XzCrc64.c +0 -86
  344. package/android/jni/lzma/C/XzCrc64.h +0 -26
  345. package/android/jni/lzma/C/XzCrc64Opt.c +0 -69
  346. package/android/jni/lzma/C/XzDec.c +0 -2766
  347. package/android/jni/lzma/C/XzEnc.c +0 -1329
  348. package/android/jni/lzma/C/XzEnc.h +0 -60
  349. package/android/jni/lzma/C/XzIn.c +0 -319
  350. package/android/jni/lzma/CPP/7zip/7zip.mak +0 -240
  351. package/android/jni/lzma/CPP/7zip/Aes.mak +0 -7
  352. package/android/jni/lzma/CPP/7zip/Archive/7z/7zCompressionMode.cpp +0 -3
  353. package/android/jni/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h +0 -76
  354. package/android/jni/lzma/CPP/7zip/Archive/7z/7zDecode.cpp +0 -569
  355. package/android/jni/lzma/CPP/7zip/Archive/7z/7zDecode.h +0 -70
  356. package/android/jni/lzma/CPP/7zip/Archive/7z/7zEncode.cpp +0 -678
  357. package/android/jni/lzma/CPP/7zip/Archive/7z/7zEncode.h +0 -92
  358. package/android/jni/lzma/CPP/7zip/Archive/7z/7zExtract.cpp +0 -423
  359. package/android/jni/lzma/CPP/7zip/Archive/7z/7zFolderInStream.cpp +0 -139
  360. package/android/jni/lzma/CPP/7zip/Archive/7z/7zFolderInStream.h +0 -61
  361. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandler.cpp +0 -763
  362. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandler.h +0 -181
  363. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandlerOut.cpp +0 -942
  364. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHeader.cpp +0 -19
  365. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHeader.h +0 -148
  366. package/android/jni/lzma/CPP/7zip/Archive/7z/7zIn.cpp +0 -1666
  367. package/android/jni/lzma/CPP/7zip/Archive/7z/7zIn.h +0 -445
  368. package/android/jni/lzma/CPP/7zip/Archive/7z/7zItem.h +0 -202
  369. package/android/jni/lzma/CPP/7zip/Archive/7z/7zOut.cpp +0 -901
  370. package/android/jni/lzma/CPP/7zip/Archive/7z/7zOut.h +0 -335
  371. package/android/jni/lzma/CPP/7zip/Archive/7z/7zProperties.cpp +0 -174
  372. package/android/jni/lzma/CPP/7zip/Archive/7z/7zProperties.h +0 -22
  373. package/android/jni/lzma/CPP/7zip/Archive/7z/7zRegister.cpp +0 -21
  374. package/android/jni/lzma/CPP/7zip/Archive/7z/7zSpecStream.cpp +0 -22
  375. package/android/jni/lzma/CPP/7zip/Archive/7z/7zSpecStream.h +0 -35
  376. package/android/jni/lzma/CPP/7zip/Archive/7z/7zUpdate.cpp +0 -2500
  377. package/android/jni/lzma/CPP/7zip/Archive/7z/7zUpdate.h +0 -139
  378. package/android/jni/lzma/CPP/7zip/Archive/7z/StdAfx.cpp +0 -3
  379. package/android/jni/lzma/CPP/7zip/Archive/7z/StdAfx.h +0 -8
  380. package/android/jni/lzma/CPP/7zip/Archive/Archive.def +0 -12
  381. package/android/jni/lzma/CPP/7zip/Archive/Archive2.def +0 -19
  382. package/android/jni/lzma/CPP/7zip/Archive/ArchiveExports.cpp +0 -151
  383. package/android/jni/lzma/CPP/7zip/Archive/Common/CoderMixer2.cpp +0 -1125
  384. package/android/jni/lzma/CPP/7zip/Archive/Common/CoderMixer2.h +0 -447
  385. package/android/jni/lzma/CPP/7zip/Archive/Common/DummyOutStream.cpp +0 -17
  386. package/android/jni/lzma/CPP/7zip/Archive/Common/DummyOutStream.h +0 -25
  387. package/android/jni/lzma/CPP/7zip/Archive/Common/HandlerOut.cpp +0 -232
  388. package/android/jni/lzma/CPP/7zip/Archive/Common/HandlerOut.h +0 -110
  389. package/android/jni/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.cpp +0 -46
  390. package/android/jni/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.h +0 -67
  391. package/android/jni/lzma/CPP/7zip/Archive/Common/ItemNameUtils.cpp +0 -88
  392. package/android/jni/lzma/CPP/7zip/Archive/Common/ItemNameUtils.h +0 -28
  393. package/android/jni/lzma/CPP/7zip/Archive/Common/MultiStream.cpp +0 -191
  394. package/android/jni/lzma/CPP/7zip/Archive/Common/MultiStream.h +0 -89
  395. package/android/jni/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp +0 -18
  396. package/android/jni/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.h +0 -37
  397. package/android/jni/lzma/CPP/7zip/Archive/Common/ParseProperties.cpp +0 -3
  398. package/android/jni/lzma/CPP/7zip/Archive/Common/ParseProperties.h +0 -6
  399. package/android/jni/lzma/CPP/7zip/Archive/Common/StdAfx.h +0 -8
  400. package/android/jni/lzma/CPP/7zip/Archive/DllExports2.cpp +0 -122
  401. package/android/jni/lzma/CPP/7zip/Archive/IArchive.h +0 -608
  402. package/android/jni/lzma/CPP/7zip/Archive/Icons/7z.ico +0 -0
  403. package/android/jni/lzma/CPP/7zip/Archive/LzmaHandler.cpp +0 -629
  404. package/android/jni/lzma/CPP/7zip/Archive/SplitHandler.cpp +0 -359
  405. package/android/jni/lzma/CPP/7zip/Archive/StdAfx.h +0 -8
  406. package/android/jni/lzma/CPP/7zip/Archive/XzHandler.cpp +0 -1308
  407. package/android/jni/lzma/CPP/7zip/Archive/XzHandler.h +0 -11
  408. package/android/jni/lzma/CPP/7zip/Asm.mak +0 -9
  409. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsp +0 -1910
  410. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsw +0 -29
  411. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.cpp +0 -3
  412. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.h +0 -8
  413. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/makefile +0 -154
  414. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/resource.rc +0 -7
  415. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.cpp +0 -3
  416. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.h +0 -8
  417. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/makefile +0 -96
  418. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/resource.rc +0 -5
  419. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.cpp +0 -3
  420. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.h +0 -8
  421. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/makefile +0 -116
  422. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/resource.rc +0 -5
  423. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaAlone.cpp +0 -799
  424. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsp +0 -477
  425. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsw +0 -29
  426. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.cpp +0 -3
  427. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.h +0 -8
  428. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/makefile +0 -59
  429. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/makefile.gcc +0 -195
  430. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/resource.rc +0 -3
  431. package/android/jni/lzma/CPP/7zip/Bundles/LzmaSpec/LzmaSpec.cpp +0 -715
  432. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/7z.ico +0 -0
  433. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsp +0 -912
  434. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsw +0 -29
  435. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SfxCon.cpp +0 -482
  436. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.cpp +0 -3
  437. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.h +0 -8
  438. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/makefile +0 -134
  439. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/resource.rc +0 -5
  440. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.cpp +0 -246
  441. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.h +0 -86
  442. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.cpp +0 -137
  443. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.h +0 -11
  444. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsp +0 -803
  445. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsw +0 -29
  446. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SfxSetup.cpp +0 -364
  447. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.cpp +0 -3
  448. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.h +0 -13
  449. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/makefile +0 -117
  450. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/resource.h +0 -6
  451. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/resource.rc +0 -16
  452. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/setup.ico +0 -0
  453. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/7z.ico +0 -0
  454. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsp +0 -988
  455. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsw +0 -29
  456. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SfxWin.cpp +0 -241
  457. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.cpp +0 -3
  458. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.h +0 -14
  459. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/makefile +0 -153
  460. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/resource.h +0 -1
  461. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/resource.rc +0 -50
  462. package/android/jni/lzma/CPP/7zip/Common/CWrappers.cpp +0 -250
  463. package/android/jni/lzma/CPP/7zip/Common/CWrappers.h +0 -120
  464. package/android/jni/lzma/CPP/7zip/Common/CreateCoder.cpp +0 -536
  465. package/android/jni/lzma/CPP/7zip/Common/CreateCoder.h +0 -192
  466. package/android/jni/lzma/CPP/7zip/Common/FilePathAutoRename.cpp +0 -46
  467. package/android/jni/lzma/CPP/7zip/Common/FilePathAutoRename.h +0 -10
  468. package/android/jni/lzma/CPP/7zip/Common/FileStreams.cpp +0 -475
  469. package/android/jni/lzma/CPP/7zip/Common/FileStreams.h +0 -166
  470. package/android/jni/lzma/CPP/7zip/Common/FilterCoder.cpp +0 -435
  471. package/android/jni/lzma/CPP/7zip/Common/FilterCoder.h +0 -205
  472. package/android/jni/lzma/CPP/7zip/Common/InBuffer.cpp +0 -163
  473. package/android/jni/lzma/CPP/7zip/Common/InBuffer.h +0 -92
  474. package/android/jni/lzma/CPP/7zip/Common/InOutTempBuffer.cpp +0 -127
  475. package/android/jni/lzma/CPP/7zip/Common/InOutTempBuffer.h +0 -48
  476. package/android/jni/lzma/CPP/7zip/Common/LimitedStreams.cpp +0 -367
  477. package/android/jni/lzma/CPP/7zip/Common/LimitedStreams.h +0 -252
  478. package/android/jni/lzma/CPP/7zip/Common/LockedStream.cpp +0 -3
  479. package/android/jni/lzma/CPP/7zip/Common/LockedStream.h +0 -6
  480. package/android/jni/lzma/CPP/7zip/Common/MethodId.cpp +0 -3
  481. package/android/jni/lzma/CPP/7zip/Common/MethodId.h +0 -10
  482. package/android/jni/lzma/CPP/7zip/Common/MethodProps.cpp +0 -509
  483. package/android/jni/lzma/CPP/7zip/Common/MethodProps.h +0 -264
  484. package/android/jni/lzma/CPP/7zip/Common/OffsetStream.cpp +0 -39
  485. package/android/jni/lzma/CPP/7zip/Common/OffsetStream.h +0 -26
  486. package/android/jni/lzma/CPP/7zip/Common/OutBuffer.cpp +0 -111
  487. package/android/jni/lzma/CPP/7zip/Common/OutBuffer.h +0 -66
  488. package/android/jni/lzma/CPP/7zip/Common/ProgressUtils.cpp +0 -51
  489. package/android/jni/lzma/CPP/7zip/Common/ProgressUtils.h +0 -35
  490. package/android/jni/lzma/CPP/7zip/Common/PropId.cpp +0 -108
  491. package/android/jni/lzma/CPP/7zip/Common/RegisterArc.h +0 -78
  492. package/android/jni/lzma/CPP/7zip/Common/RegisterCodec.h +0 -106
  493. package/android/jni/lzma/CPP/7zip/Common/StdAfx.h +0 -8
  494. package/android/jni/lzma/CPP/7zip/Common/StreamBinder.cpp +0 -156
  495. package/android/jni/lzma/CPP/7zip/Common/StreamBinder.h +0 -60
  496. package/android/jni/lzma/CPP/7zip/Common/StreamObjects.cpp +0 -285
  497. package/android/jni/lzma/CPP/7zip/Common/StreamObjects.h +0 -157
  498. package/android/jni/lzma/CPP/7zip/Common/StreamUtils.cpp +0 -56
  499. package/android/jni/lzma/CPP/7zip/Common/StreamUtils.h +0 -13
  500. package/android/jni/lzma/CPP/7zip/Common/UniqBlocks.cpp +0 -57
  501. package/android/jni/lzma/CPP/7zip/Common/UniqBlocks.h +0 -26
  502. package/android/jni/lzma/CPP/7zip/Common/VirtThread.cpp +0 -48
  503. package/android/jni/lzma/CPP/7zip/Common/VirtThread.h +0 -24
  504. package/android/jni/lzma/CPP/7zip/Compress/Bcj2Coder.cpp +0 -666
  505. package/android/jni/lzma/CPP/7zip/Compress/Bcj2Coder.h +0 -120
  506. package/android/jni/lzma/CPP/7zip/Compress/Bcj2Register.cpp +0 -24
  507. package/android/jni/lzma/CPP/7zip/Compress/BcjCoder.cpp +0 -24
  508. package/android/jni/lzma/CPP/7zip/Compress/BcjCoder.h +0 -31
  509. package/android/jni/lzma/CPP/7zip/Compress/BcjRegister.cpp +0 -17
  510. package/android/jni/lzma/CPP/7zip/Compress/BranchMisc.cpp +0 -23
  511. package/android/jni/lzma/CPP/7zip/Compress/BranchMisc.h +0 -35
  512. package/android/jni/lzma/CPP/7zip/Compress/BranchRegister.cpp +0 -41
  513. package/android/jni/lzma/CPP/7zip/Compress/ByteSwap.cpp +0 -92
  514. package/android/jni/lzma/CPP/7zip/Compress/CodecExports.cpp +0 -344
  515. package/android/jni/lzma/CPP/7zip/Compress/CopyCoder.cpp +0 -120
  516. package/android/jni/lzma/CPP/7zip/Compress/CopyCoder.h +0 -49
  517. package/android/jni/lzma/CPP/7zip/Compress/CopyRegister.cpp +0 -15
  518. package/android/jni/lzma/CPP/7zip/Compress/DeltaFilter.cpp +0 -128
  519. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Decoder.cpp +0 -265
  520. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Decoder.h +0 -96
  521. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Encoder.cpp +0 -122
  522. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Encoder.h +0 -42
  523. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Register.cpp +0 -22
  524. package/android/jni/lzma/CPP/7zip/Compress/LzmaDecoder.cpp +0 -343
  525. package/android/jni/lzma/CPP/7zip/Compress/LzmaDecoder.h +0 -113
  526. package/android/jni/lzma/CPP/7zip/Compress/LzmaEncoder.cpp +0 -182
  527. package/android/jni/lzma/CPP/7zip/Compress/LzmaEncoder.h +0 -46
  528. package/android/jni/lzma/CPP/7zip/Compress/LzmaRegister.cpp +0 -22
  529. package/android/jni/lzma/CPP/7zip/Compress/PpmdDecoder.cpp +0 -170
  530. package/android/jni/lzma/CPP/7zip/Compress/PpmdDecoder.h +0 -86
  531. package/android/jni/lzma/CPP/7zip/Compress/PpmdEncoder.cpp +0 -152
  532. package/android/jni/lzma/CPP/7zip/Compress/PpmdEncoder.h +0 -58
  533. package/android/jni/lzma/CPP/7zip/Compress/PpmdRegister.cpp +0 -22
  534. package/android/jni/lzma/CPP/7zip/Compress/StdAfx.h +0 -8
  535. package/android/jni/lzma/CPP/7zip/Compress/XzDecoder.cpp +0 -150
  536. package/android/jni/lzma/CPP/7zip/Compress/XzDecoder.h +0 -92
  537. package/android/jni/lzma/CPP/7zip/Compress/XzEncoder.cpp +0 -245
  538. package/android/jni/lzma/CPP/7zip/Compress/XzEncoder.h +0 -46
  539. package/android/jni/lzma/CPP/7zip/Crc.mak +0 -8
  540. package/android/jni/lzma/CPP/7zip/Crc64.mak +0 -8
  541. package/android/jni/lzma/CPP/7zip/Crypto/7zAes.cpp +0 -280
  542. package/android/jni/lzma/CPP/7zip/Crypto/7zAes.h +0 -118
  543. package/android/jni/lzma/CPP/7zip/Crypto/7zAesRegister.cpp +0 -17
  544. package/android/jni/lzma/CPP/7zip/Crypto/MyAes.cpp +0 -112
  545. package/android/jni/lzma/CPP/7zip/Crypto/MyAes.h +0 -57
  546. package/android/jni/lzma/CPP/7zip/Crypto/MyAesReg.cpp +0 -16
  547. package/android/jni/lzma/CPP/7zip/Crypto/RandGen.cpp +0 -233
  548. package/android/jni/lzma/CPP/7zip/Crypto/RandGen.h +0 -40
  549. package/android/jni/lzma/CPP/7zip/Crypto/StdAfx.h +0 -8
  550. package/android/jni/lzma/CPP/7zip/GuiCommon.rc +0 -84
  551. package/android/jni/lzma/CPP/7zip/Guid.txt +0 -220
  552. package/android/jni/lzma/CPP/7zip/ICoder.h +0 -399
  553. package/android/jni/lzma/CPP/7zip/IDecl.h +0 -28
  554. package/android/jni/lzma/CPP/7zip/IPassword.h +0 -23
  555. package/android/jni/lzma/CPP/7zip/IProgress.h +0 -19
  556. package/android/jni/lzma/CPP/7zip/IStream.h +0 -127
  557. package/android/jni/lzma/CPP/7zip/LzmaDec.mak +0 -5
  558. package/android/jni/lzma/CPP/7zip/MyVersion.h +0 -2
  559. package/android/jni/lzma/CPP/7zip/MyVersionInfo.rc +0 -2
  560. package/android/jni/lzma/CPP/7zip/PropID.h +0 -127
  561. package/android/jni/lzma/CPP/7zip/SubBuild.mak +0 -3
  562. package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.cpp +0 -993
  563. package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.dsp +0 -235
  564. package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.dsw +0 -29
  565. package/android/jni/lzma/CPP/7zip/UI/Client7z/StdAfx.cpp +0 -3
  566. package/android/jni/lzma/CPP/7zip/UI/Client7z/StdAfx.h +0 -8
  567. package/android/jni/lzma/CPP/7zip/UI/Client7z/makefile +0 -28
  568. package/android/jni/lzma/CPP/7zip/UI/Client7z/resource.rc +0 -3
  569. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.cpp +0 -1295
  570. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.h +0 -136
  571. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.cpp +0 -1715
  572. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.h +0 -403
  573. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveName.cpp +0 -155
  574. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveName.h +0 -10
  575. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.cpp +0 -161
  576. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.h +0 -112
  577. package/android/jni/lzma/CPP/7zip/UI/Common/Bench.cpp +0 -3618
  578. package/android/jni/lzma/CPP/7zip/UI/Common/Bench.h +0 -77
  579. package/android/jni/lzma/CPP/7zip/UI/Common/DefaultName.cpp +0 -37
  580. package/android/jni/lzma/CPP/7zip/UI/Common/DefaultName.h +0 -11
  581. package/android/jni/lzma/CPP/7zip/UI/Common/DirItem.h +0 -190
  582. package/android/jni/lzma/CPP/7zip/UI/Common/EnumDirItems.cpp +0 -1096
  583. package/android/jni/lzma/CPP/7zip/UI/Common/EnumDirItems.h +0 -42
  584. package/android/jni/lzma/CPP/7zip/UI/Common/ExitCode.h +0 -27
  585. package/android/jni/lzma/CPP/7zip/UI/Common/Extract.cpp +0 -482
  586. package/android/jni/lzma/CPP/7zip/UI/Common/Extract.h +0 -94
  587. package/android/jni/lzma/CPP/7zip/UI/Common/ExtractMode.h +0 -34
  588. package/android/jni/lzma/CPP/7zip/UI/Common/ExtractingFilePath.cpp +0 -280
  589. package/android/jni/lzma/CPP/7zip/UI/Common/ExtractingFilePath.h +0 -31
  590. package/android/jni/lzma/CPP/7zip/UI/Common/HashCalc.cpp +0 -347
  591. package/android/jni/lzma/CPP/7zip/UI/Common/HashCalc.h +0 -110
  592. package/android/jni/lzma/CPP/7zip/UI/Common/IFileExtractCallback.h +0 -114
  593. package/android/jni/lzma/CPP/7zip/UI/Common/LoadCodecs.cpp +0 -1074
  594. package/android/jni/lzma/CPP/7zip/UI/Common/LoadCodecs.h +0 -424
  595. package/android/jni/lzma/CPP/7zip/UI/Common/OpenArchive.cpp +0 -3553
  596. package/android/jni/lzma/CPP/7zip/UI/Common/OpenArchive.h +0 -436
  597. package/android/jni/lzma/CPP/7zip/UI/Common/PropIDUtils.cpp +0 -668
  598. package/android/jni/lzma/CPP/7zip/UI/Common/PropIDUtils.h +0 -18
  599. package/android/jni/lzma/CPP/7zip/UI/Common/Property.h +0 -14
  600. package/android/jni/lzma/CPP/7zip/UI/Common/SetProperties.cpp +0 -80
  601. package/android/jni/lzma/CPP/7zip/UI/Common/SetProperties.h +0 -10
  602. package/android/jni/lzma/CPP/7zip/UI/Common/SortUtils.cpp +0 -25
  603. package/android/jni/lzma/CPP/7zip/UI/Common/SortUtils.h +0 -10
  604. package/android/jni/lzma/CPP/7zip/UI/Common/StdAfx.h +0 -8
  605. package/android/jni/lzma/CPP/7zip/UI/Common/TempFiles.cpp +0 -19
  606. package/android/jni/lzma/CPP/7zip/UI/Common/TempFiles.h +0 -16
  607. package/android/jni/lzma/CPP/7zip/UI/Common/Update.cpp +0 -1704
  608. package/android/jni/lzma/CPP/7zip/UI/Common/Update.h +0 -200
  609. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateAction.cpp +0 -64
  610. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateAction.h +0 -66
  611. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateCallback.cpp +0 -771
  612. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateCallback.h +0 -162
  613. package/android/jni/lzma/CPP/7zip/UI/Common/UpdatePair.cpp +0 -233
  614. package/android/jni/lzma/CPP/7zip/UI/Common/UpdatePair.h +0 -27
  615. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateProduce.cpp +0 -70
  616. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateProduce.h +0 -55
  617. package/android/jni/lzma/CPP/7zip/UI/Common/WorkDir.cpp +0 -94
  618. package/android/jni/lzma/CPP/7zip/UI/Common/WorkDir.h +0 -26
  619. package/android/jni/lzma/CPP/7zip/UI/Common/ZipRegistry.h +0 -130
  620. package/android/jni/lzma/CPP/7zip/UI/Console/BenchCon.cpp +0 -41
  621. package/android/jni/lzma/CPP/7zip/UI/Console/BenchCon.h +0 -14
  622. package/android/jni/lzma/CPP/7zip/UI/Console/Console.mak +0 -43
  623. package/android/jni/lzma/CPP/7zip/UI/Console/Console.manifest +0 -13
  624. package/android/jni/lzma/CPP/7zip/UI/Console/ConsoleClose.cpp +0 -69
  625. package/android/jni/lzma/CPP/7zip/UI/Console/ConsoleClose.h +0 -33
  626. package/android/jni/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.cpp +0 -825
  627. package/android/jni/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.h +0 -164
  628. package/android/jni/lzma/CPP/7zip/UI/Console/HashCon.cpp +0 -367
  629. package/android/jni/lzma/CPP/7zip/UI/Console/HashCon.h +0 -48
  630. package/android/jni/lzma/CPP/7zip/UI/Console/List.cpp +0 -1359
  631. package/android/jni/lzma/CPP/7zip/UI/Console/List.h +0 -27
  632. package/android/jni/lzma/CPP/7zip/UI/Console/Main.cpp +0 -1154
  633. package/android/jni/lzma/CPP/7zip/UI/Console/MainAr.cpp +0 -175
  634. package/android/jni/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.cpp +0 -115
  635. package/android/jni/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.h +0 -66
  636. package/android/jni/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp +0 -183
  637. package/android/jni/lzma/CPP/7zip/UI/Console/PercentPrinter.h +0 -62
  638. package/android/jni/lzma/CPP/7zip/UI/Console/StdAfx.cpp +0 -3
  639. package/android/jni/lzma/CPP/7zip/UI/Console/StdAfx.h +0 -8
  640. package/android/jni/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.cpp +0 -702
  641. package/android/jni/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.h +0 -124
  642. package/android/jni/lzma/CPP/7zip/UI/Console/UserInputUtils.cpp +0 -110
  643. package/android/jni/lzma/CPP/7zip/UI/Console/UserInputUtils.h +0 -27
  644. package/android/jni/lzma/CPP/7zip/UI/Console/makefile +0 -64
  645. package/android/jni/lzma/CPP/7zip/UI/Console/resource.rc +0 -7
  646. package/android/jni/lzma/CPP/7zip/UI/Explorer/MyMessages.cpp +0 -37
  647. package/android/jni/lzma/CPP/7zip/UI/Explorer/MyMessages.h +0 -16
  648. package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialog.cpp +0 -1025
  649. package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialog.h +0 -21
  650. package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialogRes.h +0 -9
  651. package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialog.cpp +0 -64
  652. package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialog.h +0 -28
  653. package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialogRes.h +0 -4
  654. package/android/jni/lzma/CPP/7zip/UI/FileManager/DialogSize.h +0 -16
  655. package/android/jni/lzma/CPP/7zip/UI/FileManager/ExtractCallback.cpp +0 -1037
  656. package/android/jni/lzma/CPP/7zip/UI/FileManager/ExtractCallback.h +0 -328
  657. package/android/jni/lzma/CPP/7zip/UI/FileManager/FormatUtils.cpp +0 -28
  658. package/android/jni/lzma/CPP/7zip/UI/FileManager/FormatUtils.h +0 -14
  659. package/android/jni/lzma/CPP/7zip/UI/FileManager/LangUtils.h +0 -40
  660. package/android/jni/lzma/CPP/7zip/UI/FileManager/MyWindowsNew.h +0 -76
  661. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.cpp +0 -122
  662. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.h +0 -69
  663. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.rc +0 -91
  664. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialogRes.h +0 -17
  665. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.cpp +0 -58
  666. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.h +0 -28
  667. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.rc +0 -14
  668. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialogRes.h +0 -5
  669. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.cpp +0 -196
  670. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.h +0 -170
  671. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.rc +0 -12
  672. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.cpp +0 -1337
  673. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.h +0 -351
  674. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.rc +0 -40
  675. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2Res.h +0 -48
  676. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2a.rc +0 -80
  677. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialogRes.h +0 -3
  678. package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyName.cpp +0 -23
  679. package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyName.h +0 -10
  680. package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyNameRes.h +0 -95
  681. package/android/jni/lzma/CPP/7zip/UI/FileManager/SysIconUtils.cpp +0 -255
  682. package/android/jni/lzma/CPP/7zip/UI/FileManager/SysIconUtils.h +0 -62
  683. package/android/jni/lzma/CPP/7zip/UI/FileManager/resource.h +0 -177
  684. package/android/jni/lzma/CPP/7zip/UI/FileManager/resourceGui.h +0 -15
  685. package/android/jni/lzma/CPP/7zip/UI/GUI/Extract.rc +0 -59
  686. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.cpp +0 -418
  687. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.h +0 -113
  688. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.rc +0 -98
  689. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialogRes.h +0 -24
  690. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractGUI.cpp +0 -280
  691. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractGUI.h +0 -38
  692. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractRes.h +0 -51
  693. package/android/jni/lzma/CPP/7zip/UI/GUI/HashGUI.h +0 -27
  694. package/android/jni/lzma/CPP/7zip/UI/GUI/resource2.h +0 -2
  695. package/android/jni/lzma/CPP/Build.mak +0 -156
  696. package/android/jni/lzma/CPP/Common/AutoPtr.h +0 -35
  697. package/android/jni/lzma/CPP/Common/CRC.cpp +0 -7
  698. package/android/jni/lzma/CPP/Common/C_FileIO.cpp +0 -92
  699. package/android/jni/lzma/CPP/Common/C_FileIO.h +0 -53
  700. package/android/jni/lzma/CPP/Common/ComTry.h +0 -21
  701. package/android/jni/lzma/CPP/Common/CommandLineParser.cpp +0 -197
  702. package/android/jni/lzma/CPP/Common/CommandLineParser.h +0 -63
  703. package/android/jni/lzma/CPP/Common/Common.h +0 -43
  704. package/android/jni/lzma/CPP/Common/CrcReg.cpp +0 -98
  705. package/android/jni/lzma/CPP/Common/Defs.h +0 -15
  706. package/android/jni/lzma/CPP/Common/DynamicBuffer.h +0 -64
  707. package/android/jni/lzma/CPP/Common/IntToString.cpp +0 -193
  708. package/android/jni/lzma/CPP/Common/IntToString.h +0 -28
  709. package/android/jni/lzma/CPP/Common/Lang.h +0 -23
  710. package/android/jni/lzma/CPP/Common/ListFileUtils.cpp +0 -132
  711. package/android/jni/lzma/CPP/Common/ListFileUtils.h +0 -18
  712. package/android/jni/lzma/CPP/Common/MyBuffer.h +0 -259
  713. package/android/jni/lzma/CPP/Common/MyBuffer2.h +0 -100
  714. package/android/jni/lzma/CPP/Common/MyCom.h +0 -277
  715. package/android/jni/lzma/CPP/Common/MyException.h +0 -14
  716. package/android/jni/lzma/CPP/Common/MyGuidDef.h +0 -54
  717. package/android/jni/lzma/CPP/Common/MyInitGuid.h +0 -45
  718. package/android/jni/lzma/CPP/Common/MyLinux.h +0 -42
  719. package/android/jni/lzma/CPP/Common/MyString.cpp +0 -1659
  720. package/android/jni/lzma/CPP/Common/MyString.h +0 -868
  721. package/android/jni/lzma/CPP/Common/MyTypes.h +0 -35
  722. package/android/jni/lzma/CPP/Common/MyUnknown.h +0 -17
  723. package/android/jni/lzma/CPP/Common/MyVector.cpp +0 -3
  724. package/android/jni/lzma/CPP/Common/MyVector.h +0 -634
  725. package/android/jni/lzma/CPP/Common/MyWindows.cpp +0 -145
  726. package/android/jni/lzma/CPP/Common/MyWindows.h +0 -231
  727. package/android/jni/lzma/CPP/Common/NewHandler.cpp +0 -163
  728. package/android/jni/lzma/CPP/Common/NewHandler.h +0 -88
  729. package/android/jni/lzma/CPP/Common/Sha256Reg.cpp +0 -40
  730. package/android/jni/lzma/CPP/Common/StdAfx.h +0 -8
  731. package/android/jni/lzma/CPP/Common/StdInStream.cpp +0 -89
  732. package/android/jni/lzma/CPP/Common/StdInStream.h +0 -38
  733. package/android/jni/lzma/CPP/Common/StdOutStream.cpp +0 -163
  734. package/android/jni/lzma/CPP/Common/StdOutStream.h +0 -71
  735. package/android/jni/lzma/CPP/Common/StringConvert.cpp +0 -319
  736. package/android/jni/lzma/CPP/Common/StringConvert.h +0 -88
  737. package/android/jni/lzma/CPP/Common/StringToInt.cpp +0 -144
  738. package/android/jni/lzma/CPP/Common/StringToInt.h +0 -21
  739. package/android/jni/lzma/CPP/Common/TextConfig.cpp +0 -124
  740. package/android/jni/lzma/CPP/Common/TextConfig.h +0 -19
  741. package/android/jni/lzma/CPP/Common/UTFConvert.cpp +0 -288
  742. package/android/jni/lzma/CPP/Common/UTFConvert.h +0 -12
  743. package/android/jni/lzma/CPP/Common/Wildcard.cpp +0 -676
  744. package/android/jni/lzma/CPP/Common/Wildcard.h +0 -149
  745. package/android/jni/lzma/CPP/Common/XzCrc64Init.cpp +0 -7
  746. package/android/jni/lzma/CPP/Common/XzCrc64Reg.cpp +0 -42
  747. package/android/jni/lzma/CPP/Windows/COM.h +0 -70
  748. package/android/jni/lzma/CPP/Windows/CommonDialog.cpp +0 -185
  749. package/android/jni/lzma/CPP/Windows/CommonDialog.h +0 -23
  750. package/android/jni/lzma/CPP/Windows/Control/ComboBox.cpp +0 -66
  751. package/android/jni/lzma/CPP/Windows/Control/ComboBox.h +0 -65
  752. package/android/jni/lzma/CPP/Windows/Control/CommandBar.h +0 -52
  753. package/android/jni/lzma/CPP/Windows/Control/Dialog.cpp +0 -251
  754. package/android/jni/lzma/CPP/Windows/Control/Dialog.h +0 -170
  755. package/android/jni/lzma/CPP/Windows/Control/Edit.h +0 -19
  756. package/android/jni/lzma/CPP/Windows/Control/ImageList.cpp +0 -10
  757. package/android/jni/lzma/CPP/Windows/Control/ImageList.h +0 -87
  758. package/android/jni/lzma/CPP/Windows/Control/ListView.cpp +0 -155
  759. package/android/jni/lzma/CPP/Windows/Control/ListView.h +0 -146
  760. package/android/jni/lzma/CPP/Windows/Control/ProgressBar.h +0 -35
  761. package/android/jni/lzma/CPP/Windows/Control/PropertyPage.cpp +0 -143
  762. package/android/jni/lzma/CPP/Windows/Control/PropertyPage.h +0 -50
  763. package/android/jni/lzma/CPP/Windows/Control/ReBar.h +0 -34
  764. package/android/jni/lzma/CPP/Windows/Control/Static.h +0 -28
  765. package/android/jni/lzma/CPP/Windows/Control/StatusBar.h +0 -42
  766. package/android/jni/lzma/CPP/Windows/Control/StdAfx.h +0 -8
  767. package/android/jni/lzma/CPP/Windows/Control/ToolBar.h +0 -43
  768. package/android/jni/lzma/CPP/Windows/Control/Trackbar.h +0 -27
  769. package/android/jni/lzma/CPP/Windows/Control/Window2.cpp +0 -200
  770. package/android/jni/lzma/CPP/Windows/Control/Window2.h +0 -51
  771. package/android/jni/lzma/CPP/Windows/DLL.cpp +0 -109
  772. package/android/jni/lzma/CPP/Windows/DLL.h +0 -58
  773. package/android/jni/lzma/CPP/Windows/Defs.h +0 -17
  774. package/android/jni/lzma/CPP/Windows/ErrorMsg.cpp +0 -66
  775. package/android/jni/lzma/CPP/Windows/ErrorMsg.h +0 -15
  776. package/android/jni/lzma/CPP/Windows/FileDir.cpp +0 -714
  777. package/android/jni/lzma/CPP/Windows/FileDir.h +0 -117
  778. package/android/jni/lzma/CPP/Windows/FileFind.cpp +0 -749
  779. package/android/jni/lzma/CPP/Windows/FileFind.h +0 -161
  780. package/android/jni/lzma/CPP/Windows/FileIO.cpp +0 -432
  781. package/android/jni/lzma/CPP/Windows/FileIO.h +0 -212
  782. package/android/jni/lzma/CPP/Windows/FileLink.cpp +0 -440
  783. package/android/jni/lzma/CPP/Windows/FileMapping.cpp +0 -12
  784. package/android/jni/lzma/CPP/Windows/FileMapping.h +0 -66
  785. package/android/jni/lzma/CPP/Windows/FileName.cpp +0 -839
  786. package/android/jni/lzma/CPP/Windows/FileName.h +0 -115
  787. package/android/jni/lzma/CPP/Windows/FileSystem.cpp +0 -131
  788. package/android/jni/lzma/CPP/Windows/FileSystem.h +0 -27
  789. package/android/jni/lzma/CPP/Windows/Handle.h +0 -37
  790. package/android/jni/lzma/CPP/Windows/MemoryLock.cpp +0 -112
  791. package/android/jni/lzma/CPP/Windows/MemoryLock.h +0 -40
  792. package/android/jni/lzma/CPP/Windows/NtCheck.h +0 -46
  793. package/android/jni/lzma/CPP/Windows/PropVariant.cpp +0 -347
  794. package/android/jni/lzma/CPP/Windows/PropVariant.h +0 -114
  795. package/android/jni/lzma/CPP/Windows/PropVariantConv.cpp +0 -138
  796. package/android/jni/lzma/CPP/Windows/PropVariantConv.h +0 -37
  797. package/android/jni/lzma/CPP/Windows/Registry.cpp +0 -390
  798. package/android/jni/lzma/CPP/Windows/Registry.h +0 -84
  799. package/android/jni/lzma/CPP/Windows/ResourceString.cpp +0 -103
  800. package/android/jni/lzma/CPP/Windows/ResourceString.h +0 -16
  801. package/android/jni/lzma/CPP/Windows/SecurityUtils.cpp +0 -181
  802. package/android/jni/lzma/CPP/Windows/SecurityUtils.h +0 -167
  803. package/android/jni/lzma/CPP/Windows/Shell.cpp +0 -358
  804. package/android/jni/lzma/CPP/Windows/Shell.h +0 -94
  805. package/android/jni/lzma/CPP/Windows/StdAfx.h +0 -8
  806. package/android/jni/lzma/CPP/Windows/Synchronization.cpp +0 -10
  807. package/android/jni/lzma/CPP/Windows/Synchronization.h +0 -164
  808. package/android/jni/lzma/CPP/Windows/System.cpp +0 -142
  809. package/android/jni/lzma/CPP/Windows/System.h +0 -40
  810. package/android/jni/lzma/CPP/Windows/Thread.h +0 -38
  811. package/android/jni/lzma/CPP/Windows/TimeUtils.cpp +0 -213
  812. package/android/jni/lzma/CPP/Windows/TimeUtils.h +0 -32
  813. package/android/jni/lzma/CPP/Windows/Window.cpp +0 -179
  814. package/android/jni/lzma/CPP/Windows/Window.h +0 -284
  815. package/android/jni/lzma/CS/7zip/Common/CRC.cs +0 -55
  816. package/android/jni/lzma/CS/7zip/Common/CommandLineParser.cs +0 -274
  817. package/android/jni/lzma/CS/7zip/Common/InBuffer.cs +0 -72
  818. package/android/jni/lzma/CS/7zip/Common/OutBuffer.cs +0 -47
  819. package/android/jni/lzma/CS/7zip/Compress/LZ/IMatchFinder.cs +0 -24
  820. package/android/jni/lzma/CS/7zip/Compress/LZ/LzBinTree.cs +0 -367
  821. package/android/jni/lzma/CS/7zip/Compress/LZ/LzInWindow.cs +0 -132
  822. package/android/jni/lzma/CS/7zip/Compress/LZ/LzOutWindow.cs +0 -110
  823. package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaBase.cs +0 -76
  824. package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaDecoder.cs +0 -398
  825. package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaEncoder.cs +0 -1480
  826. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.cs +0 -364
  827. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.csproj +0 -90
  828. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.sln +0 -20
  829. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaBench.cs +0 -340
  830. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/AssemblyInfo.cs +0 -29
  831. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/Resources.cs +0 -70
  832. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/Settings.cs +0 -42
  833. package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoder.cs +0 -234
  834. package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBit.cs +0 -117
  835. package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBitTree.cs +0 -157
  836. package/android/jni/lzma/CS/7zip/ICoder.cs +0 -157
  837. package/android/jni/lzma/DOC/7zC.txt +0 -187
  838. package/android/jni/lzma/DOC/7zFormat.txt +0 -469
  839. package/android/jni/lzma/DOC/Methods.txt +0 -173
  840. package/android/jni/lzma/DOC/installer.txt +0 -166
  841. package/android/jni/lzma/DOC/lzma-history.txt +0 -446
  842. package/android/jni/lzma/DOC/lzma-specification.txt +0 -1176
  843. package/android/jni/lzma/DOC/lzma.txt +0 -328
  844. package/android/jni/lzma/Java/SevenZip/CRC.java +0 -52
  845. package/android/jni/lzma/Java/SevenZip/Compression/LZ/BinTree.java +0 -382
  846. package/android/jni/lzma/Java/SevenZip/Compression/LZ/InWindow.java +0 -131
  847. package/android/jni/lzma/Java/SevenZip/Compression/LZ/OutWindow.java +0 -85
  848. package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Base.java +0 -88
  849. package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Decoder.java +0 -329
  850. package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Encoder.java +0 -1416
  851. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeDecoder.java +0 -55
  852. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeEncoder.java +0 -99
  853. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/Decoder.java +0 -88
  854. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/Encoder.java +0 -151
  855. package/android/jni/lzma/Java/SevenZip/ICodeProgress.java +0 -6
  856. package/android/jni/lzma/Java/SevenZip/LzmaAlone.java +0 -253
  857. package/android/jni/lzma/Java/SevenZip/LzmaBench.java +0 -392
  858. package/android/jni/lzma/bin/7zS2.sfx +0 -0
  859. package/android/jni/lzma/bin/7zS2con.sfx +0 -0
  860. package/android/jni/lzma/bin/7zSD.sfx +0 -0
  861. package/android/jni/lzma/bin/7zdec.exe +0 -0
  862. package/android/jni/lzma/bin/7zr.exe +0 -0
  863. package/android/jni/lzma/bin/installer/config.txt +0 -5
  864. package/android/jni/lzma/bin/installer/cr.bat +0 -5
  865. package/android/jni/lzma/bin/lzma.exe +0 -0
  866. package/android/jni/lzma/bin/x64/7zr.exe +0 -0
  867. package/android/src/main/java/cn/reactnative/modules/update/ArchivePatchPlanResult.java +0 -6
  868. package/android/src/main/java/cn/reactnative/modules/update/PushyConfiguration.java +0 -104
  869. package/android/src/main/java/cn/reactnative/modules/update/UiThreadRunner.java +0 -37
  870. package/android/src/newarch/cn/reactnative/modules/update/UpdateModule.java +0 -121
  871. package/android/src/oldarch/cn/reactnative/modules/update/UpdateModule.java +0 -125
  872. package/cpp/patch_core/jni_natives.h +0 -27
  873. package/cpp/patch_core/jni_registration.cpp +0 -103
  874. package/cpp/patch_core/jni_util.h +0 -60
  875. package/cpp/patch_core/patch_core_android.cpp +0 -97
  876. package/cpp/patch_core/update_core_android.cpp +0 -485
  877. 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
- // 拉到修复版。决策全部来自 cpp/update_flow_core(经 NativePatchCore 的
20
- // NAPI 面),本文件只是 IO 胶水。失败静默且有界:每次启动至多一轮,无重试
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
- // 供 JS 侧复用的原始响应缓存(§10.3),同时记录请求与配置指纹以限定命中范围。
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
- // 轮次开始落盘、结束清除(§11.4)。下次启动读到残留 = 上个进程死于轮中
29
- // (砖机的签名),该次启动跳过 5s 延迟立即续传。鸿蒙本版不做 crash-hold
30
- // (errorManager 的同步回调驱动不了 ArkTS 异步网络 IO),续传 + 零延迟
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
- const REQUEST_TIMEOUT_MS = 10000;
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
- interface NativeConfig {
42
- appKey?: string;
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?: string;
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
- cInfo: FlowCInfo;
71
- supportedDiffVersion: number;
42
+ os: string;
72
43
  bundleHash: string;
73
44
  }
74
45
 
75
- interface DecisionAttempt {
46
+ // 引擎的事件与命令(字段含义见 round_engine.h)。
47
+ interface RoundEvent {
76
48
  type?: string;
77
- urls?: string[];
78
- }
79
-
80
- interface DecisionInfoConfig {
81
- forceBoot?: boolean;
82
- }
83
-
84
- interface DecisionInfo {
85
- name?: string;
86
- description?: string;
87
- metaInfo?: string;
88
- // 服务端按版本下发的配置(forceBoot = 救砖指令)。
89
- config?: DecisionInfoConfig;
90
- // 写进 hash 信息:这个版本是被救援通道送进来的,JS 在 markSuccess 时据此
91
- // 上报 forceBootRescue 回执(与 Android/iOS 一致)。
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 Decision {
96
- action?: string;
97
- reason?: string;
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
- attempts?: DecisionAttempt[];
74
+ strategy?: string;
75
+ originHash?: string;
76
+ deadline?: number;
77
+ hashInfo?: string;
100
78
  activate?: boolean;
101
- info?: DecisionInfo;
79
+ cache?: string;
80
+ resetGeneration?: number;
81
+ status?: string;
82
+ reason?: string;
83
+ activated?: boolean;
102
84
  }
103
85
 
104
- interface RespCacheEntry {
105
- ts: number;
106
- body: string;
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
- const json = context.getKv(KEY_CONFIG);
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 configJson = context.getKv(KEY_CONFIG);
171
- if (!configJson) {
172
- return bundlePreparationResult('skipped', 'not_configured');
164
+ const read = readNativeConfig(context);
165
+ if (read.rejection !== undefined) {
166
+ return read.rejection;
173
167
  }
174
- try {
175
- const config = JSON.parse(configJson) as NativeConfig;
176
- if (!config || typeof config !== 'object' || Array.isArray(config)) {
177
- return bundlePreparationResult('failed', 'invalid_config');
178
- }
179
- if (config.disabled) {
180
- return bundlePreparationResult('skipped', 'disabled');
181
- }
182
- if (typeof config.appKey !== 'string' || !config.appKey) {
183
- return bundlePreparationResult('failed', 'invalid_config');
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
- } catch (e) {
186
- return bundlePreparationResult('failed', 'invalid_config');
183
+ result = settled;
187
184
  }
188
- const result = await startNativeRound(context, scheduledRollback);
185
+ // 与引擎的 HostCancellation 同一规则:三方 C1 等价且配置代数未变。
189
186
  if (roundConfigGeneration !== context.getNativeConfigGeneration()
190
- || configJson !== roundConfigJson || configJson !== context.getKv(KEY_CONFIG)) {
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 已用与原生完全相同的配置拿到有效响应(§10.3):延迟轮次就是一次重复请求。
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 = context.getNativeConfigGeneration();
250
+ roundConfigGeneration = configGeneration;
254
251
  roundResult = bundlePreparationResult('failed', 'check_failed');
255
252
  const configJson = context.getKv(KEY_CONFIG);
256
253
  roundConfigJson = configJson;
257
- if (!configJson) {
258
- // No persisted configuration: report the rollout gate to native callers.
259
- roundResult = bundlePreparationResult('skipped', 'not_configured');
260
- return;
261
- }
262
- let config: NativeConfig;
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
- config = JSON.parse(configJson) as NativeConfig;
265
- if (!config || typeof config !== 'object' || Array.isArray(config)) {
266
- roundResult = bundlePreparationResult('failed', 'invalid_config');
267
- return;
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
- try {
304
- await context.removeKv(KEY_ROUND_INCOMPLETE);
305
- } catch (e) {
306
- // 残留标记只意味着下次启动少等 5 秒。
307
- logger.warn(TAG, `cannot clear round marker: ${getErrorMessage(e)}`);
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
- // 配置端点全为 https 时,网络下发的端点列表/制品 URL 一律拒绝明文 http:
313
- // @ohos.net.http 内部跟随重定向且不暴露最终 URL,这是鸿蒙侧唯一能做的
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
- resetGeneration: number,
336
- configJson: string,
337
- config: NativeConfig,
338
- appKey: string,
339
- ): Promise<void> {
340
- const currentVersion = context.getCurrentVersion();
341
- // getConstants consumes the persisted rollback marker during startup; use
342
- // the launch-path snapshot captured before that happens.
343
- const rolledBackVersion = launchRolledBackVersion;
344
- const uuid = context.getKv('uuid') ?? '';
345
- const packageVersion = config.packageVersion || context.getPackageVersion();
346
-
347
- const identity: FlowIdentity = {
348
- packageVersion,
349
- currentVersion,
350
- uuid,
351
- };
352
- if (rolledBackVersion) {
353
- identity.rolledBackVersion = rolledBackVersion;
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
- const cInfo: FlowCInfo = {
357
- rnu: config.rnu ?? '',
358
- rn: config.rn ?? '',
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
- const body = NativePatchCore.buildRequestBody(JSON.stringify(input));
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
- // 与 JS 侧下载成功后的 setLocalHashInfo 对齐,持久化版本元信息。
448
- const info = decision.info;
449
- let hashInfoJson = '';
450
- if (info) {
451
- const hashInfo: DecisionInfo = {};
452
- if (typeof info.name === 'string') {
453
- hashInfo.name = info.name;
454
- }
455
- if (typeof info.description === 'string') {
456
- hashInfo.description = info.description;
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 (typeof info.metaInfo === 'string') {
459
- hashInfo.metaInfo = info.metaInfo;
385
+ if (strategy === 'pdiff') {
386
+ return context.downloadPatchFromPackage(url, hash, deadline);
460
387
  }
461
- // forceBoot 激活就是救砖路径:记进持久化元信息,这个版本活到 markSuccess
462
- // 时 JS 上报 forceBootRescue。只认服务端下发的指令——静默策略的激活是
463
- // 普通投递(Android/iOS 同一规则)。
464
- if (info.config && info.config.forceBoot) {
465
- hashInfo.forceBootRescue = true;
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
- hashInfoJson = JSON.stringify(hashInfo);
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
- // 版本元信息、激活与响应缓存一次性原子提交(见 commitSyncResult);
471
- // 缓存只在原生文件/状态工作结束后公开,避免 JS 观察到响应后并发下载。
472
- // 静默策略、或服务端按版本标记的 forceBoot(远程覆盖,救砖指令)才激活。
473
- const activate = decision.activate === true;
474
- let committed = false;
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
- hashInfoJson,
480
- activate,
481
- buildResponseCacheJson(configJson, body, responseText, responseAtSeconds),
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
- roundResult = bundlePreparationResult('failed', 'commit_failed');
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 buildResponseCacheJson(
501
- configJson: string,
502
- requestBody: string,
503
- responseText: string,
504
- responseAtSeconds: number,
505
- ): string {
506
- const cacheEntry: RespCacheEntry = {
507
- ts: responseAtSeconds,
508
- body: responseText,
509
- request: requestBody,
510
- config: configJson,
511
- };
512
- return JSON.stringify(cacheEntry);
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?: string,
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: REQUEST_TIMEOUT_MS,
544
- readTimeout: REQUEST_TIMEOUT_MS,
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 ${REQUEST_CALL_TIMEOUT_MS}ms`));
550
- }, REQUEST_CALL_TIMEOUT_MS);
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
- }