rn-update 1.0.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 (880) hide show
  1. package/LICENSE +22 -0
  2. package/README-CN.md +97 -0
  3. package/README.md +97 -0
  4. package/THIRD_PARTY_NOTICES.md +8 -0
  5. package/android/build.gradle +253 -0
  6. package/android/jni/Android.mk +41 -0
  7. package/android/jni/Application.mk +20 -0
  8. package/android/jni/HDiffPatch/.travis.yml +33 -0
  9. package/android/jni/HDiffPatch/CHANGELOG.md +153 -0
  10. package/android/jni/HDiffPatch/LICENSE +48 -0
  11. package/android/jni/HDiffPatch/Makefile +157 -0
  12. package/android/jni/HDiffPatch/README.md +307 -0
  13. package/android/jni/HDiffPatch/_atosize.h +83 -0
  14. package/android/jni/HDiffPatch/_clock_for_demo.h +47 -0
  15. package/android/jni/HDiffPatch/_dir_ignore.h +191 -0
  16. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/Android.mk +37 -0
  17. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/Application.mk +7 -0
  18. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/build_libs.bat +1 -0
  19. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/build_libs.sh +1 -0
  20. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch.c +18 -0
  21. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch.h +20 -0
  22. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/hpatch_jni.c +28 -0
  23. package/android/jni/HDiffPatch/builds/android_ndk_jni_mk/java/com/github/sisong/HPatch.java +8 -0
  24. package/android/jni/HDiffPatch/builds/codeblocks/HDiffPatch.workspace +8 -0
  25. package/android/jni/HDiffPatch/builds/codeblocks/HDiffZ.cbp +219 -0
  26. package/android/jni/HDiffPatch/builds/codeblocks/HPatchZ.cbp +156 -0
  27. package/android/jni/HDiffPatch/builds/codeblocks/unitTest.cbp +65 -0
  28. package/android/jni/HDiffPatch/builds/vc/HDiffPatch.sln +105 -0
  29. package/android/jni/HDiffPatch/builds/vc/HDiffZ.vcxproj +237 -0
  30. package/android/jni/HDiffPatch/builds/vc/HDiffZ.vcxproj.user +3 -0
  31. package/android/jni/HDiffPatch/builds/vc/HPatchZ.vcxproj +318 -0
  32. package/android/jni/HDiffPatch/builds/vc/HPatchZ.vcxproj.user +3 -0
  33. package/android/jni/HDiffPatch/builds/vc/unitTest.vcxproj +182 -0
  34. package/android/jni/HDiffPatch/builds/vc/unitTest.vcxproj.user +3 -0
  35. package/android/jni/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/contents.xcworkspacedata +30 -0
  36. package/android/jni/HDiffPatch/builds/xcode/HDiffPatch.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  37. package/android/jni/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.pbxproj +408 -0
  38. package/android/jni/HDiffPatch/builds/xcode/bestParams.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  39. package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.pbxproj +573 -0
  40. package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  41. package/android/jni/HDiffPatch/builds/xcode/hdiffz.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  42. package/android/jni/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.pbxproj +396 -0
  43. package/android/jni/HDiffPatch/builds/xcode/hpatchz.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  44. package/android/jni/HDiffPatch/builds/xcode/lz4.xcodeproj/project.pbxproj +268 -0
  45. package/android/jni/HDiffPatch/builds/xcode/lz4.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  46. package/android/jni/HDiffPatch/builds/xcode/lzma.xcodeproj/project.pbxproj +361 -0
  47. package/android/jni/HDiffPatch/builds/xcode/lzma.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  48. package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.pbxproj +301 -0
  49. package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  50. package/android/jni/HDiffPatch/builds/xcode/testHashClash.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  51. package/android/jni/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.pbxproj +411 -0
  52. package/android/jni/HDiffPatch/builds/xcode/unitTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  53. package/android/jni/HDiffPatch/builds/xcode/zstd.xcodeproj/project.pbxproj +504 -0
  54. package/android/jni/HDiffPatch/builds/xcode/zstd.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  55. package/android/jni/HDiffPatch/checksum_plugin_demo.h +344 -0
  56. package/android/jni/HDiffPatch/compress_parallel.cpp +166 -0
  57. package/android/jni/HDiffPatch/compress_parallel.h +59 -0
  58. package/android/jni/HDiffPatch/compress_plugin_demo.h +1152 -0
  59. package/android/jni/HDiffPatch/decompress_plugin_demo.h +995 -0
  60. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.cpp +797 -0
  61. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff.h +65 -0
  62. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.cpp +200 -0
  63. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_diff_tools.h +178 -0
  64. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.cpp +357 -0
  65. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/dir_manifest.h +87 -0
  66. package/android/jni/HDiffPatch/dirDiffPatch/dir_diff/file_for_dirDiff.h +151 -0
  67. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.c +770 -0
  68. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch.h +236 -0
  69. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_private.h +47 -0
  70. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.c +112 -0
  71. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_tools.h +53 -0
  72. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/dir_patch_types.h +61 -0
  73. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.c +331 -0
  74. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_dir_output.h +144 -0
  75. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_stream.c +176 -0
  76. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/new_stream.h +84 -0
  77. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.c +146 -0
  78. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/ref_stream.h +61 -0
  79. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.c +152 -0
  80. package/android/jni/HDiffPatch/dirDiffPatch/dir_patch/res_handle_limit.h +76 -0
  81. package/android/jni/HDiffPatch/file_for_patch.c +524 -0
  82. package/android/jni/HDiffPatch/file_for_patch.h +259 -0
  83. package/android/jni/HDiffPatch/hdiffz.cpp +1570 -0
  84. package/android/jni/HDiffPatch/hpatch_dir_listener.h +290 -0
  85. package/android/jni/HDiffPatch/hpatchz.c +1221 -0
  86. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff.cpp +1025 -0
  87. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff.h +116 -0
  88. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/diff_types.h +72 -0
  89. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.cpp +213 -0
  90. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/bytes_rle.h +63 -0
  91. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.cpp +170 -0
  92. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/compress_detect.h +86 -0
  93. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/config.h +89 -0
  94. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c +13 -0
  95. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.c.inc.h +398 -0
  96. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort.h +194 -0
  97. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.c +13 -0
  98. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort64.h +204 -0
  99. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/divsufsort_private.h +207 -0
  100. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/sssort.c.inc.h +815 -0
  101. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/trsort.c.inc.h +586 -0
  102. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/libdivsufsort/utils.c.inc.h +381 -0
  103. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.c +352 -0
  104. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/adler_roll.h +137 -0
  105. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/bloom_filter.h +137 -0
  106. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/covers.h +70 -0
  107. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.cpp +628 -0
  108. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/digest_matcher.h +87 -0
  109. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.cpp +363 -0
  110. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/limit_mem_diff/stream_serialize.h +139 -0
  111. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/mem_buf.h +68 -0
  112. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/pack_uint.h +115 -0
  113. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.cpp +342 -0
  114. package/android/jni/HDiffPatch/libHDiffPatch/HDiff/private_diff/suffix_string.h +94 -0
  115. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/checksum_plugin.h +52 -0
  116. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch.c +2292 -0
  117. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch.h +215 -0
  118. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch_private.h +165 -0
  119. package/android/jni/HDiffPatch/libHDiffPatch/HPatch/patch_types.h +251 -0
  120. package/android/jni/HDiffPatch/libParallel/parallel_channel.cpp +174 -0
  121. package/android/jni/HDiffPatch/libParallel/parallel_channel.h +73 -0
  122. package/android/jni/HDiffPatch/libParallel/parallel_import.cpp +367 -0
  123. package/android/jni/HDiffPatch/libParallel/parallel_import.h +92 -0
  124. package/android/jni/hpatch.c +232 -0
  125. package/android/jni/hpatch.h +43 -0
  126. package/android/jni/lzma/Asm/arm/7zCrcOpt.asm +100 -0
  127. package/android/jni/lzma/Asm/x86/7zAsm.asm +147 -0
  128. package/android/jni/lzma/Asm/x86/7zCrcOpt.asm +147 -0
  129. package/android/jni/lzma/Asm/x86/AesOpt.asm +237 -0
  130. package/android/jni/lzma/Asm/x86/LzmaDecOpt.asm +1258 -0
  131. package/android/jni/lzma/Asm/x86/XzCrc64Opt.asm +205 -0
  132. package/android/jni/lzma/C/7z.h +202 -0
  133. package/android/jni/lzma/C/7zAlloc.c +80 -0
  134. package/android/jni/lzma/C/7zAlloc.h +19 -0
  135. package/android/jni/lzma/C/7zArcIn.c +1771 -0
  136. package/android/jni/lzma/C/7zBuf.c +36 -0
  137. package/android/jni/lzma/C/7zBuf.h +35 -0
  138. package/android/jni/lzma/C/7zBuf2.c +52 -0
  139. package/android/jni/lzma/C/7zCrc.c +128 -0
  140. package/android/jni/lzma/C/7zCrc.h +25 -0
  141. package/android/jni/lzma/C/7zCrcOpt.c +115 -0
  142. package/android/jni/lzma/C/7zDec.c +591 -0
  143. package/android/jni/lzma/C/7zFile.c +286 -0
  144. package/android/jni/lzma/C/7zFile.h +83 -0
  145. package/android/jni/lzma/C/7zStream.c +176 -0
  146. package/android/jni/lzma/C/7zTypes.h +375 -0
  147. package/android/jni/lzma/C/7zVersion.h +27 -0
  148. package/android/jni/lzma/C/7zVersion.rc +55 -0
  149. package/android/jni/lzma/C/Aes.c +306 -0
  150. package/android/jni/lzma/C/Aes.h +38 -0
  151. package/android/jni/lzma/C/AesOpt.c +184 -0
  152. package/android/jni/lzma/C/Alloc.c +455 -0
  153. package/android/jni/lzma/C/Alloc.h +51 -0
  154. package/android/jni/lzma/C/Bcj2.c +257 -0
  155. package/android/jni/lzma/C/Bcj2.h +146 -0
  156. package/android/jni/lzma/C/Bcj2Enc.c +311 -0
  157. package/android/jni/lzma/C/Bra.c +230 -0
  158. package/android/jni/lzma/C/Bra.h +64 -0
  159. package/android/jni/lzma/C/Bra86.c +82 -0
  160. package/android/jni/lzma/C/BraIA64.c +53 -0
  161. package/android/jni/lzma/C/Compiler.h +33 -0
  162. package/android/jni/lzma/C/CpuArch.c +218 -0
  163. package/android/jni/lzma/C/CpuArch.h +336 -0
  164. package/android/jni/lzma/C/Delta.c +64 -0
  165. package/android/jni/lzma/C/Delta.h +19 -0
  166. package/android/jni/lzma/C/DllSecur.c +108 -0
  167. package/android/jni/lzma/C/DllSecur.h +20 -0
  168. package/android/jni/lzma/C/LzFind.c +1127 -0
  169. package/android/jni/lzma/C/LzFind.h +121 -0
  170. package/android/jni/lzma/C/LzFindMt.c +853 -0
  171. package/android/jni/lzma/C/LzFindMt.h +101 -0
  172. package/android/jni/lzma/C/LzHash.h +57 -0
  173. package/android/jni/lzma/C/Lzma2Dec.c +488 -0
  174. package/android/jni/lzma/C/Lzma2Dec.h +120 -0
  175. package/android/jni/lzma/C/Lzma2DecMt.c +1082 -0
  176. package/android/jni/lzma/C/Lzma2DecMt.h +79 -0
  177. package/android/jni/lzma/C/Lzma2Enc.c +803 -0
  178. package/android/jni/lzma/C/Lzma2Enc.h +55 -0
  179. package/android/jni/lzma/C/Lzma86.h +111 -0
  180. package/android/jni/lzma/C/Lzma86Dec.c +54 -0
  181. package/android/jni/lzma/C/Lzma86Enc.c +106 -0
  182. package/android/jni/lzma/C/LzmaDec.c +1185 -0
  183. package/android/jni/lzma/C/LzmaDec.h +234 -0
  184. package/android/jni/lzma/C/LzmaEnc.c +2976 -0
  185. package/android/jni/lzma/C/LzmaEnc.h +76 -0
  186. package/android/jni/lzma/C/LzmaLib.c +40 -0
  187. package/android/jni/lzma/C/LzmaLib.h +131 -0
  188. package/android/jni/lzma/C/MtCoder.c +601 -0
  189. package/android/jni/lzma/C/MtCoder.h +141 -0
  190. package/android/jni/lzma/C/MtDec.c +1138 -0
  191. package/android/jni/lzma/C/MtDec.h +201 -0
  192. package/android/jni/lzma/C/Ppmd.h +85 -0
  193. package/android/jni/lzma/C/Ppmd7.c +712 -0
  194. package/android/jni/lzma/C/Ppmd7.h +142 -0
  195. package/android/jni/lzma/C/Ppmd7Dec.c +191 -0
  196. package/android/jni/lzma/C/Ppmd7Enc.c +187 -0
  197. package/android/jni/lzma/C/Precomp.h +10 -0
  198. package/android/jni/lzma/C/RotateDefs.h +30 -0
  199. package/android/jni/lzma/C/Sha256.c +248 -0
  200. package/android/jni/lzma/C/Sha256.h +26 -0
  201. package/android/jni/lzma/C/Sort.c +141 -0
  202. package/android/jni/lzma/C/Sort.h +18 -0
  203. package/android/jni/lzma/C/Threads.c +95 -0
  204. package/android/jni/lzma/C/Threads.h +70 -0
  205. package/android/jni/lzma/C/ThreadsP.c +396 -0
  206. package/android/jni/lzma/C/ThreadsP.h +31 -0
  207. package/android/jni/lzma/C/Util/7z/7z.dsp +241 -0
  208. package/android/jni/lzma/C/Util/7z/7z.dsw +29 -0
  209. package/android/jni/lzma/C/Util/7z/7zMain.c +686 -0
  210. package/android/jni/lzma/C/Util/7z/Precomp.c +4 -0
  211. package/android/jni/lzma/C/Util/7z/Precomp.h +10 -0
  212. package/android/jni/lzma/C/Util/7z/makefile +40 -0
  213. package/android/jni/lzma/C/Util/7z/makefile.gcc +75 -0
  214. package/android/jni/lzma/C/Util/Lzma/LzmaUtil.c +258 -0
  215. package/android/jni/lzma/C/Util/Lzma/LzmaUtil.dsp +168 -0
  216. package/android/jni/lzma/C/Util/Lzma/LzmaUtil.dsw +29 -0
  217. package/android/jni/lzma/C/Util/Lzma/makefile +28 -0
  218. package/android/jni/lzma/C/Util/Lzma/makefile.gcc +44 -0
  219. package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.def +4 -0
  220. package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.dsp +178 -0
  221. package/android/jni/lzma/C/Util/LzmaLib/LzmaLib.dsw +29 -0
  222. package/android/jni/lzma/C/Util/LzmaLib/LzmaLibExports.c +14 -0
  223. package/android/jni/lzma/C/Util/LzmaLib/makefile +34 -0
  224. package/android/jni/lzma/C/Util/LzmaLib/resource.rc +3 -0
  225. package/android/jni/lzma/C/Util/SfxSetup/Precomp.c +4 -0
  226. package/android/jni/lzma/C/Util/SfxSetup/Precomp.h +10 -0
  227. package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.c +640 -0
  228. package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.dsp +231 -0
  229. package/android/jni/lzma/C/Util/SfxSetup/SfxSetup.dsw +29 -0
  230. package/android/jni/lzma/C/Util/SfxSetup/makefile +37 -0
  231. package/android/jni/lzma/C/Util/SfxSetup/makefile_con +38 -0
  232. package/android/jni/lzma/C/Util/SfxSetup/resource.rc +5 -0
  233. package/android/jni/lzma/C/Util/SfxSetup/setup.ico +0 -0
  234. package/android/jni/lzma/C/Xz.c +90 -0
  235. package/android/jni/lzma/C/Xz.h +460 -0
  236. package/android/jni/lzma/C/XzCrc64.c +86 -0
  237. package/android/jni/lzma/C/XzCrc64.h +26 -0
  238. package/android/jni/lzma/C/XzCrc64Opt.c +69 -0
  239. package/android/jni/lzma/C/XzDec.c +2766 -0
  240. package/android/jni/lzma/C/XzEnc.c +1329 -0
  241. package/android/jni/lzma/C/XzEnc.h +60 -0
  242. package/android/jni/lzma/C/XzIn.c +319 -0
  243. package/android/jni/lzma/CPP/7zip/7zip.mak +240 -0
  244. package/android/jni/lzma/CPP/7zip/Aes.mak +7 -0
  245. package/android/jni/lzma/CPP/7zip/Archive/7z/7zCompressionMode.cpp +3 -0
  246. package/android/jni/lzma/CPP/7zip/Archive/7z/7zCompressionMode.h +76 -0
  247. package/android/jni/lzma/CPP/7zip/Archive/7z/7zDecode.cpp +569 -0
  248. package/android/jni/lzma/CPP/7zip/Archive/7z/7zDecode.h +70 -0
  249. package/android/jni/lzma/CPP/7zip/Archive/7z/7zEncode.cpp +678 -0
  250. package/android/jni/lzma/CPP/7zip/Archive/7z/7zEncode.h +92 -0
  251. package/android/jni/lzma/CPP/7zip/Archive/7z/7zExtract.cpp +423 -0
  252. package/android/jni/lzma/CPP/7zip/Archive/7z/7zFolderInStream.cpp +139 -0
  253. package/android/jni/lzma/CPP/7zip/Archive/7z/7zFolderInStream.h +61 -0
  254. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandler.cpp +763 -0
  255. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandler.h +181 -0
  256. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHandlerOut.cpp +942 -0
  257. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHeader.cpp +19 -0
  258. package/android/jni/lzma/CPP/7zip/Archive/7z/7zHeader.h +148 -0
  259. package/android/jni/lzma/CPP/7zip/Archive/7z/7zIn.cpp +1666 -0
  260. package/android/jni/lzma/CPP/7zip/Archive/7z/7zIn.h +445 -0
  261. package/android/jni/lzma/CPP/7zip/Archive/7z/7zItem.h +202 -0
  262. package/android/jni/lzma/CPP/7zip/Archive/7z/7zOut.cpp +901 -0
  263. package/android/jni/lzma/CPP/7zip/Archive/7z/7zOut.h +335 -0
  264. package/android/jni/lzma/CPP/7zip/Archive/7z/7zProperties.cpp +174 -0
  265. package/android/jni/lzma/CPP/7zip/Archive/7z/7zProperties.h +22 -0
  266. package/android/jni/lzma/CPP/7zip/Archive/7z/7zRegister.cpp +21 -0
  267. package/android/jni/lzma/CPP/7zip/Archive/7z/7zSpecStream.cpp +22 -0
  268. package/android/jni/lzma/CPP/7zip/Archive/7z/7zSpecStream.h +35 -0
  269. package/android/jni/lzma/CPP/7zip/Archive/7z/7zUpdate.cpp +2500 -0
  270. package/android/jni/lzma/CPP/7zip/Archive/7z/7zUpdate.h +139 -0
  271. package/android/jni/lzma/CPP/7zip/Archive/7z/StdAfx.cpp +3 -0
  272. package/android/jni/lzma/CPP/7zip/Archive/7z/StdAfx.h +8 -0
  273. package/android/jni/lzma/CPP/7zip/Archive/Archive.def +12 -0
  274. package/android/jni/lzma/CPP/7zip/Archive/Archive2.def +19 -0
  275. package/android/jni/lzma/CPP/7zip/Archive/ArchiveExports.cpp +151 -0
  276. package/android/jni/lzma/CPP/7zip/Archive/Common/CoderMixer2.cpp +1125 -0
  277. package/android/jni/lzma/CPP/7zip/Archive/Common/CoderMixer2.h +447 -0
  278. package/android/jni/lzma/CPP/7zip/Archive/Common/DummyOutStream.cpp +17 -0
  279. package/android/jni/lzma/CPP/7zip/Archive/Common/DummyOutStream.h +25 -0
  280. package/android/jni/lzma/CPP/7zip/Archive/Common/HandlerOut.cpp +232 -0
  281. package/android/jni/lzma/CPP/7zip/Archive/Common/HandlerOut.h +110 -0
  282. package/android/jni/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.cpp +46 -0
  283. package/android/jni/lzma/CPP/7zip/Archive/Common/InStreamWithCRC.h +67 -0
  284. package/android/jni/lzma/CPP/7zip/Archive/Common/ItemNameUtils.cpp +88 -0
  285. package/android/jni/lzma/CPP/7zip/Archive/Common/ItemNameUtils.h +28 -0
  286. package/android/jni/lzma/CPP/7zip/Archive/Common/MultiStream.cpp +191 -0
  287. package/android/jni/lzma/CPP/7zip/Archive/Common/MultiStream.h +89 -0
  288. package/android/jni/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.cpp +18 -0
  289. package/android/jni/lzma/CPP/7zip/Archive/Common/OutStreamWithCRC.h +37 -0
  290. package/android/jni/lzma/CPP/7zip/Archive/Common/ParseProperties.cpp +3 -0
  291. package/android/jni/lzma/CPP/7zip/Archive/Common/ParseProperties.h +6 -0
  292. package/android/jni/lzma/CPP/7zip/Archive/Common/StdAfx.h +8 -0
  293. package/android/jni/lzma/CPP/7zip/Archive/DllExports2.cpp +122 -0
  294. package/android/jni/lzma/CPP/7zip/Archive/IArchive.h +608 -0
  295. package/android/jni/lzma/CPP/7zip/Archive/Icons/7z.ico +0 -0
  296. package/android/jni/lzma/CPP/7zip/Archive/LzmaHandler.cpp +629 -0
  297. package/android/jni/lzma/CPP/7zip/Archive/SplitHandler.cpp +359 -0
  298. package/android/jni/lzma/CPP/7zip/Archive/StdAfx.h +8 -0
  299. package/android/jni/lzma/CPP/7zip/Archive/XzHandler.cpp +1308 -0
  300. package/android/jni/lzma/CPP/7zip/Archive/XzHandler.h +11 -0
  301. package/android/jni/lzma/CPP/7zip/Asm.mak +9 -0
  302. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsp +1910 -0
  303. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/Alone.dsw +29 -0
  304. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.cpp +3 -0
  305. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/StdAfx.h +8 -0
  306. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/makefile +154 -0
  307. package/android/jni/lzma/CPP/7zip/Bundles/Alone7z/resource.rc +7 -0
  308. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.cpp +3 -0
  309. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/StdAfx.h +8 -0
  310. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/makefile +96 -0
  311. package/android/jni/lzma/CPP/7zip/Bundles/Format7zExtractR/resource.rc +5 -0
  312. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.cpp +3 -0
  313. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/StdAfx.h +8 -0
  314. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/makefile +116 -0
  315. package/android/jni/lzma/CPP/7zip/Bundles/Format7zR/resource.rc +5 -0
  316. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaAlone.cpp +799 -0
  317. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsp +477 -0
  318. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/LzmaCon.dsw +29 -0
  319. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.cpp +3 -0
  320. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/StdAfx.h +8 -0
  321. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/makefile +59 -0
  322. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/makefile.gcc +195 -0
  323. package/android/jni/lzma/CPP/7zip/Bundles/LzmaCon/resource.rc +3 -0
  324. package/android/jni/lzma/CPP/7zip/Bundles/LzmaSpec/LzmaSpec.cpp +715 -0
  325. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/7z.ico +0 -0
  326. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsp +912 -0
  327. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SFXCon.dsw +29 -0
  328. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/SfxCon.cpp +482 -0
  329. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.cpp +3 -0
  330. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/StdAfx.h +8 -0
  331. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/makefile +134 -0
  332. package/android/jni/lzma/CPP/7zip/Bundles/SFXCon/resource.rc +5 -0
  333. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.cpp +246 -0
  334. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractCallbackSfx.h +86 -0
  335. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.cpp +137 -0
  336. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/ExtractEngine.h +11 -0
  337. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsp +803 -0
  338. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SFXSetup.dsw +29 -0
  339. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/SfxSetup.cpp +364 -0
  340. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.cpp +3 -0
  341. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/StdAfx.h +13 -0
  342. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/makefile +117 -0
  343. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/resource.h +6 -0
  344. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/resource.rc +16 -0
  345. package/android/jni/lzma/CPP/7zip/Bundles/SFXSetup/setup.ico +0 -0
  346. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/7z.ico +0 -0
  347. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsp +988 -0
  348. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SFXWin.dsw +29 -0
  349. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/SfxWin.cpp +241 -0
  350. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.cpp +3 -0
  351. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/StdAfx.h +14 -0
  352. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/makefile +153 -0
  353. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/resource.h +1 -0
  354. package/android/jni/lzma/CPP/7zip/Bundles/SFXWin/resource.rc +50 -0
  355. package/android/jni/lzma/CPP/7zip/Common/CWrappers.cpp +250 -0
  356. package/android/jni/lzma/CPP/7zip/Common/CWrappers.h +120 -0
  357. package/android/jni/lzma/CPP/7zip/Common/CreateCoder.cpp +536 -0
  358. package/android/jni/lzma/CPP/7zip/Common/CreateCoder.h +192 -0
  359. package/android/jni/lzma/CPP/7zip/Common/FilePathAutoRename.cpp +46 -0
  360. package/android/jni/lzma/CPP/7zip/Common/FilePathAutoRename.h +10 -0
  361. package/android/jni/lzma/CPP/7zip/Common/FileStreams.cpp +475 -0
  362. package/android/jni/lzma/CPP/7zip/Common/FileStreams.h +166 -0
  363. package/android/jni/lzma/CPP/7zip/Common/FilterCoder.cpp +435 -0
  364. package/android/jni/lzma/CPP/7zip/Common/FilterCoder.h +205 -0
  365. package/android/jni/lzma/CPP/7zip/Common/InBuffer.cpp +163 -0
  366. package/android/jni/lzma/CPP/7zip/Common/InBuffer.h +92 -0
  367. package/android/jni/lzma/CPP/7zip/Common/InOutTempBuffer.cpp +127 -0
  368. package/android/jni/lzma/CPP/7zip/Common/InOutTempBuffer.h +48 -0
  369. package/android/jni/lzma/CPP/7zip/Common/LimitedStreams.cpp +367 -0
  370. package/android/jni/lzma/CPP/7zip/Common/LimitedStreams.h +252 -0
  371. package/android/jni/lzma/CPP/7zip/Common/LockedStream.cpp +3 -0
  372. package/android/jni/lzma/CPP/7zip/Common/LockedStream.h +6 -0
  373. package/android/jni/lzma/CPP/7zip/Common/MethodId.cpp +3 -0
  374. package/android/jni/lzma/CPP/7zip/Common/MethodId.h +10 -0
  375. package/android/jni/lzma/CPP/7zip/Common/MethodProps.cpp +509 -0
  376. package/android/jni/lzma/CPP/7zip/Common/MethodProps.h +264 -0
  377. package/android/jni/lzma/CPP/7zip/Common/OffsetStream.cpp +39 -0
  378. package/android/jni/lzma/CPP/7zip/Common/OffsetStream.h +26 -0
  379. package/android/jni/lzma/CPP/7zip/Common/OutBuffer.cpp +111 -0
  380. package/android/jni/lzma/CPP/7zip/Common/OutBuffer.h +66 -0
  381. package/android/jni/lzma/CPP/7zip/Common/ProgressUtils.cpp +51 -0
  382. package/android/jni/lzma/CPP/7zip/Common/ProgressUtils.h +35 -0
  383. package/android/jni/lzma/CPP/7zip/Common/PropId.cpp +108 -0
  384. package/android/jni/lzma/CPP/7zip/Common/RegisterArc.h +78 -0
  385. package/android/jni/lzma/CPP/7zip/Common/RegisterCodec.h +106 -0
  386. package/android/jni/lzma/CPP/7zip/Common/StdAfx.h +8 -0
  387. package/android/jni/lzma/CPP/7zip/Common/StreamBinder.cpp +156 -0
  388. package/android/jni/lzma/CPP/7zip/Common/StreamBinder.h +60 -0
  389. package/android/jni/lzma/CPP/7zip/Common/StreamObjects.cpp +285 -0
  390. package/android/jni/lzma/CPP/7zip/Common/StreamObjects.h +157 -0
  391. package/android/jni/lzma/CPP/7zip/Common/StreamUtils.cpp +56 -0
  392. package/android/jni/lzma/CPP/7zip/Common/StreamUtils.h +13 -0
  393. package/android/jni/lzma/CPP/7zip/Common/UniqBlocks.cpp +57 -0
  394. package/android/jni/lzma/CPP/7zip/Common/UniqBlocks.h +26 -0
  395. package/android/jni/lzma/CPP/7zip/Common/VirtThread.cpp +48 -0
  396. package/android/jni/lzma/CPP/7zip/Common/VirtThread.h +24 -0
  397. package/android/jni/lzma/CPP/7zip/Compress/Bcj2Coder.cpp +666 -0
  398. package/android/jni/lzma/CPP/7zip/Compress/Bcj2Coder.h +120 -0
  399. package/android/jni/lzma/CPP/7zip/Compress/Bcj2Register.cpp +24 -0
  400. package/android/jni/lzma/CPP/7zip/Compress/BcjCoder.cpp +24 -0
  401. package/android/jni/lzma/CPP/7zip/Compress/BcjCoder.h +31 -0
  402. package/android/jni/lzma/CPP/7zip/Compress/BcjRegister.cpp +17 -0
  403. package/android/jni/lzma/CPP/7zip/Compress/BranchMisc.cpp +23 -0
  404. package/android/jni/lzma/CPP/7zip/Compress/BranchMisc.h +35 -0
  405. package/android/jni/lzma/CPP/7zip/Compress/BranchRegister.cpp +41 -0
  406. package/android/jni/lzma/CPP/7zip/Compress/ByteSwap.cpp +92 -0
  407. package/android/jni/lzma/CPP/7zip/Compress/CodecExports.cpp +344 -0
  408. package/android/jni/lzma/CPP/7zip/Compress/CopyCoder.cpp +120 -0
  409. package/android/jni/lzma/CPP/7zip/Compress/CopyCoder.h +49 -0
  410. package/android/jni/lzma/CPP/7zip/Compress/CopyRegister.cpp +15 -0
  411. package/android/jni/lzma/CPP/7zip/Compress/DeltaFilter.cpp +128 -0
  412. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Decoder.cpp +265 -0
  413. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Decoder.h +96 -0
  414. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Encoder.cpp +122 -0
  415. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Encoder.h +42 -0
  416. package/android/jni/lzma/CPP/7zip/Compress/Lzma2Register.cpp +22 -0
  417. package/android/jni/lzma/CPP/7zip/Compress/LzmaDecoder.cpp +343 -0
  418. package/android/jni/lzma/CPP/7zip/Compress/LzmaDecoder.h +113 -0
  419. package/android/jni/lzma/CPP/7zip/Compress/LzmaEncoder.cpp +182 -0
  420. package/android/jni/lzma/CPP/7zip/Compress/LzmaEncoder.h +46 -0
  421. package/android/jni/lzma/CPP/7zip/Compress/LzmaRegister.cpp +22 -0
  422. package/android/jni/lzma/CPP/7zip/Compress/PpmdDecoder.cpp +170 -0
  423. package/android/jni/lzma/CPP/7zip/Compress/PpmdDecoder.h +86 -0
  424. package/android/jni/lzma/CPP/7zip/Compress/PpmdEncoder.cpp +152 -0
  425. package/android/jni/lzma/CPP/7zip/Compress/PpmdEncoder.h +58 -0
  426. package/android/jni/lzma/CPP/7zip/Compress/PpmdRegister.cpp +22 -0
  427. package/android/jni/lzma/CPP/7zip/Compress/StdAfx.h +8 -0
  428. package/android/jni/lzma/CPP/7zip/Compress/XzDecoder.cpp +150 -0
  429. package/android/jni/lzma/CPP/7zip/Compress/XzDecoder.h +92 -0
  430. package/android/jni/lzma/CPP/7zip/Compress/XzEncoder.cpp +245 -0
  431. package/android/jni/lzma/CPP/7zip/Compress/XzEncoder.h +46 -0
  432. package/android/jni/lzma/CPP/7zip/Crc.mak +8 -0
  433. package/android/jni/lzma/CPP/7zip/Crc64.mak +8 -0
  434. package/android/jni/lzma/CPP/7zip/Crypto/7zAes.cpp +280 -0
  435. package/android/jni/lzma/CPP/7zip/Crypto/7zAes.h +118 -0
  436. package/android/jni/lzma/CPP/7zip/Crypto/7zAesRegister.cpp +17 -0
  437. package/android/jni/lzma/CPP/7zip/Crypto/MyAes.cpp +112 -0
  438. package/android/jni/lzma/CPP/7zip/Crypto/MyAes.h +57 -0
  439. package/android/jni/lzma/CPP/7zip/Crypto/MyAesReg.cpp +16 -0
  440. package/android/jni/lzma/CPP/7zip/Crypto/RandGen.cpp +233 -0
  441. package/android/jni/lzma/CPP/7zip/Crypto/RandGen.h +40 -0
  442. package/android/jni/lzma/CPP/7zip/Crypto/StdAfx.h +8 -0
  443. package/android/jni/lzma/CPP/7zip/GuiCommon.rc +84 -0
  444. package/android/jni/lzma/CPP/7zip/Guid.txt +220 -0
  445. package/android/jni/lzma/CPP/7zip/ICoder.h +399 -0
  446. package/android/jni/lzma/CPP/7zip/IDecl.h +28 -0
  447. package/android/jni/lzma/CPP/7zip/IPassword.h +23 -0
  448. package/android/jni/lzma/CPP/7zip/IProgress.h +19 -0
  449. package/android/jni/lzma/CPP/7zip/IStream.h +127 -0
  450. package/android/jni/lzma/CPP/7zip/LzmaDec.mak +5 -0
  451. package/android/jni/lzma/CPP/7zip/MyVersion.h +2 -0
  452. package/android/jni/lzma/CPP/7zip/MyVersionInfo.rc +2 -0
  453. package/android/jni/lzma/CPP/7zip/PropID.h +127 -0
  454. package/android/jni/lzma/CPP/7zip/SubBuild.mak +3 -0
  455. package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.cpp +993 -0
  456. package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.dsp +235 -0
  457. package/android/jni/lzma/CPP/7zip/UI/Client7z/Client7z.dsw +29 -0
  458. package/android/jni/lzma/CPP/7zip/UI/Client7z/StdAfx.cpp +3 -0
  459. package/android/jni/lzma/CPP/7zip/UI/Client7z/StdAfx.h +8 -0
  460. package/android/jni/lzma/CPP/7zip/UI/Client7z/makefile +28 -0
  461. package/android/jni/lzma/CPP/7zip/UI/Client7z/resource.rc +3 -0
  462. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.cpp +1295 -0
  463. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveCommandLine.h +136 -0
  464. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.cpp +1715 -0
  465. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveExtractCallback.h +403 -0
  466. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveName.cpp +155 -0
  467. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveName.h +10 -0
  468. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.cpp +161 -0
  469. package/android/jni/lzma/CPP/7zip/UI/Common/ArchiveOpenCallback.h +112 -0
  470. package/android/jni/lzma/CPP/7zip/UI/Common/Bench.cpp +3618 -0
  471. package/android/jni/lzma/CPP/7zip/UI/Common/Bench.h +77 -0
  472. package/android/jni/lzma/CPP/7zip/UI/Common/DefaultName.cpp +37 -0
  473. package/android/jni/lzma/CPP/7zip/UI/Common/DefaultName.h +11 -0
  474. package/android/jni/lzma/CPP/7zip/UI/Common/DirItem.h +190 -0
  475. package/android/jni/lzma/CPP/7zip/UI/Common/EnumDirItems.cpp +1096 -0
  476. package/android/jni/lzma/CPP/7zip/UI/Common/EnumDirItems.h +42 -0
  477. package/android/jni/lzma/CPP/7zip/UI/Common/ExitCode.h +27 -0
  478. package/android/jni/lzma/CPP/7zip/UI/Common/Extract.cpp +482 -0
  479. package/android/jni/lzma/CPP/7zip/UI/Common/Extract.h +94 -0
  480. package/android/jni/lzma/CPP/7zip/UI/Common/ExtractMode.h +34 -0
  481. package/android/jni/lzma/CPP/7zip/UI/Common/ExtractingFilePath.cpp +280 -0
  482. package/android/jni/lzma/CPP/7zip/UI/Common/ExtractingFilePath.h +31 -0
  483. package/android/jni/lzma/CPP/7zip/UI/Common/HashCalc.cpp +347 -0
  484. package/android/jni/lzma/CPP/7zip/UI/Common/HashCalc.h +110 -0
  485. package/android/jni/lzma/CPP/7zip/UI/Common/IFileExtractCallback.h +114 -0
  486. package/android/jni/lzma/CPP/7zip/UI/Common/LoadCodecs.cpp +1074 -0
  487. package/android/jni/lzma/CPP/7zip/UI/Common/LoadCodecs.h +424 -0
  488. package/android/jni/lzma/CPP/7zip/UI/Common/OpenArchive.cpp +3553 -0
  489. package/android/jni/lzma/CPP/7zip/UI/Common/OpenArchive.h +436 -0
  490. package/android/jni/lzma/CPP/7zip/UI/Common/PropIDUtils.cpp +668 -0
  491. package/android/jni/lzma/CPP/7zip/UI/Common/PropIDUtils.h +18 -0
  492. package/android/jni/lzma/CPP/7zip/UI/Common/Property.h +14 -0
  493. package/android/jni/lzma/CPP/7zip/UI/Common/SetProperties.cpp +80 -0
  494. package/android/jni/lzma/CPP/7zip/UI/Common/SetProperties.h +10 -0
  495. package/android/jni/lzma/CPP/7zip/UI/Common/SortUtils.cpp +25 -0
  496. package/android/jni/lzma/CPP/7zip/UI/Common/SortUtils.h +10 -0
  497. package/android/jni/lzma/CPP/7zip/UI/Common/StdAfx.h +8 -0
  498. package/android/jni/lzma/CPP/7zip/UI/Common/TempFiles.cpp +19 -0
  499. package/android/jni/lzma/CPP/7zip/UI/Common/TempFiles.h +16 -0
  500. package/android/jni/lzma/CPP/7zip/UI/Common/Update.cpp +1704 -0
  501. package/android/jni/lzma/CPP/7zip/UI/Common/Update.h +200 -0
  502. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateAction.cpp +64 -0
  503. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateAction.h +66 -0
  504. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateCallback.cpp +771 -0
  505. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateCallback.h +162 -0
  506. package/android/jni/lzma/CPP/7zip/UI/Common/UpdatePair.cpp +233 -0
  507. package/android/jni/lzma/CPP/7zip/UI/Common/UpdatePair.h +27 -0
  508. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateProduce.cpp +70 -0
  509. package/android/jni/lzma/CPP/7zip/UI/Common/UpdateProduce.h +55 -0
  510. package/android/jni/lzma/CPP/7zip/UI/Common/WorkDir.cpp +94 -0
  511. package/android/jni/lzma/CPP/7zip/UI/Common/WorkDir.h +26 -0
  512. package/android/jni/lzma/CPP/7zip/UI/Common/ZipRegistry.h +130 -0
  513. package/android/jni/lzma/CPP/7zip/UI/Console/BenchCon.cpp +41 -0
  514. package/android/jni/lzma/CPP/7zip/UI/Console/BenchCon.h +14 -0
  515. package/android/jni/lzma/CPP/7zip/UI/Console/Console.mak +43 -0
  516. package/android/jni/lzma/CPP/7zip/UI/Console/Console.manifest +13 -0
  517. package/android/jni/lzma/CPP/7zip/UI/Console/ConsoleClose.cpp +69 -0
  518. package/android/jni/lzma/CPP/7zip/UI/Console/ConsoleClose.h +33 -0
  519. package/android/jni/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.cpp +825 -0
  520. package/android/jni/lzma/CPP/7zip/UI/Console/ExtractCallbackConsole.h +164 -0
  521. package/android/jni/lzma/CPP/7zip/UI/Console/HashCon.cpp +367 -0
  522. package/android/jni/lzma/CPP/7zip/UI/Console/HashCon.h +48 -0
  523. package/android/jni/lzma/CPP/7zip/UI/Console/List.cpp +1359 -0
  524. package/android/jni/lzma/CPP/7zip/UI/Console/List.h +27 -0
  525. package/android/jni/lzma/CPP/7zip/UI/Console/Main.cpp +1154 -0
  526. package/android/jni/lzma/CPP/7zip/UI/Console/MainAr.cpp +175 -0
  527. package/android/jni/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.cpp +115 -0
  528. package/android/jni/lzma/CPP/7zip/UI/Console/OpenCallbackConsole.h +66 -0
  529. package/android/jni/lzma/CPP/7zip/UI/Console/PercentPrinter.cpp +183 -0
  530. package/android/jni/lzma/CPP/7zip/UI/Console/PercentPrinter.h +62 -0
  531. package/android/jni/lzma/CPP/7zip/UI/Console/StdAfx.cpp +3 -0
  532. package/android/jni/lzma/CPP/7zip/UI/Console/StdAfx.h +8 -0
  533. package/android/jni/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.cpp +702 -0
  534. package/android/jni/lzma/CPP/7zip/UI/Console/UpdateCallbackConsole.h +124 -0
  535. package/android/jni/lzma/CPP/7zip/UI/Console/UserInputUtils.cpp +110 -0
  536. package/android/jni/lzma/CPP/7zip/UI/Console/UserInputUtils.h +27 -0
  537. package/android/jni/lzma/CPP/7zip/UI/Console/makefile +64 -0
  538. package/android/jni/lzma/CPP/7zip/UI/Console/resource.rc +7 -0
  539. package/android/jni/lzma/CPP/7zip/UI/Explorer/MyMessages.cpp +37 -0
  540. package/android/jni/lzma/CPP/7zip/UI/Explorer/MyMessages.h +16 -0
  541. package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialog.cpp +1025 -0
  542. package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialog.h +21 -0
  543. package/android/jni/lzma/CPP/7zip/UI/FileManager/BrowseDialogRes.h +9 -0
  544. package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialog.cpp +64 -0
  545. package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialog.h +28 -0
  546. package/android/jni/lzma/CPP/7zip/UI/FileManager/ComboDialogRes.h +4 -0
  547. package/android/jni/lzma/CPP/7zip/UI/FileManager/DialogSize.h +16 -0
  548. package/android/jni/lzma/CPP/7zip/UI/FileManager/ExtractCallback.cpp +1037 -0
  549. package/android/jni/lzma/CPP/7zip/UI/FileManager/ExtractCallback.h +328 -0
  550. package/android/jni/lzma/CPP/7zip/UI/FileManager/FormatUtils.cpp +28 -0
  551. package/android/jni/lzma/CPP/7zip/UI/FileManager/FormatUtils.h +14 -0
  552. package/android/jni/lzma/CPP/7zip/UI/FileManager/LangUtils.h +40 -0
  553. package/android/jni/lzma/CPP/7zip/UI/FileManager/MyWindowsNew.h +76 -0
  554. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.cpp +122 -0
  555. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.h +69 -0
  556. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialog.rc +91 -0
  557. package/android/jni/lzma/CPP/7zip/UI/FileManager/OverwriteDialogRes.h +17 -0
  558. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.cpp +58 -0
  559. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.h +28 -0
  560. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialog.rc +14 -0
  561. package/android/jni/lzma/CPP/7zip/UI/FileManager/PasswordDialogRes.h +5 -0
  562. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.cpp +196 -0
  563. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.h +170 -0
  564. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog.rc +12 -0
  565. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.cpp +1337 -0
  566. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.h +351 -0
  567. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2.rc +40 -0
  568. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2Res.h +48 -0
  569. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialog2a.rc +80 -0
  570. package/android/jni/lzma/CPP/7zip/UI/FileManager/ProgressDialogRes.h +3 -0
  571. package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyName.cpp +23 -0
  572. package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyName.h +10 -0
  573. package/android/jni/lzma/CPP/7zip/UI/FileManager/PropertyNameRes.h +95 -0
  574. package/android/jni/lzma/CPP/7zip/UI/FileManager/SysIconUtils.cpp +255 -0
  575. package/android/jni/lzma/CPP/7zip/UI/FileManager/SysIconUtils.h +62 -0
  576. package/android/jni/lzma/CPP/7zip/UI/FileManager/resource.h +177 -0
  577. package/android/jni/lzma/CPP/7zip/UI/FileManager/resourceGui.h +15 -0
  578. package/android/jni/lzma/CPP/7zip/UI/GUI/Extract.rc +59 -0
  579. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.cpp +418 -0
  580. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.h +113 -0
  581. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialog.rc +98 -0
  582. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractDialogRes.h +24 -0
  583. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractGUI.cpp +280 -0
  584. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractGUI.h +38 -0
  585. package/android/jni/lzma/CPP/7zip/UI/GUI/ExtractRes.h +51 -0
  586. package/android/jni/lzma/CPP/7zip/UI/GUI/HashGUI.h +27 -0
  587. package/android/jni/lzma/CPP/7zip/UI/GUI/resource2.h +2 -0
  588. package/android/jni/lzma/CPP/Build.mak +156 -0
  589. package/android/jni/lzma/CPP/Common/AutoPtr.h +35 -0
  590. package/android/jni/lzma/CPP/Common/CRC.cpp +7 -0
  591. package/android/jni/lzma/CPP/Common/C_FileIO.cpp +92 -0
  592. package/android/jni/lzma/CPP/Common/C_FileIO.h +53 -0
  593. package/android/jni/lzma/CPP/Common/ComTry.h +21 -0
  594. package/android/jni/lzma/CPP/Common/CommandLineParser.cpp +197 -0
  595. package/android/jni/lzma/CPP/Common/CommandLineParser.h +63 -0
  596. package/android/jni/lzma/CPP/Common/Common.h +43 -0
  597. package/android/jni/lzma/CPP/Common/CrcReg.cpp +98 -0
  598. package/android/jni/lzma/CPP/Common/Defs.h +15 -0
  599. package/android/jni/lzma/CPP/Common/DynamicBuffer.h +64 -0
  600. package/android/jni/lzma/CPP/Common/IntToString.cpp +193 -0
  601. package/android/jni/lzma/CPP/Common/IntToString.h +28 -0
  602. package/android/jni/lzma/CPP/Common/Lang.h +23 -0
  603. package/android/jni/lzma/CPP/Common/ListFileUtils.cpp +132 -0
  604. package/android/jni/lzma/CPP/Common/ListFileUtils.h +18 -0
  605. package/android/jni/lzma/CPP/Common/MyBuffer.h +259 -0
  606. package/android/jni/lzma/CPP/Common/MyBuffer2.h +100 -0
  607. package/android/jni/lzma/CPP/Common/MyCom.h +277 -0
  608. package/android/jni/lzma/CPP/Common/MyException.h +14 -0
  609. package/android/jni/lzma/CPP/Common/MyGuidDef.h +54 -0
  610. package/android/jni/lzma/CPP/Common/MyInitGuid.h +45 -0
  611. package/android/jni/lzma/CPP/Common/MyLinux.h +42 -0
  612. package/android/jni/lzma/CPP/Common/MyString.cpp +1659 -0
  613. package/android/jni/lzma/CPP/Common/MyString.h +868 -0
  614. package/android/jni/lzma/CPP/Common/MyTypes.h +35 -0
  615. package/android/jni/lzma/CPP/Common/MyUnknown.h +17 -0
  616. package/android/jni/lzma/CPP/Common/MyVector.cpp +3 -0
  617. package/android/jni/lzma/CPP/Common/MyVector.h +634 -0
  618. package/android/jni/lzma/CPP/Common/MyWindows.cpp +145 -0
  619. package/android/jni/lzma/CPP/Common/MyWindows.h +231 -0
  620. package/android/jni/lzma/CPP/Common/NewHandler.cpp +163 -0
  621. package/android/jni/lzma/CPP/Common/NewHandler.h +88 -0
  622. package/android/jni/lzma/CPP/Common/Sha256Reg.cpp +40 -0
  623. package/android/jni/lzma/CPP/Common/StdAfx.h +8 -0
  624. package/android/jni/lzma/CPP/Common/StdInStream.cpp +89 -0
  625. package/android/jni/lzma/CPP/Common/StdInStream.h +38 -0
  626. package/android/jni/lzma/CPP/Common/StdOutStream.cpp +163 -0
  627. package/android/jni/lzma/CPP/Common/StdOutStream.h +71 -0
  628. package/android/jni/lzma/CPP/Common/StringConvert.cpp +319 -0
  629. package/android/jni/lzma/CPP/Common/StringConvert.h +88 -0
  630. package/android/jni/lzma/CPP/Common/StringToInt.cpp +144 -0
  631. package/android/jni/lzma/CPP/Common/StringToInt.h +21 -0
  632. package/android/jni/lzma/CPP/Common/TextConfig.cpp +124 -0
  633. package/android/jni/lzma/CPP/Common/TextConfig.h +19 -0
  634. package/android/jni/lzma/CPP/Common/UTFConvert.cpp +288 -0
  635. package/android/jni/lzma/CPP/Common/UTFConvert.h +12 -0
  636. package/android/jni/lzma/CPP/Common/Wildcard.cpp +676 -0
  637. package/android/jni/lzma/CPP/Common/Wildcard.h +149 -0
  638. package/android/jni/lzma/CPP/Common/XzCrc64Init.cpp +7 -0
  639. package/android/jni/lzma/CPP/Common/XzCrc64Reg.cpp +42 -0
  640. package/android/jni/lzma/CPP/Windows/COM.h +70 -0
  641. package/android/jni/lzma/CPP/Windows/CommonDialog.cpp +185 -0
  642. package/android/jni/lzma/CPP/Windows/CommonDialog.h +23 -0
  643. package/android/jni/lzma/CPP/Windows/Control/ComboBox.cpp +66 -0
  644. package/android/jni/lzma/CPP/Windows/Control/ComboBox.h +65 -0
  645. package/android/jni/lzma/CPP/Windows/Control/CommandBar.h +52 -0
  646. package/android/jni/lzma/CPP/Windows/Control/Dialog.cpp +251 -0
  647. package/android/jni/lzma/CPP/Windows/Control/Dialog.h +170 -0
  648. package/android/jni/lzma/CPP/Windows/Control/Edit.h +19 -0
  649. package/android/jni/lzma/CPP/Windows/Control/ImageList.cpp +10 -0
  650. package/android/jni/lzma/CPP/Windows/Control/ImageList.h +87 -0
  651. package/android/jni/lzma/CPP/Windows/Control/ListView.cpp +155 -0
  652. package/android/jni/lzma/CPP/Windows/Control/ListView.h +146 -0
  653. package/android/jni/lzma/CPP/Windows/Control/ProgressBar.h +35 -0
  654. package/android/jni/lzma/CPP/Windows/Control/PropertyPage.cpp +143 -0
  655. package/android/jni/lzma/CPP/Windows/Control/PropertyPage.h +50 -0
  656. package/android/jni/lzma/CPP/Windows/Control/ReBar.h +34 -0
  657. package/android/jni/lzma/CPP/Windows/Control/Static.h +28 -0
  658. package/android/jni/lzma/CPP/Windows/Control/StatusBar.h +42 -0
  659. package/android/jni/lzma/CPP/Windows/Control/StdAfx.h +8 -0
  660. package/android/jni/lzma/CPP/Windows/Control/ToolBar.h +43 -0
  661. package/android/jni/lzma/CPP/Windows/Control/Trackbar.h +27 -0
  662. package/android/jni/lzma/CPP/Windows/Control/Window2.cpp +200 -0
  663. package/android/jni/lzma/CPP/Windows/Control/Window2.h +51 -0
  664. package/android/jni/lzma/CPP/Windows/DLL.cpp +109 -0
  665. package/android/jni/lzma/CPP/Windows/DLL.h +58 -0
  666. package/android/jni/lzma/CPP/Windows/Defs.h +17 -0
  667. package/android/jni/lzma/CPP/Windows/ErrorMsg.cpp +66 -0
  668. package/android/jni/lzma/CPP/Windows/ErrorMsg.h +15 -0
  669. package/android/jni/lzma/CPP/Windows/FileDir.cpp +714 -0
  670. package/android/jni/lzma/CPP/Windows/FileDir.h +117 -0
  671. package/android/jni/lzma/CPP/Windows/FileFind.cpp +749 -0
  672. package/android/jni/lzma/CPP/Windows/FileFind.h +161 -0
  673. package/android/jni/lzma/CPP/Windows/FileIO.cpp +432 -0
  674. package/android/jni/lzma/CPP/Windows/FileIO.h +212 -0
  675. package/android/jni/lzma/CPP/Windows/FileLink.cpp +440 -0
  676. package/android/jni/lzma/CPP/Windows/FileMapping.cpp +12 -0
  677. package/android/jni/lzma/CPP/Windows/FileMapping.h +66 -0
  678. package/android/jni/lzma/CPP/Windows/FileName.cpp +839 -0
  679. package/android/jni/lzma/CPP/Windows/FileName.h +115 -0
  680. package/android/jni/lzma/CPP/Windows/FileSystem.cpp +131 -0
  681. package/android/jni/lzma/CPP/Windows/FileSystem.h +27 -0
  682. package/android/jni/lzma/CPP/Windows/Handle.h +37 -0
  683. package/android/jni/lzma/CPP/Windows/MemoryLock.cpp +112 -0
  684. package/android/jni/lzma/CPP/Windows/MemoryLock.h +40 -0
  685. package/android/jni/lzma/CPP/Windows/NtCheck.h +46 -0
  686. package/android/jni/lzma/CPP/Windows/PropVariant.cpp +347 -0
  687. package/android/jni/lzma/CPP/Windows/PropVariant.h +114 -0
  688. package/android/jni/lzma/CPP/Windows/PropVariantConv.cpp +138 -0
  689. package/android/jni/lzma/CPP/Windows/PropVariantConv.h +37 -0
  690. package/android/jni/lzma/CPP/Windows/Registry.cpp +390 -0
  691. package/android/jni/lzma/CPP/Windows/Registry.h +84 -0
  692. package/android/jni/lzma/CPP/Windows/ResourceString.cpp +103 -0
  693. package/android/jni/lzma/CPP/Windows/ResourceString.h +16 -0
  694. package/android/jni/lzma/CPP/Windows/SecurityUtils.cpp +181 -0
  695. package/android/jni/lzma/CPP/Windows/SecurityUtils.h +167 -0
  696. package/android/jni/lzma/CPP/Windows/Shell.cpp +358 -0
  697. package/android/jni/lzma/CPP/Windows/Shell.h +94 -0
  698. package/android/jni/lzma/CPP/Windows/StdAfx.h +8 -0
  699. package/android/jni/lzma/CPP/Windows/Synchronization.cpp +10 -0
  700. package/android/jni/lzma/CPP/Windows/Synchronization.h +164 -0
  701. package/android/jni/lzma/CPP/Windows/System.cpp +142 -0
  702. package/android/jni/lzma/CPP/Windows/System.h +40 -0
  703. package/android/jni/lzma/CPP/Windows/Thread.h +38 -0
  704. package/android/jni/lzma/CPP/Windows/TimeUtils.cpp +213 -0
  705. package/android/jni/lzma/CPP/Windows/TimeUtils.h +32 -0
  706. package/android/jni/lzma/CPP/Windows/Window.cpp +179 -0
  707. package/android/jni/lzma/CPP/Windows/Window.h +284 -0
  708. package/android/jni/lzma/CS/7zip/Common/CRC.cs +55 -0
  709. package/android/jni/lzma/CS/7zip/Common/CommandLineParser.cs +274 -0
  710. package/android/jni/lzma/CS/7zip/Common/InBuffer.cs +72 -0
  711. package/android/jni/lzma/CS/7zip/Common/OutBuffer.cs +47 -0
  712. package/android/jni/lzma/CS/7zip/Compress/LZ/IMatchFinder.cs +24 -0
  713. package/android/jni/lzma/CS/7zip/Compress/LZ/LzBinTree.cs +367 -0
  714. package/android/jni/lzma/CS/7zip/Compress/LZ/LzInWindow.cs +132 -0
  715. package/android/jni/lzma/CS/7zip/Compress/LZ/LzOutWindow.cs +110 -0
  716. package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaBase.cs +76 -0
  717. package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaDecoder.cs +398 -0
  718. package/android/jni/lzma/CS/7zip/Compress/LZMA/LzmaEncoder.cs +1480 -0
  719. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.cs +364 -0
  720. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.csproj +90 -0
  721. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaAlone.sln +20 -0
  722. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/LzmaBench.cs +340 -0
  723. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/AssemblyInfo.cs +29 -0
  724. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/Resources.cs +70 -0
  725. package/android/jni/lzma/CS/7zip/Compress/LzmaAlone/Properties/Settings.cs +42 -0
  726. package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoder.cs +234 -0
  727. package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBit.cs +117 -0
  728. package/android/jni/lzma/CS/7zip/Compress/RangeCoder/RangeCoderBitTree.cs +157 -0
  729. package/android/jni/lzma/CS/7zip/ICoder.cs +157 -0
  730. package/android/jni/lzma/DOC/7zC.txt +187 -0
  731. package/android/jni/lzma/DOC/7zFormat.txt +469 -0
  732. package/android/jni/lzma/DOC/Methods.txt +173 -0
  733. package/android/jni/lzma/DOC/installer.txt +166 -0
  734. package/android/jni/lzma/DOC/lzma-history.txt +446 -0
  735. package/android/jni/lzma/DOC/lzma-sdk.txt +357 -0
  736. package/android/jni/lzma/DOC/lzma-specification.txt +1176 -0
  737. package/android/jni/lzma/DOC/lzma.txt +328 -0
  738. package/android/jni/lzma/Java/SevenZip/CRC.java +52 -0
  739. package/android/jni/lzma/Java/SevenZip/Compression/LZ/BinTree.java +382 -0
  740. package/android/jni/lzma/Java/SevenZip/Compression/LZ/InWindow.java +131 -0
  741. package/android/jni/lzma/Java/SevenZip/Compression/LZ/OutWindow.java +85 -0
  742. package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Base.java +88 -0
  743. package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Decoder.java +329 -0
  744. package/android/jni/lzma/Java/SevenZip/Compression/LZMA/Encoder.java +1416 -0
  745. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeDecoder.java +55 -0
  746. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/BitTreeEncoder.java +99 -0
  747. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/Decoder.java +88 -0
  748. package/android/jni/lzma/Java/SevenZip/Compression/RangeCoder/Encoder.java +151 -0
  749. package/android/jni/lzma/Java/SevenZip/ICodeProgress.java +6 -0
  750. package/android/jni/lzma/Java/SevenZip/LzmaAlone.java +253 -0
  751. package/android/jni/lzma/Java/SevenZip/LzmaBench.java +392 -0
  752. package/android/jni/lzma/bin/7zS2.sfx +0 -0
  753. package/android/jni/lzma/bin/7zS2con.sfx +0 -0
  754. package/android/jni/lzma/bin/7zSD.sfx +0 -0
  755. package/android/jni/lzma/bin/installer/config.txt +5 -0
  756. package/android/jni/lzma/bin/installer/cr.bat +5 -0
  757. package/android/lib/arm64-v8a/librnupdate.so +0 -0
  758. package/android/lib/armeabi-v7a/librnupdate.so +0 -0
  759. package/android/lib/x86/librnupdate.so +0 -0
  760. package/android/lib/x86_64/librnupdate.so +0 -0
  761. package/android/proguard.pro +83 -0
  762. package/android/src/main/AndroidManifest.xml +14 -0
  763. package/android/src/main/AndroidManifestNew.xml +13 -0
  764. package/android/src/main/java/cn/reactnative/modules/update/ApkInstaller.java +292 -0
  765. package/android/src/main/java/cn/reactnative/modules/update/ArchiveLimits.java +50 -0
  766. package/android/src/main/java/cn/reactnative/modules/update/ArchivePatchPlanResult.java +11 -0
  767. package/android/src/main/java/cn/reactnative/modules/update/BundledResourceCopier.java +394 -0
  768. package/android/src/main/java/cn/reactnative/modules/update/CleanupKeepNames.java +30 -0
  769. package/android/src/main/java/cn/reactnative/modules/update/CopyGroupResult.java +11 -0
  770. package/android/src/main/java/cn/reactnative/modules/update/CrashRescue.java +120 -0
  771. package/android/src/main/java/cn/reactnative/modules/update/DownloadTask.java +954 -0
  772. package/android/src/main/java/cn/reactnative/modules/update/DownloadTaskParams.java +64 -0
  773. package/android/src/main/java/cn/reactnative/modules/update/ErrorCodes.java +32 -0
  774. package/android/src/main/java/cn/reactnative/modules/update/FileOperationException.java +20 -0
  775. package/android/src/main/java/cn/reactnative/modules/update/HttpUtils.java +64 -0
  776. package/android/src/main/java/cn/reactnative/modules/update/InstallRecord.java +156 -0
  777. package/android/src/main/java/cn/reactnative/modules/update/NativeCheckOrchestrator.java +725 -0
  778. package/android/src/main/java/cn/reactnative/modules/update/NativeUpdateCore.java +43 -0
  779. package/android/src/main/java/cn/reactnative/modules/update/NativeUpdateFlow.java +30 -0
  780. package/android/src/main/java/cn/reactnative/modules/update/PackageInstallerStatusReceiver.java +17 -0
  781. package/android/src/main/java/cn/reactnative/modules/update/PatchFailedException.java +21 -0
  782. package/android/src/main/java/cn/reactnative/modules/update/ReactReloadManager.java +274 -0
  783. package/android/src/main/java/cn/reactnative/modules/update/SafeZipFile.java +187 -0
  784. package/android/src/main/java/cn/reactnative/modules/update/StateCoreResult.java +22 -0
  785. package/android/src/main/java/cn/reactnative/modules/update/StateSerialRunner.java +70 -0
  786. package/android/src/main/java/cn/reactnative/modules/update/UiThreadRunner.java +42 -0
  787. package/android/src/main/java/cn/reactnative/modules/update/UpdateContext.java +952 -0
  788. package/android/src/main/java/cn/reactnative/modules/update/UpdateEventEmitter.java +70 -0
  789. package/android/src/main/java/cn/reactnative/modules/update/UpdateFileUtils.java +110 -0
  790. package/android/src/main/java/cn/reactnative/modules/update/UpdateModuleImpl.java +403 -0
  791. package/android/src/main/java/cn/reactnative/modules/update/UpdatePackage.java +51 -0
  792. package/android/src/main/java/expo/modules/pakta/ExpoPaktaModule.kt +15 -0
  793. package/android/src/main/java/expo/modules/pakta/ExpoPaktaPackage.java +29 -0
  794. package/android/src/newarch/cn/reactnative/modules/update/UpdateModule.java +126 -0
  795. package/android/src/oldarch/cn/reactnative/modules/update/UpdateModule.java +130 -0
  796. package/cpp/patch_core/archive_limits.h +49 -0
  797. package/cpp/patch_core/archive_patch_core.cpp +146 -0
  798. package/cpp/patch_core/archive_patch_core.h +69 -0
  799. package/cpp/patch_core/digest.cpp +235 -0
  800. package/cpp/patch_core/digest.h +66 -0
  801. package/cpp/patch_core/error_codes.h +57 -0
  802. package/cpp/patch_core/hbc_transform.cpp +152 -0
  803. package/cpp/patch_core/hbc_transform.h +58 -0
  804. package/cpp/patch_core/hbc_transform_wire.cpp +332 -0
  805. package/cpp/patch_core/hbc_transform_wire.h +57 -0
  806. package/cpp/patch_core/install_record.h +41 -0
  807. package/cpp/patch_core/jni_util.h +65 -0
  808. package/cpp/patch_core/patch_core.cpp +849 -0
  809. package/cpp/patch_core/patch_core.h +103 -0
  810. package/cpp/patch_core/patch_core_android.cpp +102 -0
  811. package/cpp/patch_core/state_core.cpp +122 -0
  812. package/cpp/patch_core/state_core.h +66 -0
  813. package/cpp/patch_core/state_ops.h +29 -0
  814. package/cpp/patch_core/update_core_android.cpp +502 -0
  815. package/cpp/update_flow_core/flow_json.cpp +660 -0
  816. package/cpp/update_flow_core/flow_json.h +121 -0
  817. package/cpp/update_flow_core/update_flow_core.cpp +418 -0
  818. package/cpp/update_flow_core/update_flow_core.h +100 -0
  819. package/cpp/update_flow_core/update_flow_jni.cpp +157 -0
  820. package/expo-module.config.json +13 -0
  821. package/harmony/hvigor-plugin.ts +212 -0
  822. package/harmony/pakta/src/README.md +74 -0
  823. package/harmony/pakta/src/main/cpp/CMakeLists.txt +92 -0
  824. package/harmony/pakta/src/main/cpp/PaktaPackage.h +60 -0
  825. package/harmony/pakta/src/main/cpp/PaktaTurboModule.cpp +123 -0
  826. package/harmony/pakta/src/main/cpp/PaktaTurboModule.h +43 -0
  827. package/harmony/pakta/src/main/cpp/pakta.cpp +1243 -0
  828. package/harmony/pakta/src/main/ets/ArchiveLimits.ts +144 -0
  829. package/harmony/pakta/src/main/ets/DownloadTask.ts +1375 -0
  830. package/harmony/pakta/src/main/ets/DownloadTaskParams.ts +27 -0
  831. package/harmony/pakta/src/main/ets/ErrorCodes.ts +80 -0
  832. package/harmony/pakta/src/main/ets/EventHub.ts +46 -0
  833. package/harmony/pakta/src/main/ets/InstallRecord.ts +192 -0
  834. package/harmony/pakta/src/main/ets/Logger.ts +83 -0
  835. package/harmony/pakta/src/main/ets/MonotonicClock.ts +18 -0
  836. package/harmony/pakta/src/main/ets/NativeCheckOrchestrator.ts +640 -0
  837. package/harmony/pakta/src/main/ets/NativePatchCore.ts +123 -0
  838. package/harmony/pakta/src/main/ets/PaktaFileJSBundleProvider.ets +54 -0
  839. package/harmony/pakta/src/main/ets/PaktaPackage.ets +15 -0
  840. package/harmony/pakta/src/main/ets/PaktaPackageCompat.ts +15 -0
  841. package/harmony/pakta/src/main/ets/PaktaPackageFactory.ts +19 -0
  842. package/harmony/pakta/src/main/ets/PaktaTurboModule.ts +433 -0
  843. package/harmony/pakta/src/main/ets/PathUtils.ts +32 -0
  844. package/harmony/pakta/src/main/ets/SaveFile.ts +39 -0
  845. package/harmony/pakta/src/main/ets/UpdateContext.ts +1059 -0
  846. package/harmony/pakta/src/main/module.json5 +14 -0
  847. package/harmony/pakta/src/main/resources/base/element/string.json +8 -0
  848. package/harmony/pakta/src/main/resources/en_US/element/string.json +8 -0
  849. package/harmony/pakta/src/main/resources/zh_CN/element/string.json +8 -0
  850. package/harmony/pakta.har +0 -0
  851. package/ios/Expo/ExpoPaktaModule.swift +12 -0
  852. package/ios/Expo/ExpoPaktaReactDelegateHandler.swift +25 -0
  853. package/ios/ImportReact.h +7 -0
  854. package/ios/PrivacyInfo.xcprivacy +84 -0
  855. package/ios/RCTPakta/RCTPakta.h +14 -0
  856. package/ios/RCTPakta/RCTPakta.mm +2775 -0
  857. package/ios/RCTPakta/RCTPaktaDownloader.h +29 -0
  858. package/ios/RCTPakta/RCTPaktaDownloader.mm +625 -0
  859. package/ios/pakta_build_time.txt +1 -0
  860. package/package.json +88 -0
  861. package/react-native.config.js +6 -0
  862. package/rn-update.podspec +221 -0
  863. package/src/NativePakta.ts +85 -0
  864. package/src/client.ts +1839 -0
  865. package/src/context.ts +102 -0
  866. package/src/core.ts +190 -0
  867. package/src/endpoint.ts +204 -0
  868. package/src/error.ts +168 -0
  869. package/src/errorReporting.ts +141 -0
  870. package/src/globals.d.ts +6 -0
  871. package/src/i18n.ts +113 -0
  872. package/src/index.ts +46 -0
  873. package/src/locales/en.ts +77 -0
  874. package/src/locales/zh.ts +71 -0
  875. package/src/metadata.ts +175 -0
  876. package/src/provider.tsx +629 -0
  877. package/src/telemetry.ts +104 -0
  878. package/src/type.ts +243 -0
  879. package/src/updateFlowCore.ts +428 -0
  880. package/src/utils.ts +268 -0
@@ -0,0 +1,849 @@
1
+ /**
2
+ * [INPUT]: 依赖 patch_core/digest/HBC 能力、POSIX 文件系统与第三方 hpatch 执行器
3
+ * [OUTPUT]: 实现 manifest 校验、安全复制合并、HBC 变换域补丁、旧版本清理与 hdiff 适配
4
+ * [POS]: patch_core 的有副作用执行核心,是 Android/iOS/Harmony 文件 IO 语义的共享实现
5
+ */
6
+ #include "patch_core.h"
7
+
8
+ #include "digest.h"
9
+
10
+ #include <cerrno>
11
+ #include <cstdint>
12
+ #include <cstdio>
13
+ #include <cstring>
14
+ #include <dirent.h>
15
+ #include <fcntl.h>
16
+ #include <sys/mman.h>
17
+ #include <sys/stat.h>
18
+ #include <sys/types.h>
19
+ #include <unistd.h>
20
+
21
+ #include <algorithm>
22
+ #include <limits>
23
+ #include <vector>
24
+
25
+ #include "hbc_transform.h"
26
+ #include "hbc_transform_wire.h"
27
+
28
+ extern "C" {
29
+ #include "hpatch.h"
30
+ }
31
+
32
+ namespace pakta {
33
+ namespace patch {
34
+
35
+ namespace internal {
36
+ bool g_disable_hard_links = false;
37
+ } // namespace internal
38
+
39
+ namespace {
40
+
41
+ constexpr size_t kCopyBufferSize = 16 * 1024;
42
+
43
+ // Directory walkers recurse once per nesting level. A hostile archive can nest
44
+ // thousands of directories while staying well inside the entry-count cap, so
45
+ // bound the depth explicitly instead of letting the stack overflow (mirrors
46
+ // flowjson::kMaxDepth). Real bundles nest a handful of levels.
47
+ constexpr int kMaxDirectoryDepth = 64;
48
+
49
+ class HdiffBundlePatcher final : public BundlePatcher {
50
+ public:
51
+ Status Apply(
52
+ const std::string& origin_bundle_path,
53
+ const std::string& bundle_patch_path,
54
+ const std::string& destination_bundle_path) const override;
55
+ };
56
+
57
+ Status MakeErrnoStatus(const std::string& message, int err = errno) {
58
+ if (err == 0) {
59
+ return Status::Error(message);
60
+ }
61
+ return Status::Error(message + ": " + std::strerror(err));
62
+ }
63
+
64
+ std::string IntToString(int value) {
65
+ char buffer[32] = {0};
66
+ const int written = std::snprintf(buffer, sizeof(buffer), "%d", value);
67
+ if (written <= 0) {
68
+ return "0";
69
+ }
70
+ return std::string(buffer, static_cast<size_t>(written));
71
+ }
72
+
73
+ bool EndsWithSlash(const std::string& path) {
74
+ return !path.empty() && path[path.size() - 1] == '/';
75
+ }
76
+
77
+ std::string TrimTrailingSlash(const std::string& path) {
78
+ if (path.empty()) {
79
+ return path;
80
+ }
81
+
82
+ size_t end = path.size();
83
+ while (end > 0 && path[end - 1] == '/') {
84
+ --end;
85
+ }
86
+ return path.substr(0, end);
87
+ }
88
+
89
+ std::vector<std::string> SplitPath(const std::string& path) {
90
+ std::vector<std::string> segments;
91
+ std::string current;
92
+
93
+ for (char ch : path) {
94
+ if (ch == '/') {
95
+ segments.push_back(current);
96
+ current.clear();
97
+ } else {
98
+ current.push_back(ch);
99
+ }
100
+ }
101
+ segments.push_back(current);
102
+ return segments;
103
+ }
104
+
105
+ std::string JoinPath(const std::string& base, const std::string& relative) {
106
+ if (base.empty()) {
107
+ return relative;
108
+ }
109
+ if (relative.empty()) {
110
+ return base;
111
+ }
112
+ if (base[base.size() - 1] == '/') {
113
+ return base + relative;
114
+ }
115
+ return base + "/" + relative;
116
+ }
117
+
118
+ std::string Dirname(const std::string& path) {
119
+ size_t slash = path.find_last_of('/');
120
+ if (slash == std::string::npos) {
121
+ return std::string();
122
+ }
123
+ return path.substr(0, slash);
124
+ }
125
+
126
+ bool PathExists(const std::string& path) {
127
+ struct stat st;
128
+ return stat(path.c_str(), &st) == 0;
129
+ }
130
+
131
+ bool IsDirectory(const std::string& path) {
132
+ struct stat st;
133
+ if (stat(path.c_str(), &st) != 0) {
134
+ return false;
135
+ }
136
+ return S_ISDIR(st.st_mode);
137
+ }
138
+
139
+ Status EnsureDirectory(const std::string& path) {
140
+ if (path.empty()) {
141
+ return Status::Ok();
142
+ }
143
+ // Walk the components left to right instead of recursing on the parent:
144
+ // manifest paths are attacker-controlled and may carry thousands of
145
+ // segments.
146
+ size_t pos = 0;
147
+ while (pos <= path.size()) {
148
+ size_t slash = path.find('/', pos);
149
+ if (slash == std::string::npos) {
150
+ slash = path.size();
151
+ }
152
+ const std::string prefix = path.substr(0, slash);
153
+ if (!prefix.empty()) {
154
+ if (PathExists(prefix)) {
155
+ if (!IsDirectory(prefix)) {
156
+ return Status::Error("Expected directory path: " + prefix);
157
+ }
158
+ } else if (mkdir(prefix.c_str(), 0755) != 0 && errno != EEXIST) {
159
+ return MakeErrnoStatus("Failed to create directory " + prefix);
160
+ }
161
+ }
162
+ pos = slash + 1;
163
+ }
164
+ return Status::Ok();
165
+ }
166
+
167
+ Status RemovePathRecursively(const std::string& path, int depth = 0) {
168
+ struct stat st;
169
+ if (lstat(path.c_str(), &st) != 0) {
170
+ if (errno == ENOENT) {
171
+ return Status::Ok();
172
+ }
173
+ return MakeErrnoStatus("Failed to stat path " + path);
174
+ }
175
+
176
+ if (S_ISDIR(st.st_mode)) {
177
+ if (depth >= kMaxDirectoryDepth) {
178
+ return Status::Error("Directory nesting too deep: " + path);
179
+ }
180
+ DIR* dir = opendir(path.c_str());
181
+ if (!dir) {
182
+ return MakeErrnoStatus("Failed to open directory " + path);
183
+ }
184
+
185
+ struct dirent* entry = nullptr;
186
+ while ((entry = readdir(dir)) != nullptr) {
187
+ const std::string name = entry->d_name;
188
+ if (name == "." || name == "..") {
189
+ continue;
190
+ }
191
+ Status remove_status =
192
+ RemovePathRecursively(JoinPath(path, name), depth + 1);
193
+ if (!remove_status) {
194
+ closedir(dir);
195
+ return remove_status;
196
+ }
197
+ }
198
+ closedir(dir);
199
+
200
+ if (rmdir(path.c_str()) != 0) {
201
+ return MakeErrnoStatus("Failed to remove directory " + path);
202
+ }
203
+ return Status::Ok();
204
+ }
205
+
206
+ if (unlink(path.c_str()) != 0) {
207
+ return MakeErrnoStatus("Failed to remove file " + path);
208
+ }
209
+ return Status::Ok();
210
+ }
211
+
212
+ Status ReadFileBytes(const std::string& path, std::vector<uint8_t>* out) {
213
+ FILE* file = fopen(path.c_str(), "rb");
214
+ if (file == nullptr) {
215
+ return MakeErrnoStatus("Failed to open file for reading " + path);
216
+ }
217
+ // fstat rather than fseek/ftell: ftell returns a 32-bit long on the 32-bit
218
+ // ABIs (armeabi-v7a, x86), and the regular-file check keeps directories and
219
+ // devices out.
220
+ struct stat st;
221
+ if (fstat(fileno(file), &st) != 0) {
222
+ fclose(file);
223
+ return MakeErrnoStatus("Failed to size file " + path);
224
+ }
225
+ if (!S_ISREG(st.st_mode)) {
226
+ fclose(file);
227
+ return Status::Error("Not a regular file: " + path);
228
+ }
229
+ if (st.st_size < 0 ||
230
+ static_cast<uint64_t>(st.st_size) >
231
+ static_cast<uint64_t>(std::numeric_limits<size_t>::max() / 2)) {
232
+ fclose(file);
233
+ return Status::Error("File too large to load: " + path);
234
+ }
235
+ const size_t size = static_cast<size_t>(st.st_size);
236
+ out->resize(size);
237
+ if (size > 0 &&
238
+ fread(out->data(), 1, out->size(), file) != out->size()) {
239
+ fclose(file);
240
+ return Status::Error("Failed to read file " + path);
241
+ }
242
+ fclose(file);
243
+ return Status::Ok();
244
+ }
245
+
246
+ // fflush + fsync so payload bytes are durable before the caller's two-phase
247
+ // rename: a power cut must not leave a complete-looking version directory
248
+ // with a truncated bundle. EINVAL means the descriptor cannot be synced (some
249
+ // pseudo filesystems) and is not an error.
250
+ Status SyncFile(FILE* file, const std::string& path) {
251
+ if (fflush(file) != 0) {
252
+ return MakeErrnoStatus("Failed to flush file " + path);
253
+ }
254
+ if (fsync(fileno(file)) != 0 && errno != EINVAL) {
255
+ return MakeErrnoStatus("Failed to sync file " + path);
256
+ }
257
+ return Status::Ok();
258
+ }
259
+
260
+ Status WriteFileBytes(const std::string& path, const std::vector<uint8_t>& data) {
261
+ FILE* file = fopen(path.c_str(), "wb");
262
+ if (file == nullptr) {
263
+ return MakeErrnoStatus("Failed to open file for writing " + path);
264
+ }
265
+ if (!data.empty() && fwrite(data.data(), 1, data.size(), file) != data.size()) {
266
+ fclose(file);
267
+ remove(path.c_str());
268
+ return Status::Error("Failed to write file " + path);
269
+ }
270
+ Status sync_status = SyncFile(file, path);
271
+ if (!sync_status) {
272
+ fclose(file);
273
+ remove(path.c_str());
274
+ return sync_status;
275
+ }
276
+ if (fclose(file) != 0) {
277
+ remove(path.c_str());
278
+ return MakeErrnoStatus("Failed to flush file " + path);
279
+ }
280
+ return Status::Ok();
281
+ }
282
+
283
+ // Streams `from` into a fresh `to` through a small buffer: never a hard link
284
+ // (callers that go on to mutate `to` in place rely on that) and never the
285
+ // whole file in memory.
286
+ Status CopyFileBytes(const std::string& from, const std::string& to) {
287
+ FILE* source = std::fopen(from.c_str(), "rb");
288
+ if (!source) {
289
+ return MakeErrnoStatus("Failed to open source file " + from);
290
+ }
291
+
292
+ FILE* destination = std::fopen(to.c_str(), "wb");
293
+ if (!destination) {
294
+ std::fclose(source);
295
+ return MakeErrnoStatus("Failed to open destination file " + to);
296
+ }
297
+
298
+ std::vector<unsigned char> buffer(kCopyBufferSize);
299
+ while (true) {
300
+ size_t bytes_read = std::fread(buffer.data(), 1, buffer.size(), source);
301
+ if (bytes_read > 0) {
302
+ size_t bytes_written = std::fwrite(buffer.data(), 1, bytes_read, destination);
303
+ if (bytes_written != bytes_read) {
304
+ std::fclose(source);
305
+ std::fclose(destination);
306
+ return MakeErrnoStatus("Failed to write destination file " + to);
307
+ }
308
+ }
309
+
310
+ if (bytes_read < buffer.size()) {
311
+ if (std::ferror(source)) {
312
+ std::fclose(source);
313
+ std::fclose(destination);
314
+ return MakeErrnoStatus("Failed to read source file " + from);
315
+ }
316
+ break;
317
+ }
318
+ }
319
+
320
+ std::fclose(source);
321
+ Status sync_status = SyncFile(destination, to);
322
+ if (!sync_status) {
323
+ std::fclose(destination);
324
+ return sync_status;
325
+ }
326
+ if (std::fclose(destination) != 0) {
327
+ return MakeErrnoStatus("Failed to close destination file " + to);
328
+ }
329
+ return Status::Ok();
330
+ }
331
+
332
+ Status CopyFile(const std::string& from, const std::string& to, bool overwrite) {
333
+ struct stat st;
334
+ if (stat(from.c_str(), &st) != 0) {
335
+ return MakeErrnoStatus("Failed to stat source file " + from);
336
+ }
337
+ if (!S_ISREG(st.st_mode)) {
338
+ return Status::Error("Source is not a regular file: " + from);
339
+ }
340
+
341
+ const std::string parent = Dirname(to);
342
+ Status dir_status = EnsureDirectory(parent);
343
+ if (!dir_status) {
344
+ return dir_status;
345
+ }
346
+
347
+ if (PathExists(to)) {
348
+ if (!overwrite) {
349
+ return Status::Ok();
350
+ }
351
+ Status remove_status = RemovePathRecursively(to);
352
+ if (!remove_status) {
353
+ return remove_status;
354
+ }
355
+ }
356
+
357
+ // Prefer a hard link over copying bytes: unchanged files between versions
358
+ // are identical, so linking is O(1) per file, writes nothing to flash, and
359
+ // shares disk blocks. Version directories are immutable once created (patch
360
+ // outputs are always written as new files), so sharing the inode with the
361
+ // source is safe. Fall back to a byte copy whenever linking is not possible
362
+ // (cross-device source such as the installed app bundle, EPERM, EMLINK, or
363
+ // filesystems without hard-link support).
364
+ if (!internal::g_disable_hard_links && link(from.c_str(), to.c_str()) == 0) {
365
+ return Status::Ok();
366
+ }
367
+
368
+ return CopyFileBytes(from, to);
369
+ }
370
+
371
+ struct DeleteRule {
372
+ std::string path;
373
+ bool directory_hint;
374
+ };
375
+
376
+ class DeleteMatcher {
377
+ public:
378
+ explicit DeleteMatcher(const std::vector<std::string>& deletes) {
379
+ for (const std::string& raw : deletes) {
380
+ rules_.push_back(DeleteRule{TrimTrailingSlash(raw), EndsWithSlash(raw)});
381
+ }
382
+ }
383
+
384
+ bool Matches(const std::string& relative_path) const {
385
+ const std::string trimmed = TrimTrailingSlash(relative_path);
386
+ for (const DeleteRule& rule : rules_) {
387
+ if (rule.path.empty()) {
388
+ continue;
389
+ }
390
+ if (trimmed == rule.path) {
391
+ return true;
392
+ }
393
+ if (rule.directory_hint &&
394
+ trimmed.size() > rule.path.size() &&
395
+ trimmed.compare(0, rule.path.size(), rule.path) == 0 &&
396
+ trimmed[rule.path.size()] == '/') {
397
+ return true;
398
+ }
399
+ }
400
+ return false;
401
+ }
402
+
403
+ private:
404
+ std::vector<DeleteRule> rules_;
405
+ };
406
+
407
+ Status ValidateManifestImpl(const PatchManifest& manifest) {
408
+ for (const CopyOperation& copy : manifest.copies) {
409
+ if (!IsSafeRelativePath(copy.from)) {
410
+ return Status::Error("Unsafe copy source path: " + copy.from);
411
+ }
412
+ if (!IsSafeRelativePath(copy.to)) {
413
+ return Status::Error("Unsafe copy target path: " + copy.to);
414
+ }
415
+ }
416
+
417
+ for (const std::string& deleted : manifest.deletes) {
418
+ const std::string trimmed = TrimTrailingSlash(deleted);
419
+ if (trimmed.empty() || !IsSafeRelativePath(trimmed)) {
420
+ return Status::Error("Unsafe deleted path: " + deleted);
421
+ }
422
+ }
423
+
424
+ return Status::Ok();
425
+ }
426
+
427
+ Status MergeDirectoryRecursively(
428
+ const std::string& source_root,
429
+ const std::string& target_root,
430
+ const std::string& relative_root,
431
+ const DeleteMatcher& deletes,
432
+ int depth = 0) {
433
+ DIR* dir = opendir(source_root.c_str());
434
+ if (!dir) {
435
+ if (errno == ENOENT) {
436
+ return Status::Ok();
437
+ }
438
+ return MakeErrnoStatus("Failed to open source directory " + source_root);
439
+ }
440
+
441
+ struct dirent* entry = nullptr;
442
+ while ((entry = readdir(dir)) != nullptr) {
443
+ const std::string name = entry->d_name;
444
+ if (name == "." || name == "..") {
445
+ continue;
446
+ }
447
+
448
+ const std::string source_path = JoinPath(source_root, name);
449
+ const std::string relative_path =
450
+ relative_root.empty() ? name : JoinPath(relative_root, name);
451
+
452
+ if (deletes.Matches(relative_path)) {
453
+ continue;
454
+ }
455
+
456
+ struct stat st;
457
+ if (stat(source_path.c_str(), &st) != 0) {
458
+ closedir(dir);
459
+ return MakeErrnoStatus("Failed to stat source path " + source_path);
460
+ }
461
+
462
+ const std::string target_path = JoinPath(target_root, name);
463
+ if (S_ISDIR(st.st_mode)) {
464
+ if (depth >= kMaxDirectoryDepth) {
465
+ closedir(dir);
466
+ return Status::Error("Directory nesting too deep: " + source_path);
467
+ }
468
+ Status dir_status = EnsureDirectory(target_path);
469
+ if (!dir_status) {
470
+ closedir(dir);
471
+ return dir_status;
472
+ }
473
+
474
+ Status merge_status = MergeDirectoryRecursively(
475
+ source_path, target_path, relative_path, deletes, depth + 1);
476
+ if (!merge_status) {
477
+ closedir(dir);
478
+ return merge_status;
479
+ }
480
+ } else if (S_ISREG(st.st_mode)) {
481
+ Status copy_status = CopyFile(source_path, target_path, false);
482
+ if (!copy_status) {
483
+ closedir(dir);
484
+ return copy_status;
485
+ }
486
+ }
487
+ }
488
+
489
+ closedir(dir);
490
+ return Status::Ok();
491
+ }
492
+
493
+ } // namespace
494
+
495
+ Status Status::Ok() {
496
+ return Status{true, std::string()};
497
+ }
498
+
499
+ Status Status::Error(const std::string& message) {
500
+ return Status{false, message};
501
+ }
502
+
503
+ Status ValidateManifest(const PatchManifest& manifest) {
504
+ return ValidateManifestImpl(manifest);
505
+ }
506
+
507
+ const BundlePatcher& DefaultBundlePatcher() {
508
+ static const HdiffBundlePatcher kPatcher;
509
+ return kPatcher;
510
+ }
511
+
512
+ namespace {
513
+
514
+ // Applies T (or T⁻¹) to a file in place through a shared mapping, so a
515
+ // 10–50 MB bundle never has to be read into an anonymous heap buffer: the
516
+ // pages are backed by the file itself and can be written back and evicted
517
+ // under memory pressure. Falls back to read → transform → write when the
518
+ // mapping is unavailable. On a rejected transform the bytes are left as they
519
+ // were (TransformHbcInPlace never partially mutates).
520
+ Status TransformFileInPlace(
521
+ const std::string& path,
522
+ const hbc::HbcLayoutDesc& layout,
523
+ bool inverse) {
524
+ const char* failure = inverse
525
+ ? "hbcTransform inverse failed on patched bundle"
526
+ : "hbcTransform failed on origin bundle";
527
+
528
+ const int fd = open(path.c_str(), O_RDWR);
529
+ if (fd < 0) {
530
+ return MakeErrnoStatus("Failed to open bundle for transform " + path);
531
+ }
532
+ struct stat st;
533
+ if (fstat(fd, &st) != 0) {
534
+ close(fd);
535
+ return MakeErrnoStatus("Failed to size bundle " + path);
536
+ }
537
+ void* mapped = MAP_FAILED;
538
+ size_t size = 0;
539
+ if (S_ISREG(st.st_mode) && st.st_size > 0 &&
540
+ static_cast<uint64_t>(st.st_size) <=
541
+ static_cast<uint64_t>(std::numeric_limits<size_t>::max() / 2)) {
542
+ size = static_cast<size_t>(st.st_size);
543
+ mapped = mmap(nullptr, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
544
+ }
545
+ if (mapped == MAP_FAILED) {
546
+ close(fd);
547
+ std::vector<uint8_t> bytes;
548
+ Status status = ReadFileBytes(path, &bytes);
549
+ if (!status) {
550
+ return status;
551
+ }
552
+ if (!hbc::TransformHbcInPlace(bytes.data(), bytes.size(), layout, inverse)) {
553
+ return Status::Error(failure);
554
+ }
555
+ return WriteFileBytes(path, bytes);
556
+ }
557
+
558
+ const bool transformed = hbc::TransformHbcInPlace(
559
+ static_cast<uint8_t*>(mapped), size, layout, inverse);
560
+ const bool synced = msync(mapped, size, MS_SYNC) == 0;
561
+ const int sync_errno = errno;
562
+ munmap(mapped, size);
563
+ const bool fsynced = fsync(fd) == 0 || errno == EINVAL;
564
+ const int fsync_errno = errno;
565
+ close(fd);
566
+ if (!transformed) {
567
+ return Status::Error(failure);
568
+ }
569
+ if (!synced) {
570
+ return MakeErrnoStatus("Failed to sync transformed bundle " + path, sync_errno);
571
+ }
572
+ if (!fsynced) {
573
+ return MakeErrnoStatus("Failed to sync transformed bundle " + path, fsync_errno);
574
+ }
575
+ return Status::Ok();
576
+ }
577
+
578
+ // 变换域 bundle patch:T(origin) → hpatch → T⁻¹。
579
+ // 元数据/变换的任何失败都返回错误——调用方沿既有失败路径回退整包;
580
+ // 绝不能忽略元数据直接 hpatch(会产出损坏 bundle,虽然最终 hash 校验
581
+ // 也会拦住,但应在此处快速失败)。
582
+ // 两次变换都在临时文件上原地完成(见 TransformFileInPlace),整个流程
583
+ // 端到端不把 bundle 整体读进内存。
584
+ Status ApplyBundlePatchWithHbcTransform(
585
+ const FileSourcePatchOptions& options,
586
+ const BundlePatcher& bundle_patcher) {
587
+ hbc::HbcTransformMeta meta;
588
+ if (!hbc::ParseHbcTransformMeta(options.bundle_hbc_transform_meta, &meta)) {
589
+ return Status::Error("Invalid hbcTransform metadata");
590
+ }
591
+ if (meta.v != hbc::kHbcTransformSupportedVersion) {
592
+ return Status::Error(
593
+ "Unsupported hbcTransform version " +
594
+ IntToString(static_cast<int>(meta.v)));
595
+ }
596
+ std::vector<hbc::HbcSectionDesc> sections_scratch;
597
+ const hbc::HbcLayoutDesc layout = hbc::BuildLayout(meta, &sections_scratch);
598
+
599
+ Status dir_status = EnsureDirectory(Dirname(options.bundle_output_path));
600
+ if (!dir_status) {
601
+ return dir_status;
602
+ }
603
+ const std::string temp_origin = options.bundle_output_path + ".hbct-origin";
604
+ const std::string temp_patched = options.bundle_output_path + ".hbct-patched";
605
+ remove(temp_origin.c_str());
606
+ remove(temp_patched.c_str());
607
+
608
+ // A private byte copy — never a hard link — because the transform mutates
609
+ // it in place and the origin bundle must stay untouched.
610
+ Status status = CopyFileBytes(options.origin_bundle_path, temp_origin);
611
+ if (!status) {
612
+ remove(temp_origin.c_str());
613
+ return status;
614
+ }
615
+ status = TransformFileInPlace(temp_origin, layout, false);
616
+ if (!status) {
617
+ remove(temp_origin.c_str());
618
+ return status;
619
+ }
620
+
621
+ Status patch_status =
622
+ bundle_patcher.Apply(temp_origin, options.bundle_patch_path, temp_patched);
623
+ remove(temp_origin.c_str());
624
+ if (!patch_status) {
625
+ remove(temp_patched.c_str());
626
+ return patch_status;
627
+ }
628
+
629
+ status = TransformFileInPlace(temp_patched, layout, true);
630
+ if (!status) {
631
+ remove(temp_patched.c_str());
632
+ return status;
633
+ }
634
+
635
+ if (PathExists(options.bundle_output_path)) {
636
+ Status remove_status = RemovePathRecursively(options.bundle_output_path);
637
+ if (!remove_status) {
638
+ remove(temp_patched.c_str());
639
+ return remove_status;
640
+ }
641
+ }
642
+ if (rename(temp_patched.c_str(), options.bundle_output_path.c_str()) != 0) {
643
+ Status rename_status = MakeErrnoStatus(
644
+ "Failed to move patched bundle into place " + options.bundle_output_path);
645
+ remove(temp_patched.c_str());
646
+ return rename_status;
647
+ }
648
+ return Status::Ok();
649
+ }
650
+
651
+ } // namespace
652
+
653
+ Status ApplyPatchFromFileSource(
654
+ const FileSourcePatchOptions& options,
655
+ const BundlePatcher& bundle_patcher) {
656
+ Status manifest_status = ValidateManifest(options.manifest);
657
+ if (!manifest_status) {
658
+ return manifest_status;
659
+ }
660
+
661
+ Status bundle_status =
662
+ options.bundle_hbc_transform_meta.empty()
663
+ ? bundle_patcher.Apply(
664
+ options.origin_bundle_path,
665
+ options.bundle_patch_path,
666
+ options.bundle_output_path)
667
+ : ApplyBundlePatchWithHbcTransform(options, bundle_patcher);
668
+ if (!bundle_status) {
669
+ return bundle_status;
670
+ }
671
+
672
+ for (const CopyOperation& copy : options.manifest.copies) {
673
+ const std::string source_path = JoinPath(options.source_root, copy.from);
674
+ if (copy.has_expected_crc) {
675
+ uint32_t actual_crc = 0;
676
+ if (!digest::Crc32File(source_path, &actual_crc)) {
677
+ return Status::Error("Failed to read copy source " + source_path);
678
+ }
679
+ if (actual_crc != copy.expected_crc) {
680
+ // Rebuilt binary with drifted content at an unchanged path. Fail the
681
+ // patch — the caller falls back to the full package; never install a
682
+ // resource whose bytes differ from what the diff was generated against.
683
+ return Status::Error(
684
+ "Copy source content mismatch (crc32): " + copy.from);
685
+ }
686
+ }
687
+ Status copy_status = CopyFile(
688
+ source_path,
689
+ JoinPath(options.target_root, copy.to),
690
+ true);
691
+ if (!copy_status) {
692
+ return copy_status;
693
+ }
694
+ }
695
+
696
+ if (!options.enable_merge) {
697
+ return Status::Ok();
698
+ }
699
+
700
+ const std::string normalized_merge_subdir =
701
+ TrimTrailingSlash(options.merge_source_subdir);
702
+ const std::string merge_source_root =
703
+ normalized_merge_subdir.empty()
704
+ ? options.source_root
705
+ : JoinPath(options.source_root, normalized_merge_subdir);
706
+ const std::string merge_target_root =
707
+ normalized_merge_subdir.empty()
708
+ ? options.target_root
709
+ : JoinPath(options.target_root, normalized_merge_subdir);
710
+
711
+ DeleteMatcher deletes(options.manifest.deletes);
712
+ Status dir_status = EnsureDirectory(merge_target_root);
713
+ if (!dir_status) {
714
+ return dir_status;
715
+ }
716
+
717
+ return MergeDirectoryRecursively(
718
+ merge_source_root,
719
+ merge_target_root,
720
+ normalized_merge_subdir,
721
+ deletes);
722
+ }
723
+
724
+ Status CleanupOldEntries(
725
+ const std::string& root_dir,
726
+ const std::string& keep_current,
727
+ const std::string& keep_previous,
728
+ int max_age_days,
729
+ std::time_t now) {
730
+ return CleanupOldEntries(
731
+ root_dir, std::vector<std::string>{keep_current, keep_previous},
732
+ max_age_days, now);
733
+ }
734
+
735
+ Status CleanupOldEntries(
736
+ const std::string& root_dir,
737
+ const std::vector<std::string>& keep_names,
738
+ int max_age_days,
739
+ std::time_t now) {
740
+ DIR* dir = opendir(root_dir.c_str());
741
+ if (!dir) {
742
+ if (errno == ENOENT) {
743
+ return Status::Ok();
744
+ }
745
+ return MakeErrnoStatus("Failed to open cleanup directory " + root_dir);
746
+ }
747
+
748
+ const std::time_t effective_now = now > 0 ? now : std::time(nullptr);
749
+ const std::time_t max_age_seconds =
750
+ static_cast<std::time_t>(max_age_days) * 24 * 60 * 60;
751
+
752
+ struct dirent* entry = nullptr;
753
+ while ((entry = readdir(dir)) != nullptr) {
754
+ const std::string name = entry->d_name;
755
+ if (name == "." || name == ".." || (!name.empty() && name[0] == '.')) {
756
+ continue;
757
+ }
758
+ if (std::find(keep_names.begin(), keep_names.end(), name) !=
759
+ keep_names.end()) {
760
+ continue;
761
+ }
762
+
763
+ const std::string entry_path = JoinPath(root_dir, name);
764
+ struct stat st;
765
+ if (stat(entry_path.c_str(), &st) != 0) {
766
+ closedir(dir);
767
+ return MakeErrnoStatus("Failed to stat cleanup path " + entry_path);
768
+ }
769
+
770
+ if (effective_now - st.st_mtime < max_age_seconds) {
771
+ continue;
772
+ }
773
+
774
+ Status remove_status = RemovePathRecursively(entry_path);
775
+ if (!remove_status) {
776
+ closedir(dir);
777
+ return remove_status;
778
+ }
779
+ }
780
+
781
+ closedir(dir);
782
+ return Status::Ok();
783
+ }
784
+
785
+ bool IsSafeRelativePath(const std::string& path) {
786
+ if (path.empty()) {
787
+ return false;
788
+ }
789
+ if (path[0] == '/' || path.find('\\') != std::string::npos) {
790
+ return false;
791
+ }
792
+
793
+ const std::vector<std::string> segments = SplitPath(path);
794
+ for (const std::string& segment : segments) {
795
+ if (segment.empty() || segment == "." || segment == "..") {
796
+ return false;
797
+ }
798
+ for (const char ch : segment) {
799
+ // Control bytes (NUL above all) are never legitimate in a manifest
800
+ // path: everything downstream goes through c_str(), so an embedded NUL
801
+ // would silently truncate "..\0x" to ".." and escape the staging root
802
+ // (reachable through the HarmonyOS NAPI string bridge, which preserves
803
+ // NULs). Non-ASCII UTF-8 (>= 0x80) stays allowed.
804
+ const unsigned char byte = static_cast<unsigned char>(ch);
805
+ if (byte < 0x20 || byte == 0x7f) {
806
+ return false;
807
+ }
808
+ }
809
+ }
810
+ return true;
811
+ }
812
+
813
+ Status HdiffBundlePatcher::Apply(
814
+ const std::string& origin_bundle_path,
815
+ const std::string& bundle_patch_path,
816
+ const std::string& destination_bundle_path) const {
817
+ if (!PathExists(origin_bundle_path)) {
818
+ return Status::Error("Origin bundle not found: " + origin_bundle_path);
819
+ }
820
+ if (!PathExists(bundle_patch_path)) {
821
+ return Status::Error("Bundle patch not found: " + bundle_patch_path);
822
+ }
823
+
824
+ const std::string parent = Dirname(destination_bundle_path);
825
+ Status dir_status = EnsureDirectory(parent);
826
+ if (!dir_status) {
827
+ return dir_status;
828
+ }
829
+
830
+ if (PathExists(destination_bundle_path)) {
831
+ Status remove_status = RemovePathRecursively(destination_bundle_path);
832
+ if (!remove_status) {
833
+ return remove_status;
834
+ }
835
+ }
836
+
837
+ int result = hpatch_by_file(
838
+ origin_bundle_path.c_str(),
839
+ destination_bundle_path.c_str(),
840
+ bundle_patch_path.c_str());
841
+ if (result != 0) {
842
+ return Status::Error(
843
+ "Failed to apply bundle patch, hpatch error " + IntToString(result));
844
+ }
845
+ return Status::Ok();
846
+ }
847
+
848
+ } // namespace patch
849
+ } // namespace pakta