frida 16.2.1 → 16.2.2

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 (386) hide show
  1. package/BSDmakefile +6 -0
  2. package/Makefile +16 -0
  3. package/README.md +14 -11
  4. package/configure +18 -0
  5. package/configure.bat +22 -0
  6. package/dist/native.js +0 -8
  7. package/lib/application.ts +98 -0
  8. package/lib/authentication.ts +3 -0
  9. package/lib/build.py +50 -0
  10. package/lib/bus.ts +30 -0
  11. package/lib/cancellable.ts +33 -0
  12. package/lib/child.ts +15 -0
  13. package/lib/crash.ts +11 -0
  14. package/lib/device.ts +329 -0
  15. package/lib/device_manager.ts +69 -0
  16. package/lib/endpoint_parameters.ts +56 -0
  17. package/lib/icon.ts +15 -0
  18. package/lib/index.ts +311 -0
  19. package/lib/iostream.ts +78 -0
  20. package/lib/meson.build +53 -0
  21. package/lib/native.ts +9 -0
  22. package/lib/portal_membership.ts +10 -0
  23. package/lib/portal_service.ts +105 -0
  24. package/lib/process.ts +57 -0
  25. package/lib/relay.ts +44 -0
  26. package/lib/script.ts +352 -0
  27. package/lib/session.ts +113 -0
  28. package/lib/signals.ts +45 -0
  29. package/lib/socket_address.ts +35 -0
  30. package/lib/spawn.ts +4 -0
  31. package/lib/system_parameters.ts +78 -0
  32. package/make.bat +23 -0
  33. package/meson.build +160 -0
  34. package/meson.options +11 -0
  35. package/package.json +27 -6
  36. package/releng/deps.py +1133 -0
  37. package/releng/deps.toml +391 -0
  38. package/releng/devkit-assets/frida-core-example-unix.c +188 -0
  39. package/releng/devkit-assets/frida-core-example-windows.c +197 -0
  40. package/releng/devkit-assets/frida-core-example.sln +28 -0
  41. package/releng/devkit-assets/frida-core-example.vcxproj +157 -0
  42. package/releng/devkit-assets/frida-core-example.vcxproj.filters +27 -0
  43. package/releng/devkit-assets/frida-gum-example-unix.c +122 -0
  44. package/releng/devkit-assets/frida-gum-example-windows.c +132 -0
  45. package/releng/devkit-assets/frida-gum-example.sln +28 -0
  46. package/releng/devkit-assets/frida-gum-example.vcxproj +157 -0
  47. package/releng/devkit-assets/frida-gum-example.vcxproj.filters +27 -0
  48. package/releng/devkit-assets/frida-gumjs-example-unix.c +84 -0
  49. package/releng/devkit-assets/frida-gumjs-example-windows.c +91 -0
  50. package/releng/devkit-assets/frida-gumjs-example.sln +28 -0
  51. package/releng/devkit-assets/frida-gumjs-example.vcxproj +157 -0
  52. package/releng/devkit-assets/frida-gumjs-example.vcxproj.filters +27 -0
  53. package/releng/devkit.py +535 -0
  54. package/releng/env.py +420 -0
  55. package/releng/env_android.py +150 -0
  56. package/releng/env_apple.py +176 -0
  57. package/releng/env_generic.py +373 -0
  58. package/releng/frida_version.py +69 -0
  59. package/releng/machine_file.py +44 -0
  60. package/releng/machine_spec.py +290 -0
  61. package/releng/meson/meson.py +27 -0
  62. package/releng/meson/mesonbuild/__init__.py +0 -0
  63. package/releng/meson/mesonbuild/_pathlib.py +63 -0
  64. package/releng/meson/mesonbuild/_typing.py +69 -0
  65. package/releng/meson/mesonbuild/arglist.py +321 -0
  66. package/releng/meson/mesonbuild/ast/__init__.py +23 -0
  67. package/releng/meson/mesonbuild/ast/interpreter.py +441 -0
  68. package/releng/meson/mesonbuild/ast/introspection.py +374 -0
  69. package/releng/meson/mesonbuild/ast/postprocess.py +109 -0
  70. package/releng/meson/mesonbuild/ast/printer.py +620 -0
  71. package/releng/meson/mesonbuild/ast/visitor.py +161 -0
  72. package/releng/meson/mesonbuild/backend/__init__.py +0 -0
  73. package/releng/meson/mesonbuild/backend/backends.py +2047 -0
  74. package/releng/meson/mesonbuild/backend/ninjabackend.py +3808 -0
  75. package/releng/meson/mesonbuild/backend/nonebackend.py +26 -0
  76. package/releng/meson/mesonbuild/backend/vs2010backend.py +2078 -0
  77. package/releng/meson/mesonbuild/backend/vs2012backend.py +35 -0
  78. package/releng/meson/mesonbuild/backend/vs2013backend.py +34 -0
  79. package/releng/meson/mesonbuild/backend/vs2015backend.py +35 -0
  80. package/releng/meson/mesonbuild/backend/vs2017backend.py +59 -0
  81. package/releng/meson/mesonbuild/backend/vs2019backend.py +54 -0
  82. package/releng/meson/mesonbuild/backend/vs2022backend.py +54 -0
  83. package/releng/meson/mesonbuild/backend/xcodebackend.py +1781 -0
  84. package/releng/meson/mesonbuild/build.py +3249 -0
  85. package/releng/meson/mesonbuild/cargo/__init__.py +5 -0
  86. package/releng/meson/mesonbuild/cargo/builder.py +238 -0
  87. package/releng/meson/mesonbuild/cargo/cfg.py +274 -0
  88. package/releng/meson/mesonbuild/cargo/interpreter.py +733 -0
  89. package/releng/meson/mesonbuild/cargo/manifest.py +227 -0
  90. package/releng/meson/mesonbuild/cargo/version.py +95 -0
  91. package/releng/meson/mesonbuild/cmake/__init__.py +28 -0
  92. package/releng/meson/mesonbuild/cmake/common.py +331 -0
  93. package/releng/meson/mesonbuild/cmake/data/__init__.py +0 -0
  94. package/releng/meson/mesonbuild/cmake/data/preload.cmake +82 -0
  95. package/releng/meson/mesonbuild/cmake/executor.py +241 -0
  96. package/releng/meson/mesonbuild/cmake/fileapi.py +324 -0
  97. package/releng/meson/mesonbuild/cmake/generator.py +186 -0
  98. package/releng/meson/mesonbuild/cmake/interpreter.py +1267 -0
  99. package/releng/meson/mesonbuild/cmake/toolchain.py +248 -0
  100. package/releng/meson/mesonbuild/cmake/traceparser.py +814 -0
  101. package/releng/meson/mesonbuild/cmake/tracetargets.py +161 -0
  102. package/releng/meson/mesonbuild/compilers/__init__.py +86 -0
  103. package/releng/meson/mesonbuild/compilers/asm.py +307 -0
  104. package/releng/meson/mesonbuild/compilers/c.py +788 -0
  105. package/releng/meson/mesonbuild/compilers/c_function_attributes.py +143 -0
  106. package/releng/meson/mesonbuild/compilers/compilers.py +1388 -0
  107. package/releng/meson/mesonbuild/compilers/cpp.py +1035 -0
  108. package/releng/meson/mesonbuild/compilers/cs.py +136 -0
  109. package/releng/meson/mesonbuild/compilers/cuda.py +806 -0
  110. package/releng/meson/mesonbuild/compilers/cython.py +91 -0
  111. package/releng/meson/mesonbuild/compilers/d.py +861 -0
  112. package/releng/meson/mesonbuild/compilers/detect.py +1396 -0
  113. package/releng/meson/mesonbuild/compilers/fortran.py +523 -0
  114. package/releng/meson/mesonbuild/compilers/java.py +113 -0
  115. package/releng/meson/mesonbuild/compilers/mixins/__init__.py +0 -0
  116. package/releng/meson/mesonbuild/compilers/mixins/arm.py +167 -0
  117. package/releng/meson/mesonbuild/compilers/mixins/ccrx.py +113 -0
  118. package/releng/meson/mesonbuild/compilers/mixins/clang.py +170 -0
  119. package/releng/meson/mesonbuild/compilers/mixins/clike.py +1330 -0
  120. package/releng/meson/mesonbuild/compilers/mixins/compcert.py +117 -0
  121. package/releng/meson/mesonbuild/compilers/mixins/elbrus.py +93 -0
  122. package/releng/meson/mesonbuild/compilers/mixins/emscripten.py +89 -0
  123. package/releng/meson/mesonbuild/compilers/mixins/gnu.py +629 -0
  124. package/releng/meson/mesonbuild/compilers/mixins/intel.py +167 -0
  125. package/releng/meson/mesonbuild/compilers/mixins/islinker.py +120 -0
  126. package/releng/meson/mesonbuild/compilers/mixins/metrowerks.py +279 -0
  127. package/releng/meson/mesonbuild/compilers/mixins/pgi.py +88 -0
  128. package/releng/meson/mesonbuild/compilers/mixins/ti.py +130 -0
  129. package/releng/meson/mesonbuild/compilers/mixins/visualstudio.py +458 -0
  130. package/releng/meson/mesonbuild/compilers/mixins/xc16.py +111 -0
  131. package/releng/meson/mesonbuild/compilers/objc.py +120 -0
  132. package/releng/meson/mesonbuild/compilers/objcpp.py +102 -0
  133. package/releng/meson/mesonbuild/compilers/rust.py +230 -0
  134. package/releng/meson/mesonbuild/compilers/swift.py +131 -0
  135. package/releng/meson/mesonbuild/compilers/vala.py +121 -0
  136. package/releng/meson/mesonbuild/coredata.py +1532 -0
  137. package/releng/meson/mesonbuild/dependencies/__init__.py +252 -0
  138. package/releng/meson/mesonbuild/dependencies/base.py +663 -0
  139. package/releng/meson/mesonbuild/dependencies/boost.py +1083 -0
  140. package/releng/meson/mesonbuild/dependencies/cmake.py +656 -0
  141. package/releng/meson/mesonbuild/dependencies/coarrays.py +80 -0
  142. package/releng/meson/mesonbuild/dependencies/configtool.py +163 -0
  143. package/releng/meson/mesonbuild/dependencies/cuda.py +295 -0
  144. package/releng/meson/mesonbuild/dependencies/data/CMakeLists.txt +102 -0
  145. package/releng/meson/mesonbuild/dependencies/data/CMakeListsLLVM.txt +204 -0
  146. package/releng/meson/mesonbuild/dependencies/data/CMakePathInfo.txt +31 -0
  147. package/releng/meson/mesonbuild/dependencies/data/__init__.py +0 -0
  148. package/releng/meson/mesonbuild/dependencies/detect.py +225 -0
  149. package/releng/meson/mesonbuild/dependencies/dev.py +707 -0
  150. package/releng/meson/mesonbuild/dependencies/dub.py +424 -0
  151. package/releng/meson/mesonbuild/dependencies/factory.py +146 -0
  152. package/releng/meson/mesonbuild/dependencies/framework.py +111 -0
  153. package/releng/meson/mesonbuild/dependencies/hdf5.py +168 -0
  154. package/releng/meson/mesonbuild/dependencies/misc.py +618 -0
  155. package/releng/meson/mesonbuild/dependencies/mpi.py +231 -0
  156. package/releng/meson/mesonbuild/dependencies/pkgconfig.py +570 -0
  157. package/releng/meson/mesonbuild/dependencies/platform.py +52 -0
  158. package/releng/meson/mesonbuild/dependencies/python.py +431 -0
  159. package/releng/meson/mesonbuild/dependencies/qt.py +484 -0
  160. package/releng/meson/mesonbuild/dependencies/scalapack.py +142 -0
  161. package/releng/meson/mesonbuild/dependencies/ui.py +281 -0
  162. package/releng/meson/mesonbuild/depfile.py +82 -0
  163. package/releng/meson/mesonbuild/envconfig.py +480 -0
  164. package/releng/meson/mesonbuild/environment.py +987 -0
  165. package/releng/meson/mesonbuild/interpreter/__init__.py +47 -0
  166. package/releng/meson/mesonbuild/interpreter/compiler.py +900 -0
  167. package/releng/meson/mesonbuild/interpreter/dependencyfallbacks.py +386 -0
  168. package/releng/meson/mesonbuild/interpreter/interpreter.py +3595 -0
  169. package/releng/meson/mesonbuild/interpreter/interpreterobjects.py +1096 -0
  170. package/releng/meson/mesonbuild/interpreter/kwargs.py +479 -0
  171. package/releng/meson/mesonbuild/interpreter/mesonmain.py +487 -0
  172. package/releng/meson/mesonbuild/interpreter/primitives/__init__.py +29 -0
  173. package/releng/meson/mesonbuild/interpreter/primitives/array.py +108 -0
  174. package/releng/meson/mesonbuild/interpreter/primitives/boolean.py +52 -0
  175. package/releng/meson/mesonbuild/interpreter/primitives/dict.py +88 -0
  176. package/releng/meson/mesonbuild/interpreter/primitives/integer.py +86 -0
  177. package/releng/meson/mesonbuild/interpreter/primitives/range.py +38 -0
  178. package/releng/meson/mesonbuild/interpreter/primitives/string.py +247 -0
  179. package/releng/meson/mesonbuild/interpreter/type_checking.py +853 -0
  180. package/releng/meson/mesonbuild/interpreterbase/__init__.py +126 -0
  181. package/releng/meson/mesonbuild/interpreterbase/_unholder.py +25 -0
  182. package/releng/meson/mesonbuild/interpreterbase/baseobjects.py +174 -0
  183. package/releng/meson/mesonbuild/interpreterbase/decorators.py +806 -0
  184. package/releng/meson/mesonbuild/interpreterbase/disabler.py +35 -0
  185. package/releng/meson/mesonbuild/interpreterbase/exceptions.py +22 -0
  186. package/releng/meson/mesonbuild/interpreterbase/helpers.py +67 -0
  187. package/releng/meson/mesonbuild/interpreterbase/interpreterbase.py +665 -0
  188. package/releng/meson/mesonbuild/interpreterbase/operator.py +32 -0
  189. package/releng/meson/mesonbuild/linkers/__init__.py +20 -0
  190. package/releng/meson/mesonbuild/linkers/base.py +39 -0
  191. package/releng/meson/mesonbuild/linkers/detect.py +229 -0
  192. package/releng/meson/mesonbuild/linkers/linkers.py +1614 -0
  193. package/releng/meson/mesonbuild/mcompile.py +380 -0
  194. package/releng/meson/mesonbuild/mconf.py +368 -0
  195. package/releng/meson/mesonbuild/mdevenv.py +234 -0
  196. package/releng/meson/mesonbuild/mdist.py +376 -0
  197. package/releng/meson/mesonbuild/mesondata.py +38 -0
  198. package/releng/meson/mesonbuild/mesonlib.py +23 -0
  199. package/releng/meson/mesonbuild/mesonmain.py +289 -0
  200. package/releng/meson/mesonbuild/minit.py +204 -0
  201. package/releng/meson/mesonbuild/minstall.py +864 -0
  202. package/releng/meson/mesonbuild/mintro.py +667 -0
  203. package/releng/meson/mesonbuild/mlog.py +542 -0
  204. package/releng/meson/mesonbuild/modules/__init__.py +270 -0
  205. package/releng/meson/mesonbuild/modules/cmake.py +442 -0
  206. package/releng/meson/mesonbuild/modules/cuda.py +377 -0
  207. package/releng/meson/mesonbuild/modules/dlang.py +117 -0
  208. package/releng/meson/mesonbuild/modules/external_project.py +306 -0
  209. package/releng/meson/mesonbuild/modules/fs.py +323 -0
  210. package/releng/meson/mesonbuild/modules/gnome.py +2215 -0
  211. package/releng/meson/mesonbuild/modules/hotdoc.py +487 -0
  212. package/releng/meson/mesonbuild/modules/i18n.py +405 -0
  213. package/releng/meson/mesonbuild/modules/icestorm.py +123 -0
  214. package/releng/meson/mesonbuild/modules/java.py +112 -0
  215. package/releng/meson/mesonbuild/modules/keyval.py +65 -0
  216. package/releng/meson/mesonbuild/modules/modtest.py +33 -0
  217. package/releng/meson/mesonbuild/modules/pkgconfig.py +744 -0
  218. package/releng/meson/mesonbuild/modules/python.py +556 -0
  219. package/releng/meson/mesonbuild/modules/python3.py +85 -0
  220. package/releng/meson/mesonbuild/modules/qt.py +621 -0
  221. package/releng/meson/mesonbuild/modules/qt4.py +23 -0
  222. package/releng/meson/mesonbuild/modules/qt5.py +23 -0
  223. package/releng/meson/mesonbuild/modules/qt6.py +22 -0
  224. package/releng/meson/mesonbuild/modules/rust.py +355 -0
  225. package/releng/meson/mesonbuild/modules/simd.py +114 -0
  226. package/releng/meson/mesonbuild/modules/sourceset.py +291 -0
  227. package/releng/meson/mesonbuild/modules/wayland.py +151 -0
  228. package/releng/meson/mesonbuild/modules/windows.py +207 -0
  229. package/releng/meson/mesonbuild/mparser.py +1114 -0
  230. package/releng/meson/mesonbuild/msetup.py +365 -0
  231. package/releng/meson/mesonbuild/msubprojects.py +764 -0
  232. package/releng/meson/mesonbuild/mtest.py +2201 -0
  233. package/releng/meson/mesonbuild/munstable_coredata.py +107 -0
  234. package/releng/meson/mesonbuild/optinterpreter.py +276 -0
  235. package/releng/meson/mesonbuild/programs.py +367 -0
  236. package/releng/meson/mesonbuild/rewriter.py +1075 -0
  237. package/releng/meson/mesonbuild/scripts/__init__.py +10 -0
  238. package/releng/meson/mesonbuild/scripts/clangformat.py +55 -0
  239. package/releng/meson/mesonbuild/scripts/clangtidy.py +30 -0
  240. package/releng/meson/mesonbuild/scripts/cleantrees.py +35 -0
  241. package/releng/meson/mesonbuild/scripts/cmake_run_ctgt.py +103 -0
  242. package/releng/meson/mesonbuild/scripts/cmd_or_ps.ps1 +17 -0
  243. package/releng/meson/mesonbuild/scripts/copy.py +19 -0
  244. package/releng/meson/mesonbuild/scripts/coverage.py +214 -0
  245. package/releng/meson/mesonbuild/scripts/delwithsuffix.py +27 -0
  246. package/releng/meson/mesonbuild/scripts/depfixer.py +495 -0
  247. package/releng/meson/mesonbuild/scripts/depscan.py +198 -0
  248. package/releng/meson/mesonbuild/scripts/dirchanger.py +20 -0
  249. package/releng/meson/mesonbuild/scripts/env2mfile.py +402 -0
  250. package/releng/meson/mesonbuild/scripts/externalproject.py +106 -0
  251. package/releng/meson/mesonbuild/scripts/gettext.py +86 -0
  252. package/releng/meson/mesonbuild/scripts/gtkdochelper.py +286 -0
  253. package/releng/meson/mesonbuild/scripts/hotdochelper.py +40 -0
  254. package/releng/meson/mesonbuild/scripts/itstool.py +77 -0
  255. package/releng/meson/mesonbuild/scripts/meson_exe.py +115 -0
  256. package/releng/meson/mesonbuild/scripts/msgfmthelper.py +29 -0
  257. package/releng/meson/mesonbuild/scripts/pycompile.py +54 -0
  258. package/releng/meson/mesonbuild/scripts/python_info.py +121 -0
  259. package/releng/meson/mesonbuild/scripts/regen_checker.py +55 -0
  260. package/releng/meson/mesonbuild/scripts/run_tool.py +58 -0
  261. package/releng/meson/mesonbuild/scripts/scanbuild.py +57 -0
  262. package/releng/meson/mesonbuild/scripts/symbolextractor.py +322 -0
  263. package/releng/meson/mesonbuild/scripts/tags.py +44 -0
  264. package/releng/meson/mesonbuild/scripts/test_loaded_modules.py +14 -0
  265. package/releng/meson/mesonbuild/scripts/uninstall.py +41 -0
  266. package/releng/meson/mesonbuild/scripts/vcstagger.py +35 -0
  267. package/releng/meson/mesonbuild/scripts/yasm.py +24 -0
  268. package/releng/meson/mesonbuild/templates/__init__.py +0 -0
  269. package/releng/meson/mesonbuild/templates/cpptemplates.py +143 -0
  270. package/releng/meson/mesonbuild/templates/cstemplates.py +90 -0
  271. package/releng/meson/mesonbuild/templates/ctemplates.py +126 -0
  272. package/releng/meson/mesonbuild/templates/cudatemplates.py +143 -0
  273. package/releng/meson/mesonbuild/templates/dlangtemplates.py +109 -0
  274. package/releng/meson/mesonbuild/templates/fortrantemplates.py +101 -0
  275. package/releng/meson/mesonbuild/templates/javatemplates.py +94 -0
  276. package/releng/meson/mesonbuild/templates/mesontemplates.py +70 -0
  277. package/releng/meson/mesonbuild/templates/objcpptemplates.py +126 -0
  278. package/releng/meson/mesonbuild/templates/objctemplates.py +126 -0
  279. package/releng/meson/mesonbuild/templates/rusttemplates.py +79 -0
  280. package/releng/meson/mesonbuild/templates/samplefactory.py +41 -0
  281. package/releng/meson/mesonbuild/templates/sampleimpl.py +160 -0
  282. package/releng/meson/mesonbuild/templates/valatemplates.py +82 -0
  283. package/releng/meson/mesonbuild/utils/__init__.py +0 -0
  284. package/releng/meson/mesonbuild/utils/core.py +166 -0
  285. package/releng/meson/mesonbuild/utils/platform.py +27 -0
  286. package/releng/meson/mesonbuild/utils/posix.py +32 -0
  287. package/releng/meson/mesonbuild/utils/universal.py +2445 -0
  288. package/releng/meson/mesonbuild/utils/vsenv.py +126 -0
  289. package/releng/meson/mesonbuild/utils/win32.py +29 -0
  290. package/releng/meson/mesonbuild/wrap/__init__.py +59 -0
  291. package/releng/meson/mesonbuild/wrap/wrap.py +846 -0
  292. package/releng/meson/mesonbuild/wrap/wraptool.py +198 -0
  293. package/releng/meson-scripts/BSDmakefile +6 -0
  294. package/releng/meson-scripts/Makefile +16 -0
  295. package/releng/meson-scripts/configure +18 -0
  296. package/releng/meson-scripts/configure.bat +22 -0
  297. package/releng/meson-scripts/make.bat +23 -0
  298. package/releng/meson_configure.py +506 -0
  299. package/releng/meson_make.py +131 -0
  300. package/releng/mkdevkit.py +107 -0
  301. package/releng/mkfatmacho.py +54 -0
  302. package/releng/post-process-oabi.py +97 -0
  303. package/releng/progress.py +14 -0
  304. package/releng/sync-from-upstream.py +185 -0
  305. package/releng/tomlkit/tomlkit/__init__.py +59 -0
  306. package/releng/tomlkit/tomlkit/_compat.py +22 -0
  307. package/releng/tomlkit/tomlkit/_types.py +83 -0
  308. package/releng/tomlkit/tomlkit/_utils.py +158 -0
  309. package/releng/tomlkit/tomlkit/api.py +308 -0
  310. package/releng/tomlkit/tomlkit/container.py +875 -0
  311. package/releng/tomlkit/tomlkit/exceptions.py +227 -0
  312. package/releng/tomlkit/tomlkit/items.py +1967 -0
  313. package/releng/tomlkit/tomlkit/parser.py +1141 -0
  314. package/releng/tomlkit/tomlkit/py.typed +0 -0
  315. package/releng/tomlkit/tomlkit/source.py +180 -0
  316. package/releng/tomlkit/tomlkit/toml_char.py +52 -0
  317. package/releng/tomlkit/tomlkit/toml_document.py +7 -0
  318. package/releng/tomlkit/tomlkit/toml_file.py +58 -0
  319. package/releng/winenv.py +140 -0
  320. package/scripts/adjust-version.py +19 -0
  321. package/scripts/detect-version.py +40 -0
  322. package/scripts/fetch-abi-bits.py +343 -0
  323. package/scripts/install.js +23 -0
  324. package/scripts/package.py +15 -0
  325. package/src/addon.cc +76 -0
  326. package/src/application.cc +148 -0
  327. package/src/application.h +31 -0
  328. package/src/authentication.cc +174 -0
  329. package/src/authentication.h +24 -0
  330. package/src/bus.cc +167 -0
  331. package/src/bus.h +33 -0
  332. package/src/cancellable.cc +117 -0
  333. package/src/cancellable.h +31 -0
  334. package/src/child.cc +150 -0
  335. package/src/child.h +32 -0
  336. package/src/crash.cc +122 -0
  337. package/src/crash.h +30 -0
  338. package/src/device.cc +1302 -0
  339. package/src/device.h +55 -0
  340. package/src/device_manager.cc +362 -0
  341. package/src/device_manager.h +35 -0
  342. package/src/endpoint_parameters.cc +171 -0
  343. package/src/endpoint_parameters.h +28 -0
  344. package/src/glib_context.cc +62 -0
  345. package/src/glib_context.h +29 -0
  346. package/src/glib_object.cc +25 -0
  347. package/src/glib_object.h +37 -0
  348. package/src/iostream.cc +247 -0
  349. package/src/iostream.h +30 -0
  350. package/src/meson.build +26 -0
  351. package/src/operation.h +94 -0
  352. package/src/portal_membership.cc +100 -0
  353. package/src/portal_membership.h +26 -0
  354. package/src/portal_service.cc +401 -0
  355. package/src/portal_service.h +40 -0
  356. package/src/process.cc +135 -0
  357. package/src/process.h +30 -0
  358. package/src/relay.cc +139 -0
  359. package/src/relay.h +31 -0
  360. package/src/runtime.cc +443 -0
  361. package/src/runtime.h +64 -0
  362. package/src/script.cc +301 -0
  363. package/src/script.h +36 -0
  364. package/src/session.cc +860 -0
  365. package/src/session.h +42 -0
  366. package/src/signals.cc +334 -0
  367. package/src/signals.h +47 -0
  368. package/src/spawn.cc +95 -0
  369. package/src/spawn.h +27 -0
  370. package/src/usage_monitor.h +117 -0
  371. package/src/uv_context.cc +118 -0
  372. package/src/uv_context.h +40 -0
  373. package/src/win_delay_load_hook.cc +63 -0
  374. package/subprojects/frida-core.wrap +8 -0
  375. package/subprojects/nan.wrap +9 -0
  376. package/subprojects/packagefiles/nan.patch +13 -0
  377. package/test/data/index.ts +13 -0
  378. package/test/data/unixvictim-linux-x86 +0 -0
  379. package/test/data/unixvictim-linux-x86_64 +0 -0
  380. package/test/data/unixvictim-macos +0 -0
  381. package/test/device.ts +27 -0
  382. package/test/device_manager.ts +16 -0
  383. package/test/labrat.ts +32 -0
  384. package/test/script.ts +176 -0
  385. package/test/session.ts +73 -0
  386. package/tsconfig.json +18 -0
@@ -0,0 +1,290 @@
1
+ from __future__ import annotations
2
+ from dataclasses import dataclass
3
+ import platform
4
+ import re
5
+ from typing import Optional
6
+
7
+
8
+ @dataclass
9
+ class MachineSpec:
10
+ os: str
11
+ arch: str
12
+ config: Optional[str] = None
13
+ triplet: Optional[str] = None
14
+
15
+ @staticmethod
16
+ def make_from_local_system() -> MachineSpec:
17
+ return MachineSpec(detect_os(), detect_arch())
18
+
19
+ @staticmethod
20
+ def parse(raw_spec: str) -> MachineSpec:
21
+ os = None
22
+ arch = None
23
+ config = None
24
+ triplet = None
25
+
26
+ tokens = raw_spec.split("-")
27
+ if len(tokens) in {3, 4}:
28
+ arch = tokens[0]
29
+ m = TARGET_TRIPLET_ARCH_PATTERN.match(arch)
30
+ if m is not None:
31
+ kernel = tokens[-2]
32
+ system = tokens[-1]
33
+
34
+ if kernel == "w64":
35
+ os = "windows"
36
+ elif kernel == "nto":
37
+ os = "qnx"
38
+ else:
39
+ os = kernel
40
+
41
+ if arch[0] == "i":
42
+ arch = "x86"
43
+ elif arch == "arm":
44
+ if system == "gnueabihf":
45
+ arch = "armhf"
46
+ elif os == "qnx" and system.endswith("eabi"):
47
+ arch = "armeabi"
48
+ elif arch == "aarch64":
49
+ arch = "arm64"
50
+
51
+ if system.startswith("musl"):
52
+ config = "musl"
53
+ elif kernel == "w64":
54
+ config = "mingw"
55
+
56
+ triplet = raw_spec
57
+
58
+ if os is None:
59
+ os, arch, *rest = tokens
60
+ if rest:
61
+ assert len(rest) == 1
62
+ config = rest[0]
63
+
64
+ return MachineSpec(os, arch, config, triplet)
65
+
66
+ def evolve(self,
67
+ os: Optional[str] = None,
68
+ arch: Optional[str] = None,
69
+ config: Optional[str] = None,
70
+ triplet: Optional[str] = None) -> MachineSpec:
71
+ return MachineSpec(
72
+ os if os is not None else self.os,
73
+ arch if arch is not None else self.arch,
74
+ config if config is not None else self.config,
75
+ triplet if triplet is not None else self.triplet,
76
+ )
77
+
78
+ def default_missing(self, recommended_vscrt: Optional[str] = None) -> MachineSpec:
79
+ config = self.config
80
+ if config is None and self.toolchain_is_msvc:
81
+ if recommended_vscrt is not None:
82
+ config = recommended_vscrt
83
+ else:
84
+ config = "mt"
85
+ return self.evolve(config=config)
86
+
87
+ def maybe_adapt_to_host(self, host_machine: MachineSpec) -> MachineSpec:
88
+ if self.identifier == host_machine.identifier and host_machine.triplet is not None:
89
+ return host_machine
90
+ if self.os == "windows":
91
+ if self.arch == "x86_64" and host_machine.arch == "x86":
92
+ return host_machine
93
+ if self.arch == host_machine.arch:
94
+ return host_machine
95
+ return self
96
+
97
+ @property
98
+ def identifier(self) -> str:
99
+ parts = [self.os, self.arch]
100
+ if self.config is not None:
101
+ parts += [self.config]
102
+ return "-".join(parts)
103
+
104
+ @property
105
+ def os_dash_arch(self) -> str:
106
+ return f"{self.os}-{self.arch}"
107
+
108
+ @property
109
+ def os_dash_config(self) -> str:
110
+ parts = [self.os]
111
+ if self.config is not None:
112
+ parts += [self.config]
113
+ return "-".join(parts)
114
+
115
+ @property
116
+ def config_is_optimized(self) -> bool:
117
+ if self.toolchain_is_msvc:
118
+ return self.config in {"md", "mt"}
119
+ return True
120
+
121
+ @property
122
+ def meson_optimization_options(self) -> list[str]:
123
+ if self.config_is_optimized:
124
+ optimization = "s"
125
+ ndebug = "true"
126
+ else:
127
+ optimization = "0"
128
+ ndebug = "false"
129
+ return [
130
+ f"-Doptimization={optimization}",
131
+ f"-Db_ndebug={ndebug}",
132
+ ]
133
+
134
+ @property
135
+ def executable_suffix(self) -> str:
136
+ return ".exe" if self.os == "windows" else ""
137
+
138
+ @property
139
+ def msvc_platform(self) -> str:
140
+ return "x64" if self.arch == "x86_64" else "x86"
141
+
142
+ @property
143
+ def is_apple(self) -> str:
144
+ return self.os in {"macos", "ios", "watchos", "tvos"}
145
+
146
+ @property
147
+ def system(self) -> str:
148
+ return "darwin" if self.is_apple else self.os
149
+
150
+ @property
151
+ def subsystem(self) -> str:
152
+ return self.os_dash_config if self.is_apple else self.os
153
+
154
+ @property
155
+ def kernel(self) -> str:
156
+ return KERNELS.get(self.os, self.os)
157
+
158
+ @property
159
+ def cpu_family(self) -> str:
160
+ arch = self.arch
161
+ return CPU_FAMILIES.get(arch, arch)
162
+
163
+ @property
164
+ def cpu(self) -> str:
165
+ arch = self.arch
166
+
167
+ mappings_to_search = [
168
+ CPU_TYPES_PER_OS_OVERRIDES.get(self.os, {}),
169
+ CPU_TYPES,
170
+ ]
171
+ for m in mappings_to_search:
172
+ cpu = m.get(arch, None)
173
+ if cpu is not None:
174
+ return cpu
175
+
176
+ return arch
177
+
178
+ @property
179
+ def endian(self) -> str:
180
+ return "big" if self.arch in BIG_ENDIAN_ARCHS else "little"
181
+
182
+ @property
183
+ def pointer_size(self) -> int:
184
+ arch = self.arch
185
+ if arch in {"x86_64", "s390x"}:
186
+ return 8
187
+ if arch.startswith("arm64") or arch.startswith("mips64"):
188
+ return 8
189
+ return 4
190
+
191
+ @property
192
+ def libdatadir(self) -> str:
193
+ return "libdata" if self.os == "freebsd" else "lib"
194
+
195
+ @property
196
+ def toolchain_is_msvc(self) -> bool:
197
+ return self.os == "windows" and self.config != "mingw"
198
+
199
+ @property
200
+ def toolchain_can_strip(self) -> bool:
201
+ return not self.toolchain_is_msvc
202
+
203
+ def __eq__(self, other):
204
+ if isinstance(other, MachineSpec):
205
+ return other.identifier == self.identifier
206
+ return False
207
+
208
+
209
+ def detect_os() -> str:
210
+ os = platform.system().lower()
211
+ if os == "darwin":
212
+ os = "macos"
213
+ return os
214
+
215
+
216
+ def detect_arch() -> str:
217
+ arch = platform.machine().lower()
218
+ return ARCHS.get(arch, arch)
219
+
220
+
221
+ ARCHS = {
222
+ "amd64": "x86_64",
223
+ "armv7l": "armhf",
224
+ "aarch64": "arm64",
225
+ }
226
+
227
+ KERNELS = {
228
+ "windows": "nt",
229
+
230
+ "macos": "xnu",
231
+ "ios": "xnu",
232
+ "watchos": "xnu",
233
+ "tvos": "xnu",
234
+
235
+ "qnx": "nto",
236
+ }
237
+
238
+ CPU_FAMILIES = {
239
+ "armbe8": "arm",
240
+ "armeabi": "arm",
241
+ "armhf": "arm",
242
+
243
+ "arm64": "aarch64",
244
+ "arm64e": "aarch64",
245
+ "arm64eoabi": "aarch64",
246
+
247
+ "mipsel": "mips",
248
+ "mips64el": "mips64",
249
+ }
250
+
251
+ CPU_TYPES = {
252
+ "arm": "armv7",
253
+ "armbe8": "armv6",
254
+ "armhf": "armv7hf",
255
+ "armeabi": "armv7eabi",
256
+
257
+ "arm64": "aarch64",
258
+ "arm64e": "aarch64",
259
+ "arm64eoabi": "aarch64",
260
+ }
261
+
262
+ CPU_TYPES_PER_OS_OVERRIDES = {
263
+ "linux": {
264
+ "arm": "armv5t",
265
+ "armbe8": "armv6t",
266
+ "armhf": "armv7a",
267
+
268
+ "mips": "mips1",
269
+ "mipsel": "mips1",
270
+
271
+ "mips64": "mips64r2",
272
+ "mips64el": "mips64r2",
273
+ },
274
+ "android": {
275
+ "x86": "i686",
276
+ },
277
+ "qnx": {
278
+ "arm": "armv6",
279
+ "armeabi": "armv7",
280
+ },
281
+ }
282
+
283
+ BIG_ENDIAN_ARCHS = {
284
+ "armbe8",
285
+ "mips",
286
+ "mips64",
287
+ "s390x",
288
+ }
289
+
290
+ TARGET_TRIPLET_ARCH_PATTERN = re.compile(r"^(i.86|x86_64|arm(v\w+)?|aarch64|mips\w*|s390x)$")
@@ -0,0 +1,27 @@
1
+ #!/usr/bin/env python3
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # Copyright 2016 The Meson development team
4
+ # Copyright © 2023 Intel Corporation
5
+
6
+ import sys
7
+
8
+ # Check python version before importing anything else, we might have an older
9
+ # Python that would error on f-string syntax for example.
10
+ if sys.version_info < (3, 7):
11
+ print('Meson works correctly only with python 3.7+.')
12
+ print('You have python {}.'.format(sys.version))
13
+ print('Please update your environment')
14
+ sys.exit(1)
15
+
16
+ from pathlib import Path
17
+
18
+ # If we're run uninstalled, add the script directory to sys.path to ensure that
19
+ # we always import the correct mesonbuild modules even if PYTHONPATH is mangled
20
+ meson_exe = Path(sys.argv[0]).resolve()
21
+ if (meson_exe.parent / 'mesonbuild').is_dir():
22
+ sys.path.insert(0, str(meson_exe.parent))
23
+
24
+ from mesonbuild import mesonmain
25
+
26
+ if __name__ == '__main__':
27
+ sys.exit(mesonmain.main())
File without changes
@@ -0,0 +1,63 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2021 The Meson development team
3
+
4
+ '''
5
+ This module soly exists to work around a pathlib.resolve bug on
6
+ certain Windows systems:
7
+
8
+ https://github.com/mesonbuild/meson/issues/7295
9
+ https://bugs.python.org/issue31842
10
+
11
+ It should **never** be used directly. Instead, it is automatically
12
+ used when `import pathlib` is used. This is achieved by messing with
13
+ `sys.modules['pathlib']` in mesonmain.
14
+
15
+ Additionally, the sole purpose of this module is to work around a
16
+ python bug. This only bugfixes to pathlib functions and classes are
17
+ allowed here. Finally, this file should be removed once all upstream
18
+ python bugs are fixed and it is OK to tell our users to "just upgrade
19
+ python".
20
+ '''
21
+ from __future__ import annotations
22
+
23
+ import pathlib
24
+ import os
25
+ import platform
26
+
27
+ __all__ = [
28
+ 'PurePath',
29
+ 'PurePosixPath',
30
+ 'PureWindowsPath',
31
+ 'Path',
32
+ ]
33
+
34
+ PurePath = pathlib.PurePath
35
+ PurePosixPath = pathlib.PurePosixPath
36
+ PureWindowsPath = pathlib.PureWindowsPath
37
+
38
+ # Only patch on platforms where the bug occurs
39
+ if platform.system().lower() in {'windows'}:
40
+ # Can not directly inherit from pathlib.Path because the __new__
41
+ # operator of pathlib.Path() returns a {Posix,Windows}Path object.
42
+ class Path(type(pathlib.Path())):
43
+ def resolve(self, strict: bool = False) -> 'Path':
44
+ '''
45
+ Work around a resolve bug on certain Windows systems:
46
+
47
+ https://github.com/mesonbuild/meson/issues/7295
48
+ https://bugs.python.org/issue31842
49
+ '''
50
+
51
+ try:
52
+ return super().resolve(strict=strict)
53
+ except OSError:
54
+ return Path(os.path.normpath(self))
55
+ else:
56
+ Path = pathlib.Path
57
+ PosixPath = pathlib.PosixPath
58
+ WindowsPath = pathlib.WindowsPath
59
+
60
+ __all__ += [
61
+ 'PosixPath',
62
+ 'WindowsPath',
63
+ ]
@@ -0,0 +1,69 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2020 The Meson development team
3
+ # Copyright © 2020-2023 Intel Corporation
4
+
5
+ """Meson specific typing helpers.
6
+
7
+ Holds typing helper classes, such as the ImmutableProtocol classes
8
+ """
9
+
10
+ __all__ = [
11
+ 'Protocol',
12
+ 'ImmutableListProtocol'
13
+ ]
14
+
15
+ import typing
16
+
17
+ # We can change this to typing when we require python 3.8
18
+ from typing_extensions import Protocol
19
+
20
+
21
+ T = typing.TypeVar('T')
22
+
23
+
24
+ class StringProtocol(Protocol):
25
+ def __str__(self) -> str: ...
26
+
27
+ class SizedStringProtocol(Protocol, StringProtocol, typing.Sized):
28
+ pass
29
+
30
+ class ImmutableListProtocol(Protocol[T]):
31
+
32
+ """A protocol used in cases where a list is returned, but should not be
33
+ mutated.
34
+
35
+ This provides all of the methods of a Sequence, as well as copy(). copy()
36
+ returns a list, which allows mutation as it's a copy and that's (hopefully)
37
+ safe.
38
+
39
+ One particular case this is important is for cached values, since python is
40
+ a pass-by-reference language.
41
+ """
42
+
43
+ def __iter__(self) -> typing.Iterator[T]: ...
44
+
45
+ @typing.overload
46
+ def __getitem__(self, index: int) -> T: ...
47
+ @typing.overload
48
+ def __getitem__(self, index: slice) -> typing.List[T]: ...
49
+
50
+ def __contains__(self, item: T) -> bool: ...
51
+
52
+ def __reversed__(self) -> typing.Iterator[T]: ...
53
+
54
+ def __len__(self) -> int: ...
55
+
56
+ def __add__(self, other: typing.List[T]) -> typing.List[T]: ...
57
+
58
+ def __eq__(self, other: typing.Any) -> bool: ...
59
+ def __ne__(self, other: typing.Any) -> bool: ...
60
+ def __le__(self, other: typing.Any) -> bool: ...
61
+ def __lt__(self, other: typing.Any) -> bool: ...
62
+ def __gt__(self, other: typing.Any) -> bool: ...
63
+ def __ge__(self, other: typing.Any) -> bool: ...
64
+
65
+ def count(self, item: T) -> int: ...
66
+
67
+ def index(self, item: T) -> int: ...
68
+
69
+ def copy(self) -> typing.List[T]: ...