fix: add notice to disable network bridging

This commit is contained in:
2026-07-06 22:40:55 +08:00
parent bfcbf268fc
commit 56875e46b3
3 changed files with 44 additions and 1 deletions
+32
View File
@@ -1,4 +1,5 @@
import ipaddress
import json
import logging
import re
import socket
@@ -14,6 +15,7 @@ import module.config.server as server_
from module.base.decorator import Config, cached_property, del_cached_property, run_once
from module.base.timer import Timer
from module.base.utils import SelectedGrids, ensure_time
from module.config.deep import deep_get
from module.device.connection_attr import ConnectionAttr
from module.device.env import IS_LINUX, IS_MACINTOSH, IS_WINDOWS
from module.device.method.pool import WORKER_POOL
@@ -786,6 +788,7 @@ class Connection(ConnectionAttr):
self.detect_device()
if self.serial != before:
return True
run_once(self.check_mumu_bridge_network)()
# No such device
logger.warning('No such device exists, please restart the emulator or set a correct serial')
raise EmulatorNotRunningError
@@ -810,6 +813,35 @@ class Connection(ConnectionAttr):
for serial in serial_list:
pool.start_thread_soon(connect, serial)
def check_mumu_bridge_network(self):
"""
Returns:
bool: True if success to check, False if check is skipped
"""
if not self.is_mumu12_family:
return True
if not hasattr(self, 'find_emulator_instance'):
return False
# Assume PlatformBase inherited this class
instance = self.find_emulator_instance(
serial=self.serial,
)
file = instance.mumu_vms_config('customer_config.json')
try:
with open(file, mode='r', encoding='utf-8') as f:
s = f.read()
data = json.loads(s)
except FileNotFoundError:
logger.warning(f'Failed to check check_mumu_bridge_network, file {file} not exists')
return False
value = deep_get(data, keys='customer.network_bridge_opened', default=None)
logger.attr('customer.network_bridge_opened', value)
if str(value).lower() == 'true':
logger.critical('Please turn off "Network Bridging" in the settings of MuMuPlayer')
logger.critical('请在MuMU模拟器设置中关闭 网络桥接')
raise RequestHumanTakeover
return True
@Config.when(DEVICE_OVER_HTTP=True)
def adb_connect(self, wait_device=True):
# No adb connect if over http
+2 -1
View File
@@ -554,6 +554,7 @@ class NemuIpc(Platform):
logger.attr('customer.app_keptlive', value)
if str(value).lower() == 'true':
# https://mumu.163.com/help/20230802/35047_1102450.html
logger.critical('Please turn off "Keep alive in the background" in the settings or MuMuPlayer')
logger.critical('请在MuMu模拟器设置内关闭 "后台挂机时保活运行"')
raise RequestHumanTakeover
return True
@@ -576,7 +577,7 @@ class NemuIpc(Platform):
logger.warning('Failed to check check_mumu_app_keep_alive as emulator_instance is None')
return False
name = self.emulator_instance.name
file = self.emulator_instance.emulator.abspath(f'../vms/{name}/configs/customer_config.json')
file = self.emulator_instance.mumu_vms_config('customer_config.json')
if self.check_mumu_app_keep_alive_400(file):
return True
+10
View File
@@ -114,6 +114,16 @@ class EmulatorInstanceBase:
return None
def mumu_vms_config(self, file):
"""
Args:
file (str): Such as customer_config.json
Returns:
str: Absolute filepath to the file
"""
return self.emulator.abspath(f'../vms/{self.name}/configs/{file}')
@cached_property
def LDPlayer_id(self):
"""