mirror of
https://github.com/ARM-software/devlib.git
synced 2025-01-31 02:00:45 +00:00
AdbConnection: Enable adb_as_root
as a connection parameter
To allow for connecting to an `AndroidTarget` as root before the target has been initialised, allow for passing `adb_as_root` as a connection parameter to the `AdbConnection`. This will restart `adbd` as root before attempting to connect to the target and will restart as unrooted once all connections to that target have been closed.
This commit is contained in:
parent
9ddf763650
commit
72e4443b7d
@ -260,12 +260,16 @@ class AdbConnection(object):
|
|||||||
|
|
||||||
|
|
||||||
# pylint: disable=unused-argument
|
# pylint: disable=unused-argument
|
||||||
def __init__(self, device=None, timeout=None, platform=None, adb_server=None):
|
def __init__(self, device=None, timeout=None, platform=None, adb_server=None,
|
||||||
|
adb_as_root=False):
|
||||||
self.timeout = timeout if timeout is not None else self.default_timeout
|
self.timeout = timeout if timeout is not None else self.default_timeout
|
||||||
if device is None:
|
if device is None:
|
||||||
device = adb_get_device(timeout=timeout, adb_server=adb_server)
|
device = adb_get_device(timeout=timeout, adb_server=adb_server)
|
||||||
self.device = device
|
self.device = device
|
||||||
self.adb_server = adb_server
|
self.adb_server = adb_server
|
||||||
|
self.adb_as_root = adb_as_root
|
||||||
|
if self.adb_as_root:
|
||||||
|
self.adb_root(enable=True)
|
||||||
adb_connect(self.device)
|
adb_connect(self.device)
|
||||||
AdbConnection.active_connections[self.device] += 1
|
AdbConnection.active_connections[self.device] += 1
|
||||||
self._setup_ls()
|
self._setup_ls()
|
||||||
@ -312,6 +316,8 @@ class AdbConnection(object):
|
|||||||
def close(self):
|
def close(self):
|
||||||
AdbConnection.active_connections[self.device] -= 1
|
AdbConnection.active_connections[self.device] -= 1
|
||||||
if AdbConnection.active_connections[self.device] <= 0:
|
if AdbConnection.active_connections[self.device] <= 0:
|
||||||
|
if self.adb_as_root:
|
||||||
|
adb_root(self.device, enable=False)
|
||||||
adb_disconnect(self.device)
|
adb_disconnect(self.device)
|
||||||
del AdbConnection.active_connections[self.device]
|
del AdbConnection.active_connections[self.device]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user