Skip to content

Commit

Permalink
Merge pull request #1224 from doronz88/refactor/make-coredeviceproxy-…
Browse files Browse the repository at this point in the history
…pure-asyncio

tunnel_service: reactor `CoreDeviceTunnelProxy` into pure asyncio
  • Loading branch information
doronz88 authored Oct 2, 2024
2 parents 57d854e + b45aae5 commit ed91b92
Showing 1 changed file with 1 addition and 11 deletions.
12 changes: 1 addition & 11 deletions pymobiledevice3/remote/tunnel_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@

from pymobiledevice3.lockdown_service_provider import LockdownServiceProvider
from pymobiledevice3.osu.os_utils import get_os_utils
from pymobiledevice3.services.lockdown_service import LockdownService

try:
from sslpsk_pmd3.sslpsk import SSLPSKContext
Expand Down Expand Up @@ -907,28 +906,19 @@ async def connect(self, autopair: bool = True) -> None:
await RemotePairingProtocol.connect(self, autopair=autopair)


class CoreDeviceTunnelProxy(StartTcpTunnel, LockdownService):
class CoreDeviceTunnelProxy(StartTcpTunnel):
SERVICE_NAME = 'com.apple.internal.devicecompute.CoreDeviceProxy'

def __init__(self, lockdown: LockdownServiceProvider) -> None:
LockdownService.__init__(self, lockdown, self.SERVICE_NAME)
self._lockdown = lockdown
self._service: Optional[ServiceConnection] = None

try:
loop = asyncio.get_running_loop()
except RuntimeError:
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
self._loop = loop

@property
def remote_identifier(self) -> str:
return self._lockdown.udid

@asynccontextmanager
async def start_tcp_tunnel(self) -> AsyncGenerator['TunnelResult', None]:
self.service.close()
self._service = await self._lockdown.aio_start_lockdown_service(self.SERVICE_NAME)
tunnel = RemotePairingTcpTunnel(self._service.reader, self._service.writer)
handshake_response = await tunnel.request_tunnel_establish()
Expand Down

0 comments on commit ed91b92

Please sign in to comment.