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
@@ -0,0 +1,430 @@
1
+ #include "install_record.h"
2
+
3
+ #include <cerrno>
4
+ #include <cstring>
5
+ #include <fcntl.h>
6
+ #include <sys/stat.h>
7
+ #include <unistd.h>
8
+ #include <utility>
9
+
10
+ #include "digest.h"
11
+ // Relative like every other cross-core include (see patch_manifest.cpp):
12
+ // use_frameworks! flattens the pod's headers.
13
+ #include "../update_flow_core/flow_json.h"
14
+
15
+ namespace pushy {
16
+ namespace install_record {
17
+ namespace {
18
+
19
+ // Written next to the record, then renamed over it. Its `.pushy-` prefix is
20
+ // reserved like the record's own name, so no archive can ship one.
21
+ constexpr const char* kTempSuffix = ".tmp";
22
+ // A record has five members; the cap only bounds a hostile file's tree.
23
+ constexpr size_t kMaxRecordNodes = 1024;
24
+
25
+ std::string JoinPath(const std::string& dir, const std::string& name) {
26
+ return dir + "/" + name;
27
+ }
28
+
29
+ std::string RecordPath(const std::string& dir) {
30
+ return JoinPath(dir, kFileName);
31
+ }
32
+
33
+ std::string ErrnoText() {
34
+ return std::strerror(errno);
35
+ }
36
+
37
+ bool IsRegularFile(const std::string& path) {
38
+ struct stat info;
39
+ return stat(path.c_str(), &info) == 0 && S_ISREG(info.st_mode);
40
+ }
41
+
42
+ // The record file's text and what it is. kPresent only when it parses as a
43
+ // JSON object; *text is filled for kPresent alone.
44
+ Record::State ReadRecordText(const std::string& dir, std::string* text) {
45
+ const std::string path = RecordPath(dir);
46
+ struct stat info;
47
+ if (stat(path.c_str(), &info) != 0) {
48
+ return errno == ENOENT || errno == ENOTDIR ? Record::State::kAbsent
49
+ : Record::State::kInvalid;
50
+ }
51
+ if (!S_ISREG(info.st_mode)) {
52
+ return Record::State::kInvalid;
53
+ }
54
+ if (info.st_size == 0) {
55
+ return Record::State::kLegacy;
56
+ }
57
+ if (info.st_size > kMaxRecordBytes) {
58
+ return Record::State::kInvalid;
59
+ }
60
+ // O_NONBLOCK: a FIFO swapped in after the stat must not hang the caller.
61
+ const int fd = open(path.c_str(), O_RDONLY | O_CLOEXEC | O_NONBLOCK);
62
+ if (fd < 0) {
63
+ return Record::State::kInvalid;
64
+ }
65
+ std::string content;
66
+ char buffer[4096];
67
+ bool failed = false;
68
+ for (;;) {
69
+ const ssize_t count = read(fd, buffer, sizeof(buffer));
70
+ if (count < 0) {
71
+ if (errno == EINTR) {
72
+ continue;
73
+ }
74
+ failed = true;
75
+ break;
76
+ }
77
+ if (count == 0) {
78
+ break;
79
+ }
80
+ content.append(buffer, static_cast<size_t>(count));
81
+ if (static_cast<long long>(content.size()) > kMaxRecordBytes) {
82
+ failed = true;
83
+ break;
84
+ }
85
+ }
86
+ close(fd);
87
+ if (failed) {
88
+ return Record::State::kInvalid;
89
+ }
90
+ // Truncated to zero between the stat and the read: still the legacy shape.
91
+ const Record record = Parse(content);
92
+ if (record.state == Record::State::kPresent) {
93
+ *text = std::move(content);
94
+ }
95
+ return record.state;
96
+ }
97
+
98
+ std::string StringMember(const flowjson::Value& object, const char* key) {
99
+ const flowjson::Value& value = object.Get(key);
100
+ return value.IsString() ? value.AsString() : std::string();
101
+ }
102
+
103
+ bool EqualsIgnoringAsciiCase(const std::string& a, const std::string& b) {
104
+ if (a.size() != b.size()) {
105
+ return false;
106
+ }
107
+ for (size_t i = 0; i < a.size(); i++) {
108
+ char x = a[i];
109
+ char y = b[i];
110
+ if (x >= 'A' && x <= 'Z') {
111
+ x = static_cast<char>(x - 'A' + 'a');
112
+ }
113
+ if (y >= 'A' && y <= 'Z') {
114
+ y = static_cast<char>(y - 'A' + 'a');
115
+ }
116
+ if (x != y) {
117
+ return false;
118
+ }
119
+ }
120
+ return true;
121
+ }
122
+
123
+ bool WriteAll(int fd, const std::string& data) {
124
+ size_t written = 0;
125
+ while (written < data.size()) {
126
+ const ssize_t count = write(fd, data.data() + written, data.size() - written);
127
+ if (count < 0) {
128
+ if (errno == EINTR) {
129
+ continue;
130
+ }
131
+ return false;
132
+ }
133
+ written += static_cast<size_t>(count);
134
+ }
135
+ return true;
136
+ }
137
+
138
+ // Makes a directory's entries durable (a rename or a new file only is once
139
+ // the directory itself is synced). Best-effort by design: some file systems
140
+ // refuse to open or fsync a directory, which must not fail an install whose
141
+ // files are already synced.
142
+ void SyncDirectory(const std::string& dir) {
143
+ const int fd = open(dir.c_str(), O_RDONLY | O_CLOEXEC | O_DIRECTORY);
144
+ if (fd < 0) {
145
+ return;
146
+ }
147
+ while (fsync(fd) != 0 && errno == EINTR) {
148
+ }
149
+ close(fd);
150
+ }
151
+
152
+ std::string ParentDirectory(const std::string& path) {
153
+ const size_t slash = path.find_last_of('/');
154
+ if (slash == std::string::npos) {
155
+ return ".";
156
+ }
157
+ return slash == 0 ? "/" : path.substr(0, slash);
158
+ }
159
+
160
+ Status Rejected(const std::string& version_hash, const char* reason) {
161
+ return Status::Error("Bundle version " + version_hash + " " + reason);
162
+ }
163
+
164
+ Status RecordMismatch(const std::string& version_hash) {
165
+ return Rejected(version_hash, "completion record mismatch.");
166
+ }
167
+
168
+ } // namespace
169
+
170
+ Record Parse(const std::string& text) {
171
+ Record record;
172
+ if (text.empty()) {
173
+ record.state = Record::State::kLegacy;
174
+ return record;
175
+ }
176
+ record.state = Record::State::kInvalid;
177
+ if (static_cast<long long>(text.size()) > kMaxRecordBytes) {
178
+ return record;
179
+ }
180
+ flowjson::ParseLimits limits;
181
+ limits.max_input_bytes = static_cast<size_t>(kMaxRecordBytes);
182
+ limits.max_nodes = kMaxRecordNodes;
183
+ bool ok = false;
184
+ const flowjson::Value object = flowjson::Parse(text, limits, &ok);
185
+ if (!ok || !object.IsObject()) {
186
+ return record;
187
+ }
188
+ record.state = Record::State::kPresent;
189
+ const flowjson::Value& schema = object.Get("schema");
190
+ record.current_schema =
191
+ schema.IsNumber() && schema.AsNumber() == static_cast<double>(kSchema);
192
+ record.version_hash = StringMember(object, "versionHash");
193
+ record.bundle_sha256 = StringMember(object, "bundleSha256");
194
+ record.artifact_sha256 = StringMember(object, "artifactSha256");
195
+ return record;
196
+ }
197
+
198
+ bool Names(const Record& record, const std::string& version_hash) {
199
+ return record.state == Record::State::kPresent && record.current_schema &&
200
+ !version_hash.empty() && record.version_hash == version_hash;
201
+ }
202
+
203
+ Record Read(const std::string& version_dir) {
204
+ std::string text;
205
+ const Record::State state = ReadRecordText(version_dir, &text);
206
+ if (state == Record::State::kPresent) {
207
+ return Parse(text);
208
+ }
209
+ Record record;
210
+ record.state = state;
211
+ return record;
212
+ }
213
+
214
+ bool HasRecordFile(const std::string& version_dir) {
215
+ struct stat info;
216
+ return stat(RecordPath(version_dir).c_str(), &info) == 0;
217
+ }
218
+
219
+ Status Build(const std::string& version_hash,
220
+ const std::string& bundle_sha256,
221
+ const std::string& artifact_sha256,
222
+ std::string* out) {
223
+ if (bundle_sha256.empty()) {
224
+ return Rejected(version_hash, "has no bundle digest.");
225
+ }
226
+ flowjson::Value record = flowjson::Value::Object();
227
+ record.Set("schema", flowjson::Value::Number(kSchema));
228
+ record.Set("versionHash", flowjson::Value::String(version_hash));
229
+ record.Set("bundleSha256", flowjson::Value::String(bundle_sha256));
230
+ if (!artifact_sha256.empty()) {
231
+ record.Set("artifactSha256", flowjson::Value::String(artifact_sha256));
232
+ }
233
+ *out = flowjson::Stringify(record);
234
+ return Status::Ok();
235
+ }
236
+
237
+ Status Write(const std::string& dir, const std::string& record_json) {
238
+ const std::string path = RecordPath(dir);
239
+ const std::string temp = path + kTempSuffix;
240
+ const int fd = open(temp.c_str(), O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, 0666);
241
+ if (fd < 0) {
242
+ return Status::Error("cannot create completion record " + temp + ": " +
243
+ ErrnoText());
244
+ }
245
+ bool ok = WriteAll(fd, record_json);
246
+ while (ok && fsync(fd) != 0) {
247
+ if (errno != EINTR) {
248
+ ok = false;
249
+ }
250
+ }
251
+ std::string error = ok ? std::string() : ErrnoText();
252
+ if (close(fd) != 0 && ok) {
253
+ ok = false;
254
+ error = ErrnoText();
255
+ }
256
+ if (!ok) {
257
+ unlink(temp.c_str());
258
+ return Status::Error("cannot write completion record " + temp + ": " + error);
259
+ }
260
+ if (rename(temp.c_str(), path.c_str()) != 0) {
261
+ error = ErrnoText();
262
+ unlink(temp.c_str());
263
+ return Status::Error("cannot place completion record " + path + ": " + error);
264
+ }
265
+ SyncDirectory(dir);
266
+ return Status::Ok();
267
+ }
268
+
269
+ SealResult Seal(const std::string& staging_dir,
270
+ const std::string& version_hash,
271
+ const std::string& bundle_file_name,
272
+ const std::string& artifact_sha256,
273
+ const std::string& known_bundle_sha256) {
274
+ SealResult result;
275
+ const std::string bundle = JoinPath(staging_dir, bundle_file_name);
276
+ if (!IsRegularFile(bundle)) {
277
+ result.status = Status::Error("bundle missing after install: " + bundle);
278
+ return result;
279
+ }
280
+ const std::string bundle_sha256 = known_bundle_sha256.empty()
281
+ ? digest::Sha256File(bundle)
282
+ : known_bundle_sha256;
283
+ std::string record;
284
+ result.status = Build(version_hash, bundle_sha256, artifact_sha256, &record);
285
+ if (!result.status.ok) {
286
+ return result;
287
+ }
288
+ result.status = Write(staging_dir, record);
289
+ result.file_failure = !result.status.ok;
290
+ return result;
291
+ }
292
+
293
+ Status Promote(const std::string& staging_dir, const std::string& version_dir) {
294
+ if (rename(staging_dir.c_str(), version_dir.c_str()) != 0) {
295
+ return Status::Error("cannot move " + staging_dir + " to " + version_dir +
296
+ ": " + ErrnoText());
297
+ }
298
+ SyncDirectory(ParentDirectory(version_dir));
299
+ return Status::Ok();
300
+ }
301
+
302
+ bool IsComplete(const std::string& version_dir,
303
+ const std::string& version_hash,
304
+ const std::string& bundle_file_name) {
305
+ if (!IsRegularFile(JoinPath(version_dir, bundle_file_name))) {
306
+ return false;
307
+ }
308
+ const Record record = Read(version_dir);
309
+ return record.state == Record::State::kLegacy || Names(record, version_hash);
310
+ }
311
+
312
+ std::string RecordedBundleSha256(const std::string& version_dir) {
313
+ return Read(version_dir).bundle_sha256;
314
+ }
315
+
316
+ bool FileStamp::operator==(const FileStamp& other) const {
317
+ return regular == other.regular && device == other.device &&
318
+ inode == other.inode && size == other.size &&
319
+ modified_sec == other.modified_sec &&
320
+ modified_nsec == other.modified_nsec &&
321
+ changed_sec == other.changed_sec && changed_nsec == other.changed_nsec;
322
+ }
323
+
324
+ FileStamp StampFile(const std::string& path) {
325
+ FileStamp stamp;
326
+ struct stat info;
327
+ if (stat(path.c_str(), &info) != 0 || !S_ISREG(info.st_mode)) {
328
+ return stamp;
329
+ }
330
+ stamp.regular = true;
331
+ stamp.device = static_cast<uint64_t>(info.st_dev);
332
+ stamp.inode = static_cast<uint64_t>(info.st_ino);
333
+ stamp.size = static_cast<int64_t>(info.st_size);
334
+ #if defined(__APPLE__)
335
+ stamp.modified_sec = info.st_mtimespec.tv_sec;
336
+ stamp.modified_nsec = info.st_mtimespec.tv_nsec;
337
+ stamp.changed_sec = info.st_ctimespec.tv_sec;
338
+ stamp.changed_nsec = info.st_ctimespec.tv_nsec;
339
+ #else
340
+ stamp.modified_sec = info.st_mtim.tv_sec;
341
+ stamp.modified_nsec = info.st_mtim.tv_nsec;
342
+ stamp.changed_sec = info.st_ctim.tv_sec;
343
+ stamp.changed_nsec = info.st_ctim.tv_nsec;
344
+ #endif
345
+ return stamp;
346
+ }
347
+
348
+ Status CheckActivation(const std::string& version_dir,
349
+ const std::string& version_hash,
350
+ const std::string& bundle_file_name,
351
+ bool grandfathered,
352
+ Activation* out) {
353
+ const std::string bundle = JoinPath(version_dir, bundle_file_name);
354
+ const FileStamp before = StampFile(bundle);
355
+ if (!before.regular) {
356
+ return Rejected(version_hash, "not found.");
357
+ }
358
+ std::string text;
359
+ const Record::State state = ReadRecordText(version_dir, &text);
360
+ // Versions activated before records existed are grandfathered through
361
+ // current/last state, but only while their directory has NO record file:
362
+ // a present record is verified like any other.
363
+ if (grandfathered && state == Record::State::kAbsent) {
364
+ out->basis = Activation::Basis::kGrandfathered;
365
+ out->record_text.clear();
366
+ out->bundle = before;
367
+ return Status::Ok();
368
+ }
369
+ // Any other directory without a record may be a crash-left partial
370
+ // install or something else put there.
371
+ if (state == Record::State::kAbsent) {
372
+ return Rejected(version_hash, "is incomplete.");
373
+ }
374
+ if (state == Record::State::kInvalid) {
375
+ return Rejected(version_hash, "has no valid completion record.");
376
+ }
377
+ if (state == Record::State::kLegacy) {
378
+ out->basis = Activation::Basis::kLegacyMarker;
379
+ out->record_text.clear();
380
+ out->bundle = before;
381
+ return Status::Ok();
382
+ }
383
+ const Record record = Parse(text);
384
+ if (!Names(record, version_hash)) {
385
+ return RecordMismatch(version_hash);
386
+ }
387
+ // Mandatory for schema 1: a record without it is never trusted.
388
+ if (record.bundle_sha256.empty()) {
389
+ return RecordMismatch(version_hash);
390
+ }
391
+ const std::string actual = digest::Sha256File(bundle);
392
+ if (actual.empty()) {
393
+ return Rejected(version_hash, "bundle could not be read.");
394
+ }
395
+ if (StampFile(bundle) != before) {
396
+ return Rejected(version_hash, "changed while being verified.");
397
+ }
398
+ if (!EqualsIgnoringAsciiCase(record.bundle_sha256, actual)) {
399
+ return Rejected(version_hash, "bundle digest mismatch.");
400
+ }
401
+ out->basis = Activation::Basis::kDigest;
402
+ out->record_text = text;
403
+ out->bundle = before;
404
+ return Status::Ok();
405
+ }
406
+
407
+ bool Unchanged(const std::string& version_dir,
408
+ const std::string& bundle_file_name,
409
+ bool grandfathered,
410
+ const Activation& passed) {
411
+ const FileStamp bundle = StampFile(JoinPath(version_dir, bundle_file_name));
412
+ if (!bundle.regular) {
413
+ return false;
414
+ }
415
+ std::string text;
416
+ const Record::State state = ReadRecordText(version_dir, &text);
417
+ switch (passed.basis) {
418
+ case Activation::Basis::kGrandfathered:
419
+ return state == Record::State::kAbsent && grandfathered;
420
+ case Activation::Basis::kLegacyMarker:
421
+ return state == Record::State::kLegacy && bundle == passed.bundle;
422
+ case Activation::Basis::kDigest:
423
+ return state == Record::State::kPresent && text == passed.record_text &&
424
+ bundle == passed.bundle;
425
+ }
426
+ return false;
427
+ }
428
+
429
+ } // namespace install_record
430
+ } // namespace pushy
@@ -1,6 +1,11 @@
1
1
  #ifndef PUSHY_PATCH_CORE_INSTALL_RECORD_H_
2
2
  #define PUSHY_PATCH_CORE_INSTALL_RECORD_H_
3
3
 
4
+ #include <cstdint>
5
+ #include <string>
6
+
7
+ #include "patch_core.h"
8
+
4
9
  // The completion record every platform writes into a version directory once
5
10
  // an install fully succeeded, and reads back before trusting that directory.
6
11
  //
@@ -9,19 +14,26 @@
9
14
  //
10
15
  // - Written by the SDK only (archives may not ship a `.pushy-*` entry), as
11
16
  // the LAST step of a two-phase install: unpack/patch into
12
- // <root>/<hash>.staging, write the record there, then atomically rename
17
+ // <root>/<hash>.staging, Seal() the record there, then Promote() renames
13
18
  // the staging directory to <root>/<hash>.
14
19
  // - versionHash must equal the directory name; bundleSha256 is the digest of
15
- // the final index.bundlejs (bundle.harmony.js on Harmony) and is
20
+ // the final bundle (index.bundlejs; bundle.harmony.js on Harmony) and is
16
21
  // re-verified at switchVersion time; artifactSha256 is the digest of the
17
- // downloaded archive (diagnostics / CDN corruption attribution).
18
- // - Legacy: an EMPTY file is a completed install written by SDK < 10.53
19
- // (no digests); it stays trusted for presence, nothing to verify.
22
+ // downloaded archive (diagnostics / CDN corruption attribution, optional).
23
+ // - bundleSha256 is MANDATORY for schema 1. A writer whose bundle digest is
24
+ // empty or fails must fail the install (staging dropped, no record); a
25
+ // verifier must reject a non-empty record without one (record mismatch),
26
+ // never activate the version unverified.
27
+ // - Legacy: an EMPTY (zero-byte) file is a completed install written by
28
+ // SDK < 10.53 (no digests); it stays trusted for presence, nothing to
29
+ // verify. Any other content must be a schema-1 record.
20
30
  //
21
- // Mirrors that cannot include this header MUST stay in sync by hand:
22
- // - android/.../InstallRecord.java
23
- // - harmony/pushy/src/main/ets/InstallRecord.ts
24
- // iOS (RCTPushy.mm) includes this header directly.
31
+ // This is the only implementation: Android (InstallRecord.java over JNI,
32
+ // cpp/android_jni/install_record_jni.cpp), iOS (RCTPushyInstallRecord.mm)
33
+ // and Harmony (InstallRecord.ts over NAPI, pushy.cpp) call it. The bundle
34
+ // file name is the caller's, since it differs per platform. The constants
35
+ // (and the staging suffix the hosts build their unpack directory from) are
36
+ // generated from scripts/contract.ts.
25
37
 
26
38
  // Keep the core internal to whichever binary links it (see podspec Core).
27
39
  #pragma GCC visibility push(hidden)
@@ -29,9 +41,153 @@
29
41
  namespace pushy {
30
42
  namespace install_record {
31
43
 
44
+ using delta::Status;
45
+
46
+ // <generated:constants> (scripts/contract.ts; bun scripts/generate-contract.ts)
32
47
  constexpr int kSchema = 1;
33
48
  constexpr const char* kFileName = ".pushy-complete";
49
+ // Every name starting with this prefix, at any depth of a version directory,
50
+ // belongs to the SDK (the record, its temp file): no archive may ship one
51
+ // (archive_limits::IsReservedEntryName).
52
+ constexpr const char* kReservedPrefix = ".pushy-";
34
53
  constexpr const char* kStagingSuffix = ".staging";
54
+ // A record is a few hundred bytes; anything larger is not one.
55
+ constexpr long long kMaxRecordBytes = 64 * 1024;
56
+ // </generated:constants>
57
+
58
+ // A record file's contents.
59
+ struct Record {
60
+ enum class State {
61
+ kAbsent, // no such entry
62
+ kInvalid, // not a readable regular file of at most kMaxRecordBytes, or
63
+ // not a JSON object
64
+ kLegacy, // the zero-byte marker of SDK < 10.53
65
+ kPresent, // a JSON object
66
+ };
67
+ State state = State::kAbsent;
68
+ // kPresent only. A member that is missing or of another JSON type reads
69
+ // as false / empty: records are written by this code alone, so nothing is
70
+ // coerced.
71
+ bool current_schema = false; // "schema" is the number kSchema
72
+ std::string version_hash;
73
+ std::string bundle_sha256;
74
+ std::string artifact_sha256;
75
+ };
76
+
77
+ // The text of a record file: "" is kLegacy, a JSON object kPresent,
78
+ // anything else (or more than kMaxRecordBytes) kInvalid.
79
+ Record Parse(const std::string& text);
80
+
81
+ // Whether a kPresent record is a schema-1 record naming this version.
82
+ bool Names(const Record& record, const std::string& version_hash);
83
+
84
+ // <version_dir>/.pushy-complete, parsed.
85
+ Record Read(const std::string& version_dir);
86
+
87
+ // Whether <version_dir>/.pushy-complete exists at all (of any type). Only a
88
+ // directory WITHOUT one may be grandfathered through current/last state.
89
+ bool HasRecordFile(const std::string& version_dir);
90
+
91
+ // The schema-1 record text. Fails when bundle_sha256 is empty: a version
92
+ // whose bundle could not be hashed must never be recorded as installed.
93
+ // artifact_sha256 is optional and omitted when empty.
94
+ Status Build(const std::string& version_hash,
95
+ const std::string& bundle_sha256,
96
+ const std::string& artifact_sha256,
97
+ std::string* out);
98
+
99
+ // Writes record_json as <dir>/.pushy-complete atomically and durably: a
100
+ // temporary sibling is written and fsynced, renamed over the record, and the
101
+ // directory is fsynced (best-effort: a file system that refuses a directory
102
+ // fsync does not fail the install).
103
+ Status Write(const std::string& dir, const std::string& record_json);
104
+
105
+ struct SealResult {
106
+ Status status = Status::Ok();
107
+ // The record could not be written (a file-system failure), as opposed to
108
+ // an install that produced no hashable bundle.
109
+ bool file_failure = false;
110
+ };
111
+
112
+ // The second phase's first half: hashes <staging_dir>/<bundle_file_name>
113
+ // (unless the caller already knows its digest, e.g. from extracting it),
114
+ // builds the record and writes it into the staging directory.
115
+ SealResult Seal(const std::string& staging_dir,
116
+ const std::string& version_hash,
117
+ const std::string& bundle_file_name,
118
+ const std::string& artifact_sha256,
119
+ const std::string& known_bundle_sha256);
120
+
121
+ // The second phase's second half: renames the sealed staging directory to
122
+ // version_dir (which the caller has removed if it existed) and fsyncs the
123
+ // parent directory (best-effort, as in Write).
124
+ Status Promote(const std::string& staging_dir, const std::string& version_dir);
125
+
126
+ // Launch / dedup presence check, no digest work: the bundle is a regular
127
+ // file and the record is the legacy marker or names this version (a
128
+ // digest-less schema-1 record is still "installed"; only activation refuses
129
+ // it).
130
+ bool IsComplete(const std::string& version_dir,
131
+ const std::string& version_hash,
132
+ const std::string& bundle_file_name);
133
+
134
+ // bundleSha256 of the version's record (crash attribution); "" when the
135
+ // record is absent, legacy, unreadable or has none.
136
+ std::string RecordedBundleSha256(const std::string& version_dir);
137
+
138
+ // Identity of a file's bytes on disk without reading them: a rewrite or an
139
+ // atomic replacement (new inode) changes it.
140
+ struct FileStamp {
141
+ bool regular = false;
142
+ uint64_t device = 0;
143
+ uint64_t inode = 0;
144
+ int64_t size = 0;
145
+ int64_t modified_sec = 0;
146
+ int64_t modified_nsec = 0;
147
+ int64_t changed_sec = 0;
148
+ int64_t changed_nsec = 0;
149
+
150
+ bool operator==(const FileStamp& other) const;
151
+ bool operator!=(const FileStamp& other) const { return !(*this == other); }
152
+ };
153
+
154
+ FileStamp StampFile(const std::string& path);
155
+
156
+ // What CheckActivation let through, for Unchanged.
157
+ struct Activation {
158
+ enum class Basis {
159
+ kGrandfathered, // no record file; the version is the current or last one
160
+ kLegacyMarker, // the zero-byte marker: nothing to verify
161
+ kDigest, // the record's bundleSha256 matched the bundle's bytes
162
+ };
163
+ Basis basis = Basis::kDigest;
164
+ std::string record_text; // the verified record's exact text
165
+ FileStamp bundle; // the bundle as it was hashed
166
+ };
167
+
168
+ // The switchVersion gate (slow: re-hashes the bundle; never call it on a UI
169
+ // thread or under a lock the UI thread takes). Passes when the bundle is a
170
+ // regular file and either
171
+ // - the directory has no record file and `grandfathered` (the version is
172
+ // the persisted current or last one: activated before records existed),
173
+ // - the record is the legacy marker, or
174
+ // - the record is a schema-1 record naming this version whose bundleSha256
175
+ // matches the bundle, which did not change while it was hashed.
176
+ // Otherwise fails with the reason ("Bundle version <hash> ..."), every
177
+ // platform's SWITCH_VERSION_FAILED message. *out is set only on success.
178
+ Status CheckActivation(const std::string& version_dir,
179
+ const std::string& version_hash,
180
+ const std::string& bundle_file_name,
181
+ bool grandfathered,
182
+ Activation* out);
183
+
184
+ // Cheap re-check (no hashing; e.g. under the state lock right before the
185
+ // switch is committed) that the directory still passes on the same basis:
186
+ // same grandfathering, same record text, same bundle file.
187
+ bool Unchanged(const std::string& version_dir,
188
+ const std::string& bundle_file_name,
189
+ bool grandfathered,
190
+ const Activation& passed);
35
191
 
36
192
  } // namespace install_record
37
193
  } // namespace pushy