Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions frida/_frida/__init__.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -775,6 +775,20 @@ class Compiler(Object):
...

class PackageManager(Object):
@property
def registry(self) -> str:
"""
The registry being used.
"""
...

@registry.setter
def registry(self, value: str) -> None:
"""
Change the registry to use.
"""
...

def search(
self,
query: str,
Expand Down
28 changes: 28 additions & 0 deletions frida/_frida/extension.c
Original file line number Diff line number Diff line change
Expand Up @@ -538,6 +538,8 @@ static gboolean PyCompiler_set_options (FridaCompilerOptions * options, const gc
static int PyPackageManager_init (PyPackageManager * self, PyObject * args, PyObject * kw);
static void PyPackageManager_dealloc (PyPackageManager * self);
static PyObject * PyPackageManager_repr (PyPackageManager * self);
static PyObject * PyPackageManager_get_registry (PyPackageManager * self, void * closure);
static int PyPackageManager_set_registry (PyPackageManager * self, PyObject * val, void * closure);
static PyObject * PyPackageManager_search (PyPackageManager * self, PyObject * args, PyObject * kw);
static PyObject * PyPackageManager_install (PyPackageManager * self, PyObject * args, PyObject * kw);
static FridaPackageInstallOptions * PyPackageManager_parse_install_options (const gchar * project_root, PyObject * specs_value);
Expand Down Expand Up @@ -783,6 +785,12 @@ static PyMethodDef PyCompiler_methods[] =
{ NULL }
};

static PyGetSetDef PyPackageManager_getset[] =
{
{ "registry", (getter) PyPackageManager_get_registry, (setter) PyPackageManager_set_registry, "The registry to use.", NULL },
{ NULL }
};

static PyMethodDef PyPackageManager_methods[] =
{
{ "search", (PyCFunction) PyPackageManager_search, METH_VARARGS | METH_KEYWORDS, "Search for packages to install." },
Expand Down Expand Up @@ -969,6 +977,7 @@ PYFRIDA_DEFINE_TYPE ("_frida.PackageManager", PackageManager, GObject, NULL, fri
{ Py_tp_init, PyPackageManager_init },
{ Py_tp_dealloc, PyPackageManager_dealloc },
{ Py_tp_repr, PyPackageManager_repr },
{ Py_tp_getset, PyPackageManager_getset },
{ Py_tp_methods, PyPackageManager_methods },
);

Expand Down Expand Up @@ -5074,6 +5083,25 @@ PyPackageManager_repr (PyPackageManager * self)
return result;
}

static PyObject *
PyPackageManager_get_registry (PyPackageManager * self, void * closure)
{
return PyUnicode_FromString (frida_package_manager_get_registry (PY_GOBJECT_HANDLE (self)));
}

static int
PyPackageManager_set_registry (PyPackageManager * self, PyObject * val, void * closure)
{
gchar * registry;

if (!PyGObject_unmarshal_string (val, &registry))
return -1;
frida_package_manager_set_registry (PY_GOBJECT_HANDLE (self), registry);
g_free (registry);

return 0;
}

static PyObject *
PyPackageManager_search (PyPackageManager * self, PyObject * args, PyObject * kw)
{
Expand Down
8 changes: 8 additions & 0 deletions frida/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -1675,6 +1675,14 @@ def __init__(self) -> None:
def __repr__(self) -> str:
return repr(self._impl)

@property
def registry(self):
return self._impl.registry

@registry.setter
def registry(self, value):
self._impl.registry = value

@cancellable
def search(
self,
Expand Down