mirror of
https://github.com/frida/frida-python
synced 2026-06-08 14:16:17 +00:00
Add add_remote_device() and remove_remote_device() to DeviceManager
This commit is contained in:
@@ -154,6 +154,8 @@ static int PyDeviceManager_init (PyDeviceManager * self);
|
||||
static void PyDeviceManager_dealloc (PyDeviceManager * self);
|
||||
static PyObject * PyDeviceManager_close (PyDeviceManager * self);
|
||||
static PyObject * PyDeviceManager_enumerate_devices (PyDeviceManager * self);
|
||||
static PyObject * PyDeviceManager_add_remote_device (PyDeviceManager * self, PyObject * args);
|
||||
static PyObject * PyDeviceManager_remove_remote_device (PyDeviceManager * self, PyObject * args);
|
||||
static PyObject * PyDeviceManager_on (PyDeviceManager * self, PyObject * args);
|
||||
static PyObject * PyDeviceManager_off (PyDeviceManager * self, PyObject * args);
|
||||
static void PyDeviceManager_on_changed (PyDeviceManager * self, FridaDeviceManager * handle);
|
||||
@@ -243,6 +245,8 @@ static PyMethodDef PyDeviceManager_methods[] =
|
||||
{
|
||||
{ "close", (PyCFunction) PyDeviceManager_close, METH_NOARGS, "Close the device manager." },
|
||||
{ "enumerate_devices", (PyCFunction) PyDeviceManager_enumerate_devices, METH_NOARGS, "Enumerate devices." },
|
||||
{ "add_remote_device", (PyCFunction) PyDeviceManager_add_remote_device, METH_VARARGS, "Add a remote device." },
|
||||
{ "remove_remote_device", (PyCFunction) PyDeviceManager_remove_remote_device, METH_VARARGS, "Remove a remote device." },
|
||||
{ "on", (PyCFunction) PyDeviceManager_on, METH_VARARGS, "Add an event handler." },
|
||||
{ "off", (PyCFunction) PyDeviceManager_off, METH_VARARGS, "Remove an event handler." },
|
||||
{ NULL }
|
||||
@@ -778,6 +782,43 @@ PyDeviceManager_enumerate_devices (PyDeviceManager * self)
|
||||
return devices;
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
PyDeviceManager_add_remote_device (PyDeviceManager * self, PyObject * args)
|
||||
{
|
||||
const char * host;
|
||||
GError * error = NULL;
|
||||
FridaDevice * result;
|
||||
|
||||
if (!PyArg_ParseTuple (args, "s", &host))
|
||||
return NULL;
|
||||
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
result = frida_device_manager_add_remote_device_sync (self->handle, host, &error);
|
||||
Py_END_ALLOW_THREADS
|
||||
if (error != NULL)
|
||||
return PyFrida_raise (error);
|
||||
|
||||
return PyDevice_from_handle (result);
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
PyDeviceManager_remove_remote_device (PyDeviceManager * self, PyObject * args)
|
||||
{
|
||||
const char * host;
|
||||
GError * error = NULL;
|
||||
|
||||
if (!PyArg_ParseTuple (args, "s", &host))
|
||||
return NULL;
|
||||
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
frida_device_manager_remove_remote_device_sync (self->handle, host, &error);
|
||||
Py_END_ALLOW_THREADS
|
||||
if (error != NULL)
|
||||
return PyFrida_raise (error);
|
||||
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static PyObject *
|
||||
PyDeviceManager_on (PyDeviceManager * self, PyObject * args)
|
||||
{
|
||||
|
||||
@@ -20,6 +20,12 @@ class DeviceManager(object):
|
||||
def enumerate_devices(self):
|
||||
return [Device(device) for device in self._impl.enumerate_devices()]
|
||||
|
||||
def add_remote_device(self, host):
|
||||
return Device(self._impl.add_remote_device(host))
|
||||
|
||||
def remove_remote_device(self, host):
|
||||
self._impl.remove_remote_device(host)
|
||||
|
||||
def get_device(self, device_id):
|
||||
devices = self._impl.enumerate_devices()
|
||||
if device_id is None:
|
||||
|
||||
Reference in New Issue
Block a user