From 07f6927fecb73d6b3bf2242fd1bb24abe01b63af Mon Sep 17 00:00:00 2001 From: zzh <838331105@qq.com> Date: Tue, 13 Jan 2026 15:25:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=BE=8E=E5=9B=A2=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E7=94=9F=E4=BA=A7=E5=AF=BC=E5=85=A5=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 6 +- update_mac_mt | Bin 0 -> 323608 bytes update_mac_mt.c | 628 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 631 insertions(+), 3 deletions(-) create mode 100755 update_mac_mt create mode 100644 update_mac_mt.c diff --git a/Makefile b/Makefile index 1710a68..6f28cee 100644 --- a/Makefile +++ b/Makefile @@ -9,9 +9,9 @@ SHELL := /bin/bash COMPILE_SH ?= /home/hyx/work/dev_doc/ap05_dev_gaiban/APP_AP05_1.1.22_tuxi_shengchan/compile.sh -SRC := update_mac_pdd.c -TARGET_ARM64 := update_mac_pdd -TARGET_NATIVE := update_mac_pdd_native +SRC := update_mac_mt.c +TARGET_ARM64 := update_mac_mt +TARGET_NATIVE := update_mac_mt_native # Allow overriding CFLAGS via environment CFLAGS ?= -O2 -Wall -I/home/hyx/work/write_mac_tool/hiredis diff --git a/update_mac_mt b/update_mac_mt new file mode 100755 index 0000000000000000000000000000000000000000..920ae0d036cffeffa2dac392ddd8ff254804a0c5 GIT binary patch literal 323608 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 z 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 z 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

(*?zbpDcbYJwLXtq)MzyJ42x-EJl`b0F0XHj~4 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "hiredis.h" + +// 黄灯控制相关变量 +static volatile int led_running = 0; +static pthread_t led_thread; + +// 黄灯控制函数声明 +static void gpio_init_yellow(void); +static void* led_fast_blink_thread(void* arg); +static void start_yellow_fast_blink(void); +static void stop_yellow_blink(void); +static void set_yellow_off(void); + +static void to_upper_str(char* s) { + for (; *s; ++s) *s = (char)toupper((unsigned char)*s); +} + +// 提取批次号(支持 batch=XXXX / Batch:XXXX / 扫码包含"D"+14位数字) +static int extract_batch(const char* input, char* out_batch, size_t out_size) { + if (!input || !out_batch || out_size < 16) return -1; + size_t n = strlen(input); + // 主匹配:任意位置出现 'D' 或 'd' 后跟 14 位数字 + for (size_t i = 0; i + 15 <= n; ++i) { + char c = input[i]; + if (c == 'M' || c == 'm') { + int ok = 1; + for (int k = 1; k <= 14; ++k) { + char d = input[i + k]; + if (d < '0' || d > '9') { ok = 0; break; } + } + if (ok) { + out_batch[0] = 'M'; + memcpy(out_batch + 1, input + i + 1, 14); + out_batch[15] = '\0'; + return 0; + } + } + } + // 回退:按键名解析(batch/Batch/BATCH/批次) + const char* keys[] = {"batch", "Batch", "BATCH", "批次"}; + for (size_t i = 0; i < sizeof(keys)/sizeof(keys[0]); ++i) { + const char* p = strstr(input, keys[i]); + if (!p) continue; + // 跳过键名后的分隔符 + p += strlen(keys[i]); + while (*p == ' ' || *p == '=' || *p == ':' || (unsigned char)*p == 0xEF) { + if ((unsigned char)*p == 0xEF) { p++; if ((unsigned char)*p == 0xBC) { p++; if ((unsigned char)*p == 0x9A) { p++; } } } + else { p++; } + } + // 读取字母数字序列作为批次号 + size_t j = 0; + while (*p && j < out_size - 1) { + if ((*p >= '0' && *p <= '9') || (*p >= 'A' && *p <= 'Z') || (*p >= 'a' && *p <= 'z') || *p == '_' || *p == '-') { + out_batch[j++] = *p++; + } else { + break; + } + } + out_batch[j] = '\0'; + if (j > 0) { + // 规范化:若形如 d+14位数字,转为大写D + if (j >= 15 && (out_batch[0] == 'm' || out_batch[0] == 'M')) { + int ok2 = 1; + for (int k = 1; k <= 14; ++k) { + char d = out_batch[k]; + if (d < '0' || d > '9') { ok2 = 0; break; } + } + if (ok2) out_batch[0] = 'M'; + } + return 0; + } + } + return -1; +} + +// 通过redis-cli查询批次映射得到MAC和密钥 +static int redis_query_device_info(const char* host_opt, const char* port_opt, const char* db_opt, + const char* pool_opt, const char* batch, + char* out_mac, size_t mac_size, + char* out_secret, size_t secret_size) { + if (!batch || !out_mac || mac_size < 18 || !out_secret || secret_size < 64) return -1; + + const char* host = host_opt ? host_opt : (getenv("REDIS_HOST") ? getenv("REDIS_HOST") : "180.163.74.83"); + int port = port_opt ? atoi(port_opt) : (getenv("REDIS_PORT") ? atoi(getenv("REDIS_PORT")) : 6379); + int db = db_opt ? atoi(db_opt) : (getenv("REDIS_DB") ? atoi(getenv("REDIS_DB")) : 0); + const char* pool = pool_opt ? pool_opt : (getenv("REDIS_POOL") ? getenv("REDIS_POOL") : "batch_sn_mapping_mt"); + const char* auth = getenv("REDIS_AUTH"); + if (!auth || !*auth) auth = "Zzh08165511"; + + fprintf(stderr, "[redis] connect host=%s port=%d db=%d pool=%s batch=%s\n", host, port, db, pool, batch); + + struct timeval tv; tv.tv_sec = 3; tv.tv_usec = 0; + redisContext* c = redisConnectWithTimeout(host, port, tv); + if (!c || c->err) { + fprintf(stderr, "[redis] connect error: %s\n", c ? c->errstr : "unknown"); + if (c) redisFree(c); + return -1; + } + + if (auth && *auth) { + redisReply* ra = (redisReply*)redisCommand(c, "AUTH %s", auth); + if (!ra || (ra->type == REDIS_REPLY_ERROR)) { + fprintf(stderr, "[redis] AUTH error: %s\n", ra && ra->str ? ra->str : "no-reply"); + if (ra) freeReplyObject(ra); + redisFree(c); + return -1; + } + fprintf(stderr, "[redis] AUTH ok\n"); + freeReplyObject(ra); + } + + if (db > 0) { + redisReply* rs = (redisReply*)redisCommand(c, "SELECT %d", db); + if (!rs || (rs->type == REDIS_REPLY_ERROR)) { + fprintf(stderr, "[redis] SELECT %d error: %s\n", db, rs && rs->str ? rs->str : "no-reply"); + if (rs) freeReplyObject(rs); + redisFree(c); + return -1; + } + fprintf(stderr, "[redis] SELECT %d ok\n", db); + freeReplyObject(rs); + } + + // 尝试 HGET pool batch + redisReply* r = (redisReply*)redisCommand(c, "HGET %s %s", pool, batch); + if (r) { + fprintf(stderr, "[redis] HGET %s %s -> type=%d len=%ld\n", pool, batch, r->type, (long)(r->type==REDIS_REPLY_STRING ? r->len : 0)); + if (r->type == REDIS_REPLY_STRING && r->str && r->len > 0) { + fprintf(stderr, "[redis] HGET value: %.*s\n", (int)((r->len>128)?128:r->len), r->str); + + // 解析格式: "90A9F73002CD:kapoePfwbQ2tFkeRpR3Nut" + char* colon = strchr(r->str, ':'); + if (colon) { + // 提取MAC部分(12个字符) + size_t mac_len = colon - r->str; + if (mac_len == 12) { + // 格式化为MAC地址格式 XX:XX:XX:XX:XX:XX + snprintf(out_mac, mac_size, "%c%c:%c%c:%c%c:%c%c:%c%c:%c%c", + r->str[0], r->str[1], r->str[2], r->str[3], + r->str[4], r->str[5], r->str[6], r->str[7], + r->str[8], r->str[9], r->str[10], r->str[11]); + to_upper_str(out_mac); + + // 提取密钥部分(冒号后面的内容) + strncpy(out_secret, colon + 1, secret_size - 1); + out_secret[secret_size - 1] = '\0'; + + fprintf(stderr, "[redis] Parsed MAC: %s, Secret: %s\n", out_mac, out_secret); + freeReplyObject(r); + redisFree(c); + return 0; + } + } + } + freeReplyObject(r); + } else { + fprintf(stderr, "[redis] HGET no-reply\n"); + } + + fprintf(stderr, "[redis] not found or value not parsable\n"); + redisFree(c); + return -1; +} + +// 审计:在Redis记录每次使用的MAC、批次与时间 +static int redis_audit_log(const char* host_opt, const char* port_opt, const char* db_opt, + const char* audit_key_opt, const char* batch, const char* mac, const char* note_opt) { + if (!batch || !*batch || !mac || !*mac) return -1; + + const char* host = host_opt ? host_opt : (getenv("REDIS_HOST") ? getenv("REDIS_HOST") : "180.163.74.83"); + int port = port_opt ? atoi(port_opt) : (getenv("REDIS_PORT") ? atoi(getenv("REDIS_PORT")) : 6379); + int db = db_opt ? atoi(db_opt) : (getenv("REDIS_DB") ? atoi(getenv("REDIS_DB")) : 0); + const char* auth = getenv("REDIS_AUTH"); + if (!auth || !*auth) auth = "Zzh08165511"; + const char* audit_key = audit_key_opt ? audit_key_opt : (getenv("REDIS_AUDIT_KEY") ? getenv("REDIS_AUDIT_KEY") : "mac_batch_audit_mt"); + + struct timeval tv; tv.tv_sec = 3; tv.tv_usec = 0; + redisContext* c = redisConnectWithTimeout(host, port, tv); + if (!c || c->err) { + fprintf(stderr, "[redis-audit] connect error: %s\n", c ? c->errstr : "unknown"); + if (c) redisFree(c); + return -1; + } + + if (auth && *auth) { + redisReply* ra = (redisReply*)redisCommand(c, "AUTH %s", auth); + if (!ra || (ra->type == REDIS_REPLY_ERROR)) { + fprintf(stderr, "[redis-audit] AUTH error: %s\n", ra && ra->str ? ra->str : "no-reply"); + if (ra) freeReplyObject(ra); + redisFree(c); + return -1; + } + freeReplyObject(ra); + } + + if (db > 0) { + redisReply* rs = (redisReply*)redisCommand(c, "SELECT %d", db); + if (!rs || (rs->type == REDIS_REPLY_ERROR)) { + fprintf(stderr, "[redis-audit] SELECT %d error: %s\n", db, rs && rs->str ? rs->str : "no-reply"); + if (rs) freeReplyObject(rs); + redisFree(c); + return -1; + } + freeReplyObject(rs); + } + + // 优先使用 Redis 服务器时间,避免设备本地时间不准 + long long sv_secs = -1; + { + redisReply* tr = (redisReply*)redisCommand(c, "TIME"); + if (tr && tr->type == REDIS_REPLY_ARRAY && tr->elements >= 2 && + tr->element[0] && tr->element[0]->str) { + sv_secs = atoll(tr->element[0]->str); + } else { + fprintf(stderr, "[redis-audit] TIME failed, fallback to local time\n"); + } + if (tr) freeReplyObject(tr); + } + + time_t base = (sv_secs > 0) ? (time_t)sv_secs : time(NULL); + // 中国时区(+08:00),不依赖设备TZ;格式为 YYYY-MM-DD HH:MM:SS + time_t base_cn = base + 8 * 3600; + struct tm tm_sv_cn; gmtime_r(&base_cn, &tm_sv_cn); + char ts_cn[24]; + strftime(ts_cn, sizeof(ts_cn), "%Y-%m-%d %H:%M:%S", &tm_sv_cn); + + char val[320]; + snprintf(val, sizeof(val), "ts_cn=%s batch=%s mac=%s%s%s", ts_cn, batch, mac, + (note_opt && *note_opt) ? " note=" : "", + (note_opt && *note_opt) ? note_opt : ""); + + // 写入总审计列表 + redisReply* r = (redisReply*)redisCommand(c, "LPUSH %s %s", audit_key, val); + if (!r || r->type == REDIS_REPLY_ERROR) { + fprintf(stderr, "[redis-audit] LPUSH %s failed: %s\n", audit_key, r && r->str ? r->str : "no-reply"); + if (r) freeReplyObject(r); + redisFree(c); + return -1; + } + freeReplyObject(r); + + // 同时按批次维度记录,key为 : + char batch_key[128]; + snprintf(batch_key, sizeof(batch_key), "%s:%s", audit_key, batch); + r = (redisReply*)redisCommand(c, "LPUSH %s %s", batch_key, val); + if (!r || r->type == REDIS_REPLY_ERROR) { + fprintf(stderr, "[redis-audit] LPUSH %s failed: %s\n", batch_key, r && r->str ? r->str : "no-reply"); + if (r) freeReplyObject(r); + redisFree(c); + return -1; + } + freeReplyObject(r); + + redisFree(c); + fprintf(stderr, "[redis-audit] logged: %s | %s\n", batch, mac); + return 0; +} + +// 读取interfaces文件中的MAC地址 +static int get_mac_from_interfaces(const char* interfaces_path, char* out_mac, size_t out_size) { + FILE* f = fopen(interfaces_path, "r"); + if (!f) return -1; + + char line[256]; + while (fgets(line, sizeof(line), f)) { + if (strstr(line, "hwaddress ether")) { + char* mac_start = strstr(line, "ether"); + if (mac_start) { + mac_start += 6; // 跳过"ether " + char* mac_end = strchr(mac_start, '\n'); + if (mac_end) { + size_t len = mac_end - mac_start; + if (len > 0 && len < out_size) { + strncpy(out_mac, mac_start, len); + out_mac[len] = '\0'; + // 去除可能的空格 + char* space = strchr(out_mac, ' '); + if (space) *space = '\0'; + fclose(f); + return 0; + } + } + } + } + } + + fclose(f); + return -1; +} + +static int write_file(const char* path, const char* buf, size_t len) { + FILE* f = fopen(path, "wb"); + if (!f) return -1; + size_t n = fwrite(buf, 1, len, f); + // 确保数据写入到内核缓冲区 + fflush(f); + int rc = 0; + // 将数据与元数据刷新到磁盘,避免重启丢失 + int fd = fileno(f); + if (fd >= 0) { + if (fsync(fd) != 0) rc = -1; + } + fclose(f); + if (n != len) rc = -1; + return rc; +} + +// 写入interfaces文件,使用DHCP并设置MAC +static int update_interfaces_with_mac_dhcp(const char* interfaces_path, const char* mac_colon) { + const char* tmpl = + "# interfaces(5) file used by ifup(8) and ifdown(8)\n" + "# Include files from /etc/network/interfaces.d:\n" + "source-directory /etc/network/interfaces.d\n" + "auto lo\n" + "iface lo inet loopback\n" + "auto eth0\n" + "iface eth0 inet dhcp\n" + "hwaddress ether %s\n"; + + char* newbuf = (char*)malloc(1024); + if (!newbuf) { + fprintf(stderr, "malloc failed\n"); + return -1; + } + int n = snprintf(newbuf, 1024, tmpl, mac_colon); + if (n <= 0) { + free(newbuf); + return -1; + } + + int rc = write_file(interfaces_path, newbuf, (size_t)n); + if (rc == 0) { + sync(); + printf("写入interfaces文件并更新MAC: %s (DHCP)\n", mac_colon); + } else { + fprintf(stderr, "写入失败 %s\n", interfaces_path); + } + + free(newbuf); + return rc; +} + +static int scanner_read_event2(char* out, size_t out_size) { + const char* force_stdin = getenv("SCANNER_FORCE_STDIN"); + if (force_stdin && strcmp(force_stdin, "1") == 0) return -1; + + int fd = open("/dev/input/event2", O_RDONLY); + if (fd < 0) return -1; + struct input_event ev; + size_t j = 0; + int shift = 0; + while (1) { + ssize_t r = read(fd, &ev, sizeof(ev)); + if (r <= 0) continue; + if (ev.type != EV_KEY) continue; + + // 维护Shift状态 + if (ev.code == KEY_LEFTSHIFT || ev.code == KEY_RIGHTSHIFT) { + if (ev.value == 1) shift = 1; // 按下 + else if (ev.value == 0) shift = 0; // 松开 + continue; + } + + // 只在松开(key up)时采集字符,避免重复 + if (ev.value != 0) { + if (ev.code == KEY_ENTER || ev.code == KEY_KPENTER) { + break; + } + continue; + } + + char ch = 0; + switch (ev.code) { + // 数字键行 + case KEY_1: ch = shift ? '!' : '1'; break; + case KEY_2: ch = shift ? '@' : '2'; break; + case KEY_3: ch = shift ? '#' : '3'; break; + case KEY_4: ch = shift ? '$' : '4'; break; + case KEY_5: ch = shift ? '%' : '5'; break; + case KEY_6: ch = shift ? '^' : '6'; break; + case KEY_7: ch = shift ? '&' : '7'; break; + case KEY_8: ch = shift ? '*' : '8'; break; + case KEY_9: ch = shift ? '(' : '9'; break; + case KEY_0: ch = shift ? ')' : '0'; break; + // 小键盘数字 + case KEY_KP1: ch = '1'; break; case KEY_KP2: ch = '2'; break; case KEY_KP3: ch = '3'; break; + case KEY_KP4: ch = '4'; break; case KEY_KP5: ch = '5'; break; case KEY_KP6: ch = '6'; break; + case KEY_KP7: ch = '7'; break; case KEY_KP8: ch = '8'; break; case KEY_KP9: ch = '9'; break; + case KEY_KP0: ch = '0'; break; + + // 字母(显式映射,避免假设键码连续) + case KEY_A: ch = shift ? 'A' : 'a'; break; + case KEY_B: ch = shift ? 'B' : 'b'; break; + case KEY_C: ch = shift ? 'C' : 'c'; break; + case KEY_D: ch = shift ? 'D' : 'd'; break; + case KEY_E: ch = shift ? 'E' : 'e'; break; + case KEY_F: ch = shift ? 'F' : 'f'; break; + case KEY_G: ch = shift ? 'G' : 'g'; break; + case KEY_H: ch = shift ? 'H' : 'h'; break; + case KEY_I: ch = shift ? 'I' : 'i'; break; + case KEY_J: ch = shift ? 'J' : 'j'; break; + case KEY_K: ch = shift ? 'K' : 'k'; break; + case KEY_L: ch = shift ? 'L' : 'l'; break; + case KEY_M: ch = shift ? 'M' : 'm'; break; + case KEY_N: ch = shift ? 'N' : 'n'; break; + case KEY_O: ch = shift ? 'O' : 'o'; break; + case KEY_P: ch = shift ? 'P' : 'p'; break; + case KEY_Q: ch = shift ? 'Q' : 'q'; break; + case KEY_R: ch = shift ? 'R' : 'r'; break; + case KEY_S: ch = shift ? 'S' : 's'; break; + case KEY_T: ch = shift ? 'T' : 't'; break; + case KEY_U: ch = shift ? 'U' : 'u'; break; + case KEY_V: ch = shift ? 'V' : 'v'; break; + case KEY_W: ch = shift ? 'W' : 'w'; break; + case KEY_X: ch = shift ? 'X' : 'x'; break; + case KEY_Y: ch = shift ? 'Y' : 'y'; break; + case KEY_Z: ch = shift ? 'Z' : 'z'; break; + + // 其他符号 + case KEY_MINUS: ch = shift ? '_' : '-'; break; + case KEY_SEMICOLON: ch = shift ? ':' : ';'; break; + case KEY_APOSTROPHE: ch = shift ? '"' : '\''; break; + case KEY_BACKSLASH: ch = shift ? '|' : '\\'; break; + case KEY_EQUAL: ch = shift ? '+' : '='; break; + default: break; + } + + if (ch) { + if (j < out_size - 1) out[j++] = ch; + } + } + out[j] = '\0'; + close(fd); + return strlen(out) > 0 ? 0 : -1; +} + +// 黄灯控制函数实现 +static void gpio_init_yellow(void) { + int fd = open("/sys/class/gpio/export", O_WRONLY); + if (fd >= 0) { + write(fd, "113", 3); + close(fd); + } + fd = open("/sys/class/gpio/gpio113/direction", O_WRONLY); + if (fd >= 0) { + write(fd, "out", 3); + close(fd); + } +} + +static void* led_fast_blink_thread(void* arg) { + int fd = open("/sys/class/gpio/gpio113/value", O_WRONLY); + if (fd < 0) return NULL; + while (led_running) { + write(fd, "1", 1); + usleep(100000); // 100ms - 快速闪烁 + write(fd, "0", 1); + usleep(100000); // 100ms - 快速闪烁 + } + // ensure off + write(fd, "0", 1); + close(fd); + return NULL; +} + +static void start_yellow_fast_blink(void) { + if (led_running) return; + gpio_init_yellow(); + led_running = 1; + pthread_create(&led_thread, NULL, led_fast_blink_thread, NULL); +} + +static void stop_yellow_blink(void) { + if (!led_running) return; + led_running = 0; + // 等待线程退出 + pthread_join(led_thread, NULL); +} + +static void set_yellow_off(void) { + // 确保不再闪烁 + stop_yellow_blink(); + // 初始化GPIO并置为低电平(灭灯) + gpio_init_yellow(); + int fd = open("/sys/class/gpio/gpio113/value", O_WRONLY); + if (fd < 0) return; + write(fd, "0", 1); + close(fd); +} + +static int read_qrcode_string(char* out, size_t out_size) { + // Try hardware scanner first + printf("尝试读取硬件扫码内容...\n"); + if (scanner_read_event2(out, out_size) == 0) return 0; + // Fallback: read a line from stdin (useful for piping during tests) + fprintf(stdout, "请在终端输入扫码内容并回车...\n"); + if (fgets(out, (int)out_size, stdin) == NULL) return -1; + // trim newline + size_t n = strlen(out); + if (n && out[n-1] == '\n') out[n-1] = '\0'; + return strlen(out) > 0 ? 0 : -1; +} + +int main(int argc, char** argv) { + const char* interfaces_path = (argc >= 2) ? argv[1] : "/etc/network/interfaces"; + + setvbuf(stderr, NULL, _IONBF, 0); + + // 首先检查当前MAC地址 + char current_mac[32] = {0}; + if (get_mac_from_interfaces(interfaces_path, current_mac, sizeof(current_mac)) == 0) { + to_upper_str(current_mac); + printf("当前MAC地址: %s\n", current_mac); + + // 如果MAC不是默认值,程序退出 + if (strcmp(current_mac, "90:A9:F7:30:00:00") != 0) { + printf("MAC地址非默认,程序退出\n"); + set_yellow_off(); + return 0; + } + } + + // MAC是默认值,开始快速闪烁黄灯 + printf("MAC地址为默认值,开始快速闪烁黄灯\n"); + start_yellow_fast_blink(); + + printf("等待扫码...\n"); + + while (1) { + char scanbuf[512] = {0}; + if (read_qrcode_string(scanbuf, sizeof(scanbuf)) != 0) { + fprintf(stderr, "读取扫码内容失败,重试...\n"); + continue; + } + + printf("扫码原始内容: %s\n", scanbuf); + + // 提取批次号 + char batch[128] = {0}; + if (extract_batch(scanbuf, batch, sizeof(batch)) != 0) { + fprintf(stderr, "未识别到批次号,请重新扫码...\n"); + continue; + } + + printf("识别到批次号: %s\n", batch); + + // 查询Redis获取设备信息 + char mac[32] = {0}; + char secret[128] = {0}; + if (redis_query_device_info(NULL, NULL, NULL, NULL, batch, mac, sizeof(mac), secret, sizeof(secret)) != 0) { + fprintf(stderr, "Redis查询失败,请重试...\n"); + continue; + } + + printf("查询成功 - MAC: %s, Secret: %s\n", mac, secret); + + // 写入savedDevSn文件(不带冒号) + char mac_no_colon[13] = {0}; // 12位MAC + \0 + for (int i = 0, j = 0; i < strlen(mac) && j < 12; i++) { + if (mac[i] != ':') { + mac_no_colon[j++] = mac[i]; + } + } + if (write_file("/root/savedDevSn", mac_no_colon, strlen(mac_no_colon)) == 0) { + printf("已写入 /root/savedDevSn: %s\n", mac_no_colon); + } else { + fprintf(stderr, "写入 /root/savedDevSn 失败\n"); + continue; + } + + // 写入appSecret文件 + if (write_file("/root/appSecret", secret, strlen(secret)) == 0) { + printf("已写入 /root/appSecret: %s\n", secret); + } else { + fprintf(stderr, "写入 /root/appSecret 失败\n"); + continue; + } + + // 写入interfaces文件(DHCP + MAC) + if (update_interfaces_with_mac_dhcp(interfaces_path, mac) == 0) { + printf("已更新 %s (DHCP + MAC: %s)\n", interfaces_path, mac); + } else { + fprintf(stderr, "更新 %s 失败\n", interfaces_path); + continue; + } + + // 记录审计日志 + redis_audit_log(NULL, NULL, NULL, NULL, batch, mac, "success"); + + // 停止黄灯闪烁 + stop_yellow_blink(); + set_yellow_off(); + + printf("所有配置更新完成!\n"); + + // 重启mt_server服务 + printf("正在重启mt_server服务...\n"); + + // 先重新加载systemd配置 + printf("重新加载systemd配置...\n"); + system("systemctl daemon-reload"); + + // 然后重启服务 + int ret = system("systemctl restart mt_server"); + if (ret == 0) { + printf("mt_server服务重启成功\n"); + } else { + printf("mt_server服务重启失败,返回码: %d\n", ret); + } + + break; + } + + return 0; +}