Could not locate the bindings file
Version: ^16.5.6
What I did wrong?
In BunJs v1.1.33
import frida from 'frida'
var device = await frida.getLocalDevice()
console.log(device)
121 | throw e;
122 | }
123 | }
124 | }
125 |
126 | err = new Error(
^
error: Could not locate the bindings file. Tried:
→ F:\Project\NodeScript\node_modules\frida\build\frida_binding.node
→ F:\Project\NodeScript\frida_binding.node
at bindings (F:\Project\NodeScript\node_modules\bindings\bindings.js:126:9)
at F:\Project\NodeScript\node_modules\frida\dist\native.js:5:19
at F:\Project\NodeScript\node_modules\frida\dist\cancellable.js:4:7
at F:\Project\NodeScript\node_modules\frida\dist\index.js:5:7
Bun v1.1.33 (Windows x64)
In NodeJS v20.12.2
// import frida from 'frida'
var frida = require('frida')
var device = frida.getUsbDevice()
console.log(device)
f:\Project\NodeScript\node_modules\bindings\bindings.js:126
err = new Error(
^
Error: Could not locate the bindings file. Tried:
→ f:\Project\NodeScript\node_modules\frida\build\frida_binding.node
→ F:\Project\NodeScript\frida_binding.node
at bindings (f:\Project\NodeScript\node_modules\bindings\bindings.js:126:9)
at Object.<anonymous> (f:\Project\NodeScript\node_modules\frida\dist\native.js:5:19)
at Module._compile (node:internal/modules/cjs/loader:1369:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1427:10)
at Object.require.extensions.<computed> [as .js] (D:\NodeJS\node_modules\ts-node\src\index.ts:1608:43)
at Module.load (node:internal/modules/cjs/loader:1206:32)
at Function.Module._load (node:internal/modules/cjs/loader:1022:12)
at Module.require (node:internal/modules/cjs/loader:1231:19)
at require (node:internal/modules/helpers:179:18)
at Object.<anonymous> (f:\Project\NodeScript\node_modules\frida\dist\cancellable.js:4:18) {
tries: [
'f:\\Project\\NodeScript\\node_modules\\frida\\build\\frida_binding.node',
'F:\\Project\\NodeScript\\frida_binding.node'
]
}
Hi, By default Bun blocks post-install scripts for security reasons, I managed to fix the issue by adding frida to trusted dependencies using command
$ bun pm trust frida
Sadly the module won't work yet on Bun because Bun doesn't have specific functions implemented that are needed for Frida to work.
undefined symbol: uv_default_loop
Here's the link to the issue where the state of implementation of said functions is tracked
The feature/node-api branch will probably fix this once landed. It's a complete rewrite, where these bindings are auto-generated, and the generated C-code targets Node-API.
Hi, By default Bun blocks post-install scripts for security reasons, I managed to fix the issue by adding frida to trusted dependencies using command
$ bun pm trust frida Sadly the module won't work yet on Bun because Bun doesn't have specific functions implemented that are needed for Frida to work.
undefined symbol: uv_default_loopHere's the link to the issue where the state of implementation of said functions is tracked
bun pm trust v1.2.10 (db2e7d7f)
⚙️ frida [1/1] warn: frida's postinstall cost you 30.6s
Initialized empty Git repository in F:/Project/NodeScript/node_modules/frida/subprojects/nan/.git/
The Meson build system
Version: 1.4.99
Source dir: F:\Project\NodeScript\node_modules\frida
Build dir: F:\Project\NodeScript\node_modules\frida\build
Build type: native build
Program python3 found: YES
Project name: frida-node
Project version: 16.7.13
C++ compiler for the host machine: D:\Microsoft Visual Studio\Enterprise\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64\cl.exe (msvc 19.39.33523 "Microsoft (R) C/C++ Optimizing Compiler Version 19.39.33523 for x64")
C++ linker for the host machine: link link 14.39.33523.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program node found: YES (D:\nodejs\node.EXE)
Program npm found: YES (F:\Project\NodeScript\node_modules\.bin\npm.EXE)
Program python3 found: YES (D:\Python\python.exe)
Message: Fetching ABI bits
Found pkg-config: YES (F:\Project\NodeScript\node_modules\frida\deps\toolchain-windows-x86\bin\pkg-config.exe) 0.29.2
Found CMake: D:\CMake\bin\cmake.EXE (3.31.3)
WARNING: CMake Toolchain: Failed to determine CMake compilers state
Run-time dependency nan found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency nan
Applying diff file "nan.patch"
ERROR: Unhandled python OSError. This is probably not a Meson bug, but an issue with your build environment.
prebuild-install warn install Request timed out
From https://github.com/nodejs/nan
* branch 4d1d74e0a9ea8fa8091b88e45dc57e4c7eb9cdf7 -> FETCH_HEAD
HEAD is now at 4d1d74e 2.20.0
Traceback (most recent call last):
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\mesonmain.py", line 186, in run
return options.run_func(options)
~~~~~~~~~~~~~~~~^^^^^^^^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\msetup.py", line 363, in run
app.generate()
~~~~~~~~~~~~^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\msetup.py", line 187, in generate
return self._generate(env, capture, vslite_ctx)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\msetup.py", line 226, in _generate
intr.run()
~~~~~~~~^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreter\interpreter.py", line 3060, in run
super().run()
~~~~~~~~~~~^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\interpreterbase.py", line 162, in run
self.evaluate_codeblock(self.ast, start=1)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\interpreterbase.py", line 188, in evaluate_codeblock
raise e
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\interpreterbase.py", line 180, in evaluate_codeblock
self.evaluate_statement(cur)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\interpreterbase.py", line 198, in evaluate_statement
self.assignment(cur)
~~~~~~~~~~~~~~~^^^^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\interpreterbase.py", line 634, in assignment
value = self.evaluate_statement(node.value)
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\interpreterbase.py", line 194, in evaluate_statement
return self.function_call(cur)
~~~~~~~~~~~~~~~~~~^^^^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\interpreterbase.py", line 520, in function_call
res = func(node, func_args, kwargs)
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\decorators.py", line 799, in wrapped
return f(*wrapped_args, **wrapped_kwargs)
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\decorators.py", line 799, in wrapped
return f(*wrapped_args, **wrapped_kwargs)
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\decorators.py", line 799, in wrapped
return f(*wrapped_args, **wrapped_kwargs)
[Previous line repeated 4 more times]
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\decorators.py", line 98, in wrapped
ret = f(*wrapped_args, **wrapped_kwargs)
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\decorators.py", line 116, in wrapped
return f(*wrapped_args, **wrapped_kwargs)
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\decorators.py", line 250, in wrapper
return f(*nargs, **wrapped_kwargs)
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreterbase\decorators.py", line 569, in wrapper
return f(*wrapped_args, **wrapped_kwargs)
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreter\interpreter.py", line 1838, in func_dependency
d = df.lookup(kwargs)
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreter\dependencyfallbacks.py", line 368, in lookup
dep = func(kwargs, func_args, func_kwargs)
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreter\dependencyfallbacks.py", line 132, in _do_subproject
self.interpreter.do_subproject(subp_name, func_kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\interpreter\interpreter.py", line 918, in do_subproject
subdir, method = r.resolve(subp_name, force_method)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\wrap\wrap.py", line 494, in resolve
self.apply_diff_files()
~~~~~~~~~~~~~~~~~~~~~^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\wrap\wrap.py", line 824, in apply_diff_files
p, out, _ = Popen_safe(cmd, cwd=self.dirname, stderr=subprocess.STDOUT)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\utils\universal.py", line 1538, in Popen_safe
p, o, e = Popen_safe_legacy(args, write=write, stdin=stdin, stdout=stdout, stderr=stderr, **kwargs)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "F:\Project\NodeScript\node_modules\frida\releng\meson\mesonbuild\utils\universal.py", line 1560, in Popen_safe_legacy
p = subprocess.Popen(args, universal_newlines=False, close_fds=False,
stdin=stdin, stdout=stdout, stderr=stderr, **kwargs)
File "D:\Python\Lib\subprocess.py", line 1038, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pass_fds, cwd, env,
^^^^^^^^^^^^^^^^^^^
...<5 lines>...
gid, gids, uid, umask,
^^^^^^^^^^^^^^^^^^^^^^
start_new_session, process_group)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Python\Lib\subprocess.py", line 1550, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
# no special security
^^^^^^^^^^^^^^^^^^^^^
...<4 lines>...
cwd,
^^^^
startupinfo)
^^^^^^^^^^^^
OSError: [WinError 740] ����IJ�����Ҫ������
Command '['D:\\Python\\python.exe', 'F:\\Project\\NodeScript\\node_modules\\frida\\releng\\meson\\meson.py', 'setup', '-Dprefix=C:\\Program Files\\Frida', '-Ddefault_library=static', '-Doptimization=s', '-Db_ndebug=true', '--native-file=F:\\Project\\NodeScript\\node_modules\\frida\\build\\frida-windows-x86_64-mt.txt', WindowsPath('F:/Project/NodeScript/node_modules/frida/build')]' returned non-zero exit status 22.
error: install script from "frida" exited with 1