fix(protocol): RXTX 命令通道切换到 331f(实机证据:1f1f 仅ACK不执行)+ 设备ID反解参数序校正(实机向量),150 测试全绿

This commit is contained in:
agent committed 2026-07-28 16:22:46 +00:00
1 parent 4db823f207
commit aebe0ad317
6 files changed
+33 -18

No files matched your search

+3 -3
View File
@@ -213,11 +213,11 @@ class TestOta:
class TestActivateAuto:
def test_activate_auto_via_device_id(self, capsys):
"""EFEF 应答 ID '89794900980101' → MAC 9A:01:99:50:10:20 → keygen → EF 下发"""
"""EFEF 应答 ID '81233F3C267112' → MAC 28:BF:5D:5A:BC:18 → keygen → EF 下发"""
class IdTransport(FakeTransport):
async def request_device_id(self, timeout=8.0):
self.rxtx_writes.append(bytes([0xEF, 0xEF]))
return "89794900980101"
return "81233F3C267112"
FakeTransport.instances.clear()
import ppclock.cli as c
orig = c._make_transport
@@ -231,7 +231,7 @@ class TestActivateAuto:
assert t.rxtx_writes[0] == bytes([0xEF, 0xEF])
# keygen(9A,01,99,50,10,20):逐字节 rol2(((m<<1)&FF)^EF)%101
from ppclock.protocol import keygen_code
expected = keygen_code(bytes([0x9A, 0x01, 0x99, 0x50, 0x10, 0x20]))
expected = keygen_code(bytes([0x28, 0xBF, 0x5D, 0x5A, 0xBC, 0x18]))
assert t.rxtx_writes[1] == bytes([0xEF]) + expected
assert out["data"]["code"] == expected.hex()