From 339873517e5628067e4ba85573db746e15c276d9 Mon Sep 17 00:00:00 2001 From: chenjintao Date: Thu, 24 Sep 2026 09:48:51 +0800 Subject: [PATCH] feat: add fast factory stage prompts --- .../customer_fs/factory_audio_loopback_zh.mp3 | Bin 0 -> 8253 bytes .../customer_fs/factory_nfc_test_zh.mp3 | Bin 0 -> 11061 bytes docs/factory_test.md | 7 +++++++ docs/factory_test_windows_fs.md | 6 +++++- factory_host/README.md | 4 ++-- factory_host/build_factory_audio_package.py | 6 ++++-- 6 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 audio_prompts/factory_test/customer_fs/factory_audio_loopback_zh.mp3 create mode 100644 audio_prompts/factory_test/customer_fs/factory_nfc_test_zh.mp3 diff --git a/audio_prompts/factory_test/customer_fs/factory_audio_loopback_zh.mp3 b/audio_prompts/factory_test/customer_fs/factory_audio_loopback_zh.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..115fa56d993521702819b5c05a462c4d5b879991 GIT binary patch literal 8253 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
vM>Rf@T_tl~d{HGN@vQfvZ4_1}JvyVIk5Y zA$A+c^^zA95;*x3BA>5I?Phrayp7XFGX-wXDUET-fIqZ!S=wCF{F^*uL^cp13RHvj z(GC)%1Uwl>%Cf*@3?0FD3+Ih%4Vo?E^OxVRBqxg2>izcCT|~6x^|p%|SISFp4Kq%@ zAE{095%{+Aej`q@T&eZPm!lw4+=@b-3(}e0du@Pj+bxG1GPrhcRK~l<^ylHp70u2} z0p&F*G8d;HJR@k0BgM#4#k`p-8_9iuE(gzrM~9efkO+gwoHzmcNaRYo)EL}+i+@dH zy!xQ95gz)*rz7n2OPU|C8@;bHz2jAKyhI6kRP*iKHHa{9 zy1KVM2x1jr_WjWKf=2dkwhcSRzWMKcbCUv9R`$@>HHtzYRGj{;(`dztinNMc@XlK1 zoY7~r!*RC}K`5LhxzS5&Y6m^)&eQ8} zsol&j0EaI*Di$6n4M-g?aCS48sxvD>Bh0W<|JBu_$B?PX7Rfz zeX{eFX*`Hm`7@Ta#)KhtSL(hW!IG_V9R&(ltW!+{*9{NPPR7=*5qzz;i?8o~Y3@hho~A^9RA7?1-((ESSr!p zu2*OvvS@y>A;}=Ch|`o1qDU-!Xre&Drn5RFtCux7$m!XBOA_-|vU54PhPrA5AtN5f zEBF~anH@5wUv}+sn{Ni*{bTXuIsk7|z>~ifg~4l(cRM{NNSP(%tf%CzD{&q79XmZq zBW=|U=S(N^#$}>{09XD)%_0-;Wb>piZjnyV@3!C#qj;)0D!SK^38_oM0)3O+PF1Sb zx$-Zj_i*E;Bg!+YR(EE@CC?LEy-#Z=LC|kFJF(rIXi#q`LD(C|;Za#maGzqfc8MOT zd6&9+znYHOa0-@e1|36yS9Armh#+88K<<9s zR@sQQ-qc8$%nNw!*qbKx;M~e>Vl;62WQxSQ<` z1^H)-T(M(D9I)ZT&`QL`#%%*EvpG|JrKb^@_7zwfZ3fLMEqGpE1cY<>a1+@AF?lFK zzDkrSvbf5o_E9Jmn2C^pRAVK@RrF)Q#O>DYdle@-=^9lJ;&C&(%mj+=L;+?>qcW-sR@z9#?)}JLP_Pm0|FEupvaUSU_Igah$TB1aKaMUP2VJzDi_4H(7xm*XjdExo(*B1Qh#UU!ZxC3Bnkk$ z82()agaL-2SS&QS4g1Al{+w}a)1f?CR=IS&un`vrhVK$78 z8dTOG4kpQG7H_NTt(*41T_#C%71Zg#;xIZMdFAk*g)5yn&3!wx;Nx&m>R9EvjtN+pBU6Y@0J4S zA^}kJu&Dg{H2Z&wQ5+I_q@dRhsED*lrR6XVu&xP5ls? zK#ukjYOI-Q`;1|xwyEP7TX~*RXIA4-wK>8qY~ey?igTNNQl6YUc$Io{B&XJRY<(=; z8F)osfNULWnzw(B_o^7GC9tN{@pvnYyw7`iMam`U^$VN=8RV8VmFe?01gazog0#*d z=JU87alE$O`QY7#TrX-h_$vo;TI24qLnibI5zIDynOx%*K}&_vr3kTPtMz^Qfyu ztx{NVCZjpytgJ2*4zOFFHM%SH7B!e5t7|H^OoUdmsjEKK9B(Z}u5jKC_^n8N_evHsYX-MDD&8#;eDkq^IgO zGt`jNR1)IlH~dfI$%Pb5PYc4B?(6-({|JhGGOKrjBk1>@D=CfPmA6CNluviN1&w~@ zH6E(UtXN|0jnQb6MHYRb6yWv^%el!x~Kvda5PBS_X z1v!YenIpOEK!Irxt;>!HHwuU6)=_+aI4|atvU0IuZ#&Nig6$!8%lE6gDdo@UV{NOS zTrD8^&CIOenD5pZbR@WrHI06(JUP=#uUh=G9S4SN-(7yl7>75GIM7A4@qq>kz}px!C>wMNR~Px`!04=MlW6G5fZ=m zoP!%I1*%Q_>W(ib#W@uJ&#YDd@A1!k2}@!3l8oTp{O{fWpY-_8HUA#olS}CFy}Ih- Ni(A0IoBzMh{tMz%&Sn4r literal 0 HcmV?d00001 diff --git a/audio_prompts/factory_test/customer_fs/factory_nfc_test_zh.mp3 b/audio_prompts/factory_test/customer_fs/factory_nfc_test_zh.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..a57f7145d04d172a906a3734c278cf17d5e670df GIT binary patch literal 11061 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 Fe*xUF&ZqzY literal 0 HcmV?d00001 diff --git a/docs/factory_test.md b/docs/factory_test.md index 6ccae49..ead6b4d 100644 --- a/docs/factory_test.md +++ b/docs/factory_test.md @@ -64,6 +64,13 @@ U:/factory_pass_zh.mp3 U:/factory_shutdown_zh.mp3 ``` +文件系统同时预留两段快速节点提示音,供后续接入测试节点时使用: + +```text +U:/factory_audio_loopback_zh.mp3 +U:/factory_nfc_test_zh.mp3 +``` + 对应资源源目录为: ```text diff --git a/docs/factory_test_windows_fs.md b/docs/factory_test_windows_fs.md index 9b8081a..709642c 100644 --- a/docs/factory_test_windows_fs.md +++ b/docs/factory_test_windows_fs.md @@ -2,10 +2,12 @@ ## 1. 说明 -产测固件从 U 盘文件系统根目录读取以下三个文件: +产测音频包包含以下五个文件: ```text factory_boot_zh.mp3 +factory_audio_loopback_zh.mp3 +factory_nfc_test_zh.mp3 factory_pass_zh.mp3 factory_shutdown_zh.mp3 ``` @@ -44,6 +46,8 @@ dir audio_prompts\factory_test\customer_fs ```text factory_boot_zh.mp3 +factory_audio_loopback_zh.mp3 +factory_nfc_test_zh.mp3 factory_pass_zh.mp3 factory_shutdown_zh.mp3 ``` diff --git a/factory_host/README.md b/factory_host/README.md index e9664bc..450dfba 100644 --- a/factory_host/README.md +++ b/factory_host/README.md @@ -30,7 +30,7 @@ burn_tool/aboot-tools-2024.08.08-win-x64/adownload.exe factory_host/dist/EG800FactoryHost.exe ``` -默认“产测固件”指向已包含三个产测 MP3 的 FT1 整包;默认“正式固件”指向 +默认“产测固件”指向已包含五个产测 MP3 的 FT1 整包;默认“正式固件”指向 `version` 目录中的正式内层 `-fac.zip`。两者都可在外置 `factory_host_config.json` 中替换,烧录时不要选择 `-target.zip` 外层归档。 @@ -69,7 +69,7 @@ python -B .\factory_host\build_factory_audio_package.py 脚本会执行以下检查: -1. 源目录必须且只能包含三个固定文件名。 +1. 源目录必须且只能包含五个固定文件名。 2. 每个文件必须为 16 kHz、单声道、48 kbps MP3。 3. 使用 SDK `mklfs-v2.exe -m` 生成 262144 字节 `customer_fs.bin`。 4. 立即反向解包镜像并逐文件比对 SHA-256。 diff --git a/factory_host/build_factory_audio_package.py b/factory_host/build_factory_audio_package.py index 5ef8d3d..a4b6dbd 100644 --- a/factory_host/build_factory_audio_package.py +++ b/factory_host/build_factory_audio_package.py @@ -1,4 +1,4 @@ -"""Validate and package the three fixed FT1 audio prompts.""" +"""Validate and package the fixed FT1 audio prompts.""" from __future__ import annotations @@ -15,6 +15,8 @@ from pathlib import Path EXPECTED_FILES = ( "factory_boot_zh.mp3", + "factory_audio_loopback_zh.mp3", + "factory_nfc_test_zh.mp3", "factory_pass_zh.mp3", "factory_shutdown_zh.mp3", ) @@ -165,7 +167,7 @@ def build_package(root: Path, output: Path) -> tuple[Path, Path, dict]: readme_path.write_text( "班班 FT1 产测音频包\n\n" "customer_fs.bin 固定为 262144 字节,用于 EG800AKCN_11LG 的 customer_fs 分区。\n" - "三个 MP3 必须位于 U:/ 根目录;不要将此镜像混入正式业务固件。\n" + "五个 MP3 必须位于 U:/ 根目录;不要将此镜像混入正式业务固件。\n" "烧录后以 FT1 BOOT_AUDIO 和最终 session_result 作为设备侧验证。\n", encoding="utf-8-sig", )