From 3b73d6486127f720a04c05a7a145299e3db288b0 Mon Sep 17 00:00:00 2001 From: ranchuan Date: Tue, 12 Aug 2025 16:37:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0pg=E7=9A=84bootram;=20upload?= =?UTF-8?q?=20flash=E6=97=B6=E8=87=AA=E5=8A=A8=E8=BE=93=E5=85=A5=E5=AF=86?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/bootram_kl4.bin | Bin 0 -> 48260 bytes kunlun.py | 17 +++++++++++++++++ pass.py => password.py | 0 3 files changed, 17 insertions(+) create mode 100644 bin/bootram_kl4.bin rename pass.py => password.py (100%) diff --git a/bin/bootram_kl4.bin b/bin/bootram_kl4.bin new file mode 100644 index 0000000000000000000000000000000000000000..bd6e1193f9f34f1303549667d6b76aa53f5b338a GIT binary patch literal 48260 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 literal 0 HcmV?d00001 diff --git a/kunlun.py b/kunlun.py index 1f61f0e..d351f9a 100644 --- a/kunlun.py +++ b/kunlun.py @@ -25,6 +25,7 @@ from bin.base import bin_path from bin.factory_mode import ftm_handle from bin.crc import CRC16 from bin.get_log import print_log +from password import bootram_pssword def init_send(s_port:serial.Serial, send_str:str): @@ -254,6 +255,16 @@ def calc_flash_info_name(): +# 计算bootram密码 +def calc_bootram_pssword(info_file:str): + with open(info_file,mode='r',encoding='utf-8') as f: + lines=f.readlines() + for line in lines: + if(line.startswith('Chip Id')): + chip_id=line.split(':')[-1].strip() + password=bootram_pssword(chip_id) + return f"{password:08x}" + # 上传固件 def upload_fun(): @@ -264,6 +275,12 @@ def upload_fun(): print_device_str(ser_read_data) with open(calc_flash_info_name(),mode='w+',encoding='utf-8') as f: f.writelines(ser_read_data.decode('utf-8').split('\r\n')) + # 输入密码 + password=calc_bootram_pssword(calc_flash_info_name()) + ser.write(f"PSS {password}\n".encode("utf-8")) + time.sleep(0.5) + ser_read_data=ser.read(4096) + print_device_str(ser_read_data) # 显示image信息 ser.write(b"f s\n") time.sleep(1) diff --git a/pass.py b/password.py similarity index 100% rename from pass.py rename to password.py