使用python制作一个为hex文件增加版本号的脚本实例


Posted in Python onJune 12, 2019

最近公司一个项目需要用到IAP升级,要求将APP的版本号在hex文件添加,于是尝试用python写一个脚本,运行之后可以自动增加版本号,并且日期都是当天的

import re
import time
#获取日期的数据及校验和
year = int(time.strftime("%y", time.localtime()))
month = int(time.strftime("%m", time.localtime()))
date = int(time.strftime("%d", time.localtime()))
checkofsum = 512 - year - month - date - 4 - 255
#打开文件,以二进制打开文件方便seek函数的第一个参数可以取负数
#从而获取倒数第二行的数据(整个数据只有最后两行的数据数固定的)
f1 = open("E:\资料\K256(K211)\K256(从机部分)\APP\Objects\k256_slave.hex", "rb")
f2 = open("E:\资料\K256(K211)\K256(从机部分)\APP\Objects\k256_slave_1.hex", "w")
f1.seek(-34, 2)
str = f1.readline()
#解码并把空格去掉(将b''去掉,多出来的一行空格去掉)
#str为倒数第二行数据
str = str.decode("utf-8").rstrip()
f1.close()
#如何以二进制方式读取文件,即使解码去空格,jflash还是无法读取创建的hex文件
f1 = open("E:\资料\K256(K211)\K256(从机部分)\APP\Objects\k256_slave.hex", "r")
#在倒数第二行前加上版本号04FF000011091A00C9
#04表示本行数据的长度 FF00表示本行数据的起始地址 00表示数据类型
#11091A表示2017年9月26号 00表示app模式 C9校验和(前面所有数据总和取低八位再用0x100去减所得的结果)
f2.write(f1.read().replace(str, ":04FF0000%02X%02X%02X00%02X\r\n"%(year, month, date, checkofsum) + str))
f1.close()
f2.close()

修改前的APP的hex文件(地址最终在800B290)

使用python制作一个为hex文件增加版本号的脚本实例

修改后的app文件(地址最终在800FF00)

使用python制作一个为hex文件增加版本号的脚本实例

以上这篇使用python制作一个为hex文件增加版本号的脚本实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中的yield使用方法
Feb 11 Python
python通过字典dict判断指定键值是否存在的方法
Mar 21 Python
Python使用requests发送POST请求实例代码
Jan 25 Python
python模块smtplib实现纯文本邮件发送功能
May 22 Python
python中selenium操作下拉滚动条的几种方法汇总
Jul 14 Python
python sqlite的Row对象操作示例
Sep 11 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
Python使用jpype模块调用jar包过程解析
Jul 29 Python
python中的yield from语法快速学习
Nov 06 Python
python实现不同数据库间数据同步功能
Feb 25 Python
python中if和elif的区别介绍
Nov 07 Python
Python hexstring-list-str之间的转换方法
Jun 12 #Python
对python3.4 字符串转16进制的实例详解
Jun 12 #Python
python版DDOS攻击脚本
Jun 12 #Python
selenium处理元素定位点击无效问题
Jun 12 #Python
selenium跳过webdriver检测并模拟登录淘宝
Jun 12 #Python
python3.4 将16进制转成字符串的实例
Jun 12 #Python
python binascii 进制转换实例
Jun 12 #Python
You might like
PHP求最大子序列和的算法实现
2011/06/24 PHP
php读取3389的脚本
2014/05/06 PHP
php接口技术实例详解
2016/12/07 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
JavaScript的目的分析
2007/01/05 Javascript
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
jquery.cookie.js使用指南
2015/01/05 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
python之yield表达式学习
2014/09/02 Python
git进行版本控制心得详谈
2017/12/10 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
Python打印特殊符号及对应编码解析
2020/05/07 Python
python3 简单实现组合设计模式
2020/07/02 Python
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
英语专业学生的自我评价
2013/12/30 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
敬老模范事迹
2014/05/21 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
2015年六一儿童节活动总结
2015/02/11 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书