Pref: Try nc command on android phones first

This commit is contained in:
LmeSzinc 2024-06-07 16:21:14 +08:00
parent 888cb029ff
commit 1d6eff5dff

View File

@ -385,10 +385,11 @@ class Connection(ConnectionAttr):
Returns:
list[str]: ['nc'] or ['busybox', 'nc']
"""
if self.is_emulator:
sdk = self.sdk_ver
logger.info(f'sdk_ver: {sdk}')
if sdk >= 28:
# Android 9 emulators does not have `nc`, try `busybox nc`
# LD Player 9 does not have `nc`, try `busybox nc`
# BlueStacks Pie (Android 9) has `nc` but cannot send data, try `busybox nc` first
trial = [
['busybox', 'nc'],
@ -399,10 +400,16 @@ class Connection(ConnectionAttr):
['nc'],
['busybox', 'nc'],
]
else:
trial = [
['nc'],
['busybox', 'nc'],
]
for command in trial:
# About 3ms
result = self.adb_shell(command)
# Result should be command help if success
# nc: bad argument count (see "nc --help")
result = self.adb_shell(command)
# `/system/bin/sh: nc: not found`
if 'not found' in result:
continue