frida 17.5.1 → 17.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/Makefile +2 -2
- package/package.json +1 -1
- package/releng/deps.toml +5 -5
- package/releng/frida_version.py +57 -21
- package/releng/machine_spec.py +1 -1
- package/releng/meson/mesonbuild/compilers/swift.py +6 -1
- package/releng/meson/mesonbuild/interpreter/interpreter.py +1 -1
- package/releng/sync-from-upstream.py +1 -0
- package/src/frida_bindgen/__pycache__/__init__.cpython-312.pyc +0 -0
- package/src/frida_bindgen/__pycache__/__main__.cpython-312.pyc +0 -0
- package/src/frida_bindgen/__pycache__/cli.cpython-312.pyc +0 -0
- package/src/frida_bindgen/__pycache__/codegen.cpython-312.pyc +0 -0
- package/src/frida_bindgen/__pycache__/customization.cpython-312.pyc +0 -0
- package/src/frida_bindgen/__pycache__/loader.cpython-312.pyc +0 -0
- package/src/frida_bindgen/__pycache__/model.cpython-312.pyc +0 -0
- package/src/frida_bindgen/assets/codegen_helpers.c +17 -4
- package/subprojects/frida-core.wrap +1 -1
package/build/Makefile
CHANGED
|
@@ -2,8 +2,8 @@ PYTHON ?= $(shell which python3 >/dev/null && echo python3 || echo python)
|
|
|
2
2
|
|
|
3
3
|
all $(MAKECMDGOALS):
|
|
4
4
|
@$(PYTHON) \
|
|
5
|
-
-c "import sys; sys.path.insert(0, r'/home/runner/work/frida/frida
|
|
6
|
-
/home/runner/work/frida/frida
|
|
5
|
+
-c "import sys; sys.path.insert(0, r'/home/runner/work/frida-node/frida-node'); from releng.meson_make import main; main()" \
|
|
6
|
+
/home/runner/work/frida-node/frida-node \
|
|
7
7
|
. \
|
|
8
8
|
$(MAKECMDGOALS)
|
|
9
9
|
|
package/package.json
CHANGED
package/releng/deps.toml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
[dependencies]
|
|
2
|
-
version = "
|
|
2
|
+
version = "20260106"
|
|
3
3
|
bootstrap_version = "20250801"
|
|
4
4
|
|
|
5
5
|
[ninja]
|
|
@@ -65,7 +65,7 @@ options = [
|
|
|
65
65
|
[selinux]
|
|
66
66
|
when = "machine.os == 'android'"
|
|
67
67
|
name = "SELinux Userspace"
|
|
68
|
-
version = "
|
|
68
|
+
version = "b7c8cd70d821bb3fc69500e6273149299b80b923"
|
|
69
69
|
url = "https://github.com/frida/selinux.git"
|
|
70
70
|
options = [
|
|
71
71
|
"-Dregex=disabled",
|
|
@@ -73,7 +73,7 @@ options = [
|
|
|
73
73
|
|
|
74
74
|
[glib]
|
|
75
75
|
name = "GLib"
|
|
76
|
-
version = "
|
|
76
|
+
version = "81b631758fe5c665ade9d869554148f6160fe681"
|
|
77
77
|
url = "https://github.com/frida/glib.git"
|
|
78
78
|
options = [
|
|
79
79
|
"-Dcocoa=disabled",
|
|
@@ -218,7 +218,7 @@ url = "https://github.com/frida/libusb.git"
|
|
|
218
218
|
[lwip]
|
|
219
219
|
when = "machine.os != 'none'"
|
|
220
220
|
name = "lwIP"
|
|
221
|
-
version = "
|
|
221
|
+
version = "334ebb20a22023db2f0d5017e96eb0c7798082fd"
|
|
222
222
|
url = "https://github.com/frida/lwip.git"
|
|
223
223
|
options = [
|
|
224
224
|
"-Dipv4=disabled",
|
|
@@ -386,7 +386,7 @@ when = """ \
|
|
|
386
386
|
and machine.os not in {'none', 'qnx'} \
|
|
387
387
|
"""
|
|
388
388
|
name = "V8"
|
|
389
|
-
version = "
|
|
389
|
+
version = "ef1c2f15d84ff1e1afcc6dd165a23c9fd63608b4"
|
|
390
390
|
url = "https://github.com/frida/v8.git"
|
|
391
391
|
options = [
|
|
392
392
|
"-Ddebug=false",
|
package/releng/frida_version.py
CHANGED
|
@@ -4,6 +4,7 @@ import argparse
|
|
|
4
4
|
from dataclasses import dataclass
|
|
5
5
|
import os
|
|
6
6
|
from pathlib import Path
|
|
7
|
+
import re
|
|
7
8
|
import subprocess
|
|
8
9
|
import sys
|
|
9
10
|
from typing import List
|
|
@@ -40,31 +41,66 @@ def detect(repo: Path) -> FridaVersion:
|
|
|
40
41
|
nano = 0
|
|
41
42
|
commit = ""
|
|
42
43
|
|
|
43
|
-
if (repo / ".git").exists():
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
44
|
+
if not (repo / ".git").exists():
|
|
45
|
+
return FridaVersion(version_name, major, minor, micro, nano, commit)
|
|
46
|
+
|
|
47
|
+
proc = subprocess.run(
|
|
48
|
+
["git", "describe", "--tags", "--always", "--long"],
|
|
49
|
+
cwd=repo,
|
|
50
|
+
capture_output=True,
|
|
51
|
+
encoding="utf-8",
|
|
52
|
+
check=False,
|
|
53
|
+
)
|
|
54
|
+
description = proc.stdout.strip()
|
|
55
|
+
|
|
56
|
+
if "-" not in description:
|
|
57
|
+
commit = description
|
|
58
|
+
return FridaVersion(version_name, major, minor, micro, nano, commit)
|
|
59
|
+
|
|
60
|
+
parts = description.rsplit("-", 2)
|
|
61
|
+
if len(parts) != 3:
|
|
62
|
+
raise VersionParseError(f"Unexpected format from git describe: {description!r}")
|
|
63
|
+
|
|
64
|
+
tag_part, distance_str, commit_part = parts
|
|
65
|
+
commit = commit_part.lstrip("g")
|
|
66
|
+
|
|
67
|
+
try:
|
|
68
|
+
distance = int(distance_str)
|
|
69
|
+
except ValueError as exc:
|
|
70
|
+
raise VersionParseError(f"Invalid distance in {description!r}") from exc
|
|
71
|
+
|
|
72
|
+
nano = distance
|
|
73
|
+
|
|
74
|
+
m = re.match(r"^(\d+)\.(\d+)\.(\d+)(?:-(.+))?$", tag_part)
|
|
75
|
+
if m is None:
|
|
76
|
+
raise VersionParseError(
|
|
77
|
+
f"Tag does not match expected semver pattern: {tag_part!r}"
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
major = int(m.group(1))
|
|
81
|
+
minor = int(m.group(2))
|
|
82
|
+
micro = int(m.group(3))
|
|
83
|
+
suffix = m.group(4)
|
|
84
|
+
|
|
85
|
+
if suffix is None:
|
|
86
|
+
if distance == 0:
|
|
87
|
+
version_name = f"{major}.{minor}.{micro}"
|
|
63
88
|
else:
|
|
64
|
-
|
|
89
|
+
micro += 1
|
|
90
|
+
version_name = f"{major}.{minor}.{micro}-dev.{distance - 1}"
|
|
91
|
+
else:
|
|
92
|
+
base = f"{major}.{minor}.{micro}-{suffix}"
|
|
93
|
+
if distance == 0:
|
|
94
|
+
version_name = base
|
|
95
|
+
else:
|
|
96
|
+
version_name = f"{base}-dev.{distance - 1}"
|
|
65
97
|
|
|
66
98
|
return FridaVersion(version_name, major, minor, micro, nano, commit)
|
|
67
99
|
|
|
68
100
|
|
|
101
|
+
class VersionParseError(Exception):
|
|
102
|
+
pass
|
|
103
|
+
|
|
104
|
+
|
|
69
105
|
if __name__ == "__main__":
|
|
70
106
|
main(sys.argv)
|
package/releng/machine_spec.py
CHANGED
|
@@ -113,7 +113,7 @@ class MachineSpec:
|
|
|
113
113
|
def maybe_adapt_to_host(self, host_machine: MachineSpec) -> MachineSpec:
|
|
114
114
|
if self.identifier == host_machine.identifier and host_machine.triplet is not None:
|
|
115
115
|
return host_machine
|
|
116
|
-
if self.os == "windows":
|
|
116
|
+
if self.os == "windows" and host_machine.os == "windows":
|
|
117
117
|
if host_machine.arch in {"x86_64", "x86"}:
|
|
118
118
|
return host_machine
|
|
119
119
|
if self.arch == host_machine.arch:
|
|
@@ -50,13 +50,18 @@ class SwiftCompiler(Compiler):
|
|
|
50
50
|
def get_dependency_gen_args(self, outtarget: str, outfile: str) -> T.List[str]:
|
|
51
51
|
return ['-emit-dependencies']
|
|
52
52
|
|
|
53
|
+
def get_dependency_compile_args(self, dep: 'Dependency') -> T.List[str]:
|
|
54
|
+
return [arg for arg in dep.get_compile_args() if arg != "-pthread"]
|
|
55
|
+
|
|
53
56
|
def get_dependency_link_args(self, dep: 'Dependency') -> T.List[str]:
|
|
54
57
|
result = []
|
|
55
58
|
for arg in dep.get_link_args():
|
|
56
59
|
if arg.startswith("-Wl,"):
|
|
57
60
|
for flag in arg[4:].split(","):
|
|
58
61
|
result += ["-Xlinker", flag]
|
|
59
|
-
|
|
62
|
+
elif arg != '-pthread':
|
|
63
|
+
if arg.endswith('.a'):
|
|
64
|
+
result.append('-Xlinker')
|
|
60
65
|
result.append(arg)
|
|
61
66
|
return result
|
|
62
67
|
|
|
@@ -843,7 +843,7 @@ class Interpreter(InterpreterBase, HoldableObject):
|
|
|
843
843
|
a = os.path.join(srcdir, self.subdir, a)
|
|
844
844
|
self.add_build_def_file(a)
|
|
845
845
|
|
|
846
|
-
return RunProcess(cmd, expanded_args, env, srcdir, builddir, self.subdir,
|
|
846
|
+
return RunProcess(cmd, expanded_args, env, srcdir, builddir, self.relative_builddir_path_for(self.subdir),
|
|
847
847
|
self.environment.get_build_command() + ['introspect'],
|
|
848
848
|
in_builddir=in_builddir, check=check, capture=capture)
|
|
849
849
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -633,6 +633,7 @@ fdn_variant_from_value (napi_env env,
|
|
|
633
633
|
{
|
|
634
634
|
napi_value second;
|
|
635
635
|
GVariant * val;
|
|
636
|
+
napi_value desc_prop;
|
|
636
637
|
napi_value desc;
|
|
637
638
|
gchar * type;
|
|
638
639
|
GVariant * t[2];
|
|
@@ -640,12 +641,24 @@ fdn_variant_from_value (napi_env env,
|
|
|
640
641
|
if (napi_get_element (env, value, 1, &second) != napi_ok)
|
|
641
642
|
return FALSE;
|
|
642
643
|
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
napi_coerce_to_string (env, first, &desc);
|
|
644
|
+
desc_prop = fdn_utf8_to_value (env, "description");
|
|
645
|
+
napi_get_property (env, first, desc_prop, &desc);
|
|
647
646
|
fdn_utf8_from_value (env, desc, &type);
|
|
648
647
|
|
|
648
|
+
if (strcmp (type, "uint64") == 0)
|
|
649
|
+
{
|
|
650
|
+
gint64 i;
|
|
651
|
+
|
|
652
|
+
if (!fdn_int64_from_value (env, second, &i))
|
|
653
|
+
return FALSE;
|
|
654
|
+
|
|
655
|
+
val = g_variant_new_uint64 ((guint64) i);
|
|
656
|
+
}
|
|
657
|
+
else if (!fdn_variant_from_value (env, second, &val))
|
|
658
|
+
{
|
|
659
|
+
return FALSE;
|
|
660
|
+
}
|
|
661
|
+
|
|
649
662
|
t[0] = g_variant_new_take_string (type);
|
|
650
663
|
t[1] = val;
|
|
651
664
|
|