From 12fac4ea1cc76dab4e9ca9d3e9f77d339d0662d6 Mon Sep 17 00:00:00 2001 From: gcw_4spBpAfv Date: Thu, 23 Apr 2026 11:14:08 +0800 Subject: [PATCH] remove unseed code --- ...y_netcore.cpython-311-riscv64-linux-gnu.so | Bin 176328 -> 180520 bytes cpp_ext/CMakeLists.txt | 1 + cpp_ext/archery_netcore.cpp | 9 +++ network.py | 62 ++---------------- wifi_config_httpd.py | 24 +++++++ 5 files changed, 38 insertions(+), 58 deletions(-) diff --git a/archery_netcore.cpython-311-riscv64-linux-gnu.so b/archery_netcore.cpython-311-riscv64-linux-gnu.so index 1eb8d818e6e54c7e5f5a587cb45552e944171f65..a075e41e4d54d5002f3278af207fe10382318bdb 100644 GIT binary patch delta 76121 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 S8*3Cyb=rFWv@xv4$o~QN_ijl5 delta 73024 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 M*4!P%VKeCb8_Djq4*&oF diff --git a/cpp_ext/CMakeLists.txt b/cpp_ext/CMakeLists.txt index ebe9d5a..476d84d 100644 --- a/cpp_ext/CMakeLists.txt +++ b/cpp_ext/CMakeLists.txt @@ -25,6 +25,7 @@ add_library(archery_netcore MODULE utils.cpp decrypt_ota_file.cpp msg_handler.cpp + tcp_ssl_password.cpp ) target_include_directories(archery_netcore PRIVATE diff --git a/cpp_ext/archery_netcore.cpp b/cpp_ext/archery_netcore.cpp index 6970753..06162a6 100644 --- a/cpp_ext/archery_netcore.cpp +++ b/cpp_ext/archery_netcore.cpp @@ -12,6 +12,7 @@ #include "native_logger.hpp" #include "decrypt_ota_file.hpp" #include "utils.hpp" +#include "tcp_ssl_password.hpp" namespace py = pybind11; using json = nlohmann::json; @@ -61,6 +62,14 @@ PYBIND11_MODULE(archery_netcore, m) { m.def("get_config", &get_config, "Get system configuration"); + m.def( + "calculate_tcp_ssl_password", + &netcore::calculate_tcp_ssl_password, + "Calculate TCP SSL password: hex(md5(hex(md5(device_id)) + iccid))", + py::arg("device_id"), + py::arg("iccid") + ); + m.def( "decrypt_ota_file", [](const std::string& input_path, const std::string& output_zip_path) { diff --git a/network.py b/network.py index 18cdd63..af4bee9 100644 --- a/network.py +++ b/network.py @@ -19,21 +19,10 @@ import config from hardware import hardware_manager from power import get_bus_voltage, voltage_to_percent -# from laser import laser_manager -# from ota import ota_manager from logger_manager import logger_manager from wifi import wifi_manager -def _calculate_tcp_ssl_password(device_id, iccid): - """ - 与服务器 calculatePassword(deviceId, iccid) 一致: - hex(md5(hex(md5(deviceId)) + iccid)),iccid 为空则不拼接。 - """ - md5_device_hex = hashlib.md5(device_id.encode("utf-8")).hexdigest() - if iccid: - md5_device_hex = md5_device_hex + iccid - return hashlib.md5(md5_device_hex.encode("utf-8")).hexdigest() def _wifi_tls_would_block(exc): @@ -219,10 +208,10 @@ class NetworkManager: iccid = self.get_4g_mccid() iccid = iccid if iccid else "" print(f"iccid: {iccid}") - self._password = _calculate_tcp_ssl_password(device_id, iccid) + self._password = self._netcore.calculate_tcp_ssl_password(device_id, iccid) else: - self._password = device_id + "." - print(f"self._password: {self._password}") + self.logger.error("[SSL] TCP SSL NOT enabled! exit!") + exit(1) try: with open("/device_key", "r") as f: @@ -652,46 +641,9 @@ class NetworkManager: """线程安全地将消息加入队列(公共方法)""" self._enqueue((msg_type, data_dict), high) - def make_packet(self, msg_type: int, body_dict: dict) -> bytes: - """打包 TCP 数据包:头部(长度+类型+校验)+ JSON 正文""" - body = json.dumps(body_dict).encode() - body_len = len(body) - checksum = body_len + msg_type - header = struct.pack(">III", body_len, msg_type, checksum) - return header + body - - def parse_packet(self, data: bytes): - """解析 TCP 数据包,返回 (类型, 正文字典)""" - if len(data) < 12: - return None, None - body_len, msg_type, checksum = struct.unpack(">III", data[:12]) - expected_len = 12 + body_len - - # 防御性检查:如果 data 比预期长,说明可能有粘包 - if len(data) > expected_len: - self.logger.warning( - f"[TCP] parse_packet: data length ({len(data)}) > expected ({expected_len}), " - f"possible packet concatenation. body_len={body_len}, msg_type={msg_type}" - ) - # 只解析第一个包,忽略多余数据(或者可以返回剩余部分) - # data = data[:expected_len] - # TODO: 是否需要解析剩余部分? - - # 如果 data 比预期短,说明包不完整(半包) - if len(data) < expected_len: - self.logger.warning( - f"[TCP] parse_packet: data length ({len(data)}) < expected ({expected_len}), " - f"incomplete packet. body_len={body_len}, msg_type={msg_type}" - ) - return None, None - - body = data[12:12 + body_len] - try: - return msg_type, json.loads(body.decode()) - except: - return msg_type, {"raw": body.decode(errors="ignore")} + def connect_server(self): """ 连接到服务器(自动选择WiFi或4G) @@ -1512,12 +1464,6 @@ class NetworkManager: "reason": str(e)[:100] }, 2) - def generate_token(self, device_id): - """生成用于 HTTP 接口鉴权的 Token(HMAC-SHA256)""" - SALT = "shootMessageFire" - SALT2 = "shoot" - return "Arrow_" + hmac.new((SALT + device_id).encode(), SALT2.encode(), hashlib.sha256).hexdigest() - def tcp_main(self): """TCP 主通信循环:登录、心跳、处理指令、发送数据""" import _thread diff --git a/wifi_config_httpd.py b/wifi_config_httpd.py index 2a0f083..fd19d73 100644 --- a/wifi_config_httpd.py +++ b/wifi_config_httpd.py @@ -383,6 +383,27 @@ def _ensure_hostapd_modern_security(logger=None) -> bool: return False +def _cleanup_ap_flag_if_needed(logger): + """若 /boot/wifi.ap 残留,删除它并恢复 /boot/wifi.sta,避免 main.py 误判为 AP 配网模式。""" + ap_flag = "/boot/wifi.ap" + sta_flag = "/boot/wifi.sta" + if not os.path.exists(ap_flag): + return + try: + os.remove(ap_flag) + logger.info(f"[WIFI-AP] 已清理残留标记 {ap_flag}") + except Exception as e: + logger.warning(f"[WIFI-AP] 清理 {ap_flag} 失败: {e}") + return + if not os.path.exists(sta_flag): + try: + with open(sta_flag, "w", encoding="utf-8") as f: + f.write("") + logger.info(f"[WIFI-AP] 已恢复 {sta_flag}") + except Exception as e: + logger.warning(f"[WIFI-AP] 恢复 {sta_flag} 失败: {e}") + + def _switch_boot_to_ap_mode(logger): """ 去掉 STA 标志、建立 AP 标志,由 S30wifi 起 hostapd(与 Maix start_ap 二选一,以系统脚本为准)。 @@ -449,6 +470,8 @@ def maybe_start_wifi_ap_fallback(logger=None): logger.info(f"[WIFI-AP] 兜底检测(quick):sta关联={wifi_ok}, 4g={g4_ok}") if wifi_ok or g4_ok: logger.info("[WIFI-AP] STA 或 4G 可用,不启动热点配网") + # 清理上次开机可能残留的 /boot/wifi.ap 标记,避免 main.py 误判为 AP 配网模式 + _cleanup_ap_flag_if_needed(logger) return # 两者均不可用:再按配置等待一段时间后复检,避免开机瞬态误判 @@ -466,6 +489,7 @@ def maybe_start_wifi_ap_fallback(logger=None): if wifi_ok or g4_ok: logger.info("[WIFI-AP] STA 或 4G 可用,不启动热点配网") + _cleanup_ap_flag_if_needed(logger) return logger.warning("[WIFI-AP] STA 与 4G 均不可用,启动热点配网(/boot/wifi.ap + HTTP)")