Skip to content

Commit a6c466f

Browse files
oleavrAbhiTheModder
authored andcommitted
extension: Expose PackageManager.registry
1 parent 32deb0f commit a6c466f

File tree

3 files changed

+50
-0
lines changed

3 files changed

+50
-0
lines changed

frida/_frida/__init__.pyi

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -775,6 +775,20 @@ class Compiler(Object):
775775
...
776776

777777
class PackageManager(Object):
778+
@property
779+
def registry(self) -> str:
780+
"""
781+
The registry being used.
782+
"""
783+
...
784+
785+
@registry.setter
786+
def registry(self, value: str) -> None:
787+
"""
788+
Change the registry to use.
789+
"""
790+
...
791+
778792
def search(
779793
self,
780794
query: str,

frida/_frida/extension.c

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,8 @@ static gboolean PyCompiler_set_options (FridaCompilerOptions * options, const gc
538538
static int PyPackageManager_init (PyPackageManager * self, PyObject * args, PyObject * kw);
539539
static void PyPackageManager_dealloc (PyPackageManager * self);
540540
static PyObject * PyPackageManager_repr (PyPackageManager * self);
541+
static PyObject * PyPackageManager_get_registry (PyPackageManager * self, void * closure);
542+
static int PyPackageManager_set_registry (PyPackageManager * self, PyObject * val, void * closure);
541543
static PyObject * PyPackageManager_search (PyPackageManager * self, PyObject * args, PyObject * kw);
542544
static PyObject * PyPackageManager_install (PyPackageManager * self, PyObject * args, PyObject * kw);
543545
static FridaPackageInstallOptions * PyPackageManager_parse_install_options (const gchar * project_root, PyObject * specs_value);
@@ -783,6 +785,12 @@ static PyMethodDef PyCompiler_methods[] =
783785
{ NULL }
784786
};
785787

788+
static PyGetSetDef PyPackageManager_getset[] =
789+
{
790+
{ "registry", (getter) PyPackageManager_get_registry, (setter) PyPackageManager_set_registry, "The registry to use.", NULL },
791+
{ NULL }
792+
};
793+
786794
static PyMethodDef PyPackageManager_methods[] =
787795
{
788796
{ "search", (PyCFunction) PyPackageManager_search, METH_VARARGS | METH_KEYWORDS, "Search for packages to install." },
@@ -969,6 +977,7 @@ PYFRIDA_DEFINE_TYPE ("_frida.PackageManager", PackageManager, GObject, NULL, fri
969977
{ Py_tp_init, PyPackageManager_init },
970978
{ Py_tp_dealloc, PyPackageManager_dealloc },
971979
{ Py_tp_repr, PyPackageManager_repr },
980+
{ Py_tp_getset, PyPackageManager_getset },
972981
{ Py_tp_methods, PyPackageManager_methods },
973982
);
974983

@@ -5074,6 +5083,25 @@ PyPackageManager_repr (PyPackageManager * self)
50745083
return result;
50755084
}
50765085

5086+
static PyObject *
5087+
PyPackageManager_get_registry (PyPackageManager * self, void * closure)
5088+
{
5089+
return PyUnicode_FromString (frida_package_manager_get_registry (PY_GOBJECT_HANDLE (self)));
5090+
}
5091+
5092+
static int
5093+
PyPackageManager_set_registry (PyPackageManager * self, PyObject * val, void * closure)
5094+
{
5095+
gchar * registry;
5096+
5097+
if (!PyGObject_unmarshal_string (val, &registry))
5098+
return -1;
5099+
frida_package_manager_set_registry (PY_GOBJECT_HANDLE (self), registry);
5100+
g_free (registry);
5101+
5102+
return 0;
5103+
}
5104+
50775105
static PyObject *
50785106
PyPackageManager_search (PyPackageManager * self, PyObject * args, PyObject * kw)
50795107
{

frida/core.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1675,6 +1675,14 @@ def __init__(self) -> None:
16751675
def __repr__(self) -> str:
16761676
return repr(self._impl)
16771677

1678+
@property
1679+
def registry(self):
1680+
return self._impl.registry
1681+
1682+
@registry.setter
1683+
def registry(self, value):
1684+
self._impl.registry = value
1685+
16781686
@cancellable
16791687
def search(
16801688
self,

0 commit comments

Comments
 (0)