diff --git a/wifi.py b/wifi.py index f830957..ba53cd2 100644 --- a/wifi.py +++ b/wifi.py @@ -239,7 +239,6 @@ class WiFiManager: old_conf = _read_text(conf_path) old_boot_ssid = _read_text(ssid_file) old_boot_pass = _read_text(pass_file) - old_boot_wpa = _read_text(boot_wpa_path) if os.path.exists(boot_wpa_path) else None try: try: @@ -251,9 +250,13 @@ class WiFiManager: _write_text(conf_path, full_conf) except Exception: pass - _write_text(boot_wpa_path, full_conf) + # 删除 wpa_supplicant.conf,让 S30wifi 回退读 ssid/pass + try: + if os.path.exists(boot_wpa_path): + os.remove(boot_wpa_path) + except Exception: + pass - # 仍写入 ssid/pass,便于其它脚本/人工查看;S30wifi 优先使用 wpa_supplicant.conf _write_text(ssid_file, ssid.strip()) _write_text(pass_file, password.strip()) @@ -293,7 +296,6 @@ class WiFiManager: if not persist: # 不持久化:把 /boot 恢复成旧值(不重启,当前连接保持不变) _restore_boot(old_boot_ssid, old_boot_pass) - _restore_boot_wpa(old_boot_wpa) self.logger.info("[WIFI] 网络验证通过,但按 persist=False 回滚 /boot 凭证(不重启)") else: self.logger.info("[WIFI] 网络验证通过,/boot 凭证已保留(持久化)") @@ -307,7 +309,6 @@ class WiFiManager: except Exception as e: # 失败:回滚 /boot 和 /etc,重启 WiFi 恢复旧网络 _restore_boot(old_boot_ssid, old_boot_pass) - _restore_boot_wpa(old_boot_wpa) try: if old_conf is not None: _write_text(conf_path, old_conf) @@ -352,7 +353,11 @@ class WiFiManager: else: full_conf = build_sta_conf_open(ssid) _write_text(conf_path, full_conf) - _write_text(boot_wpa_path, full_conf) + try: + if os.path.exists(boot_wpa_path): + os.remove(boot_wpa_path) + except Exception: + pass except ValueError as e: return False, str(e) except Exception as e: