使用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的struct模块中进行数据格式转换的方法
Jun 17 Python
Python tkinter事件高级用法实例
Jan 31 Python
python如何使用unittest测试接口
Apr 04 Python
对Python 网络设备巡检脚本的实例讲解
Apr 22 Python
python numpy元素的区间查找方法
Nov 14 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
Python自动化测试笔试面试题精选
Mar 12 Python
Python虚拟环境库virtualenvwrapper安装及使用
Jun 17 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 Python
Python虚拟环境的创建和使用详解
Sep 07 Python
Python Django路径配置实现过程解析
Nov 05 Python
python OpenCV学习笔记
Mar 31 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自定义大小验证码的方法详解
2013/06/07 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
javascript中的startWith和endWith的几种实现方法
2013/05/07 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
如何选择适合你的JavaScript框架
2017/11/20 Javascript
详解element-ui日期时间选择器的日期格式化问题
2019/04/08 Javascript
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
python基础教程之序列详解
2014/08/29 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
iRobot官网:改变生活的家用机器人品牌
2016/09/20 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
幼教个人求职信范文
2013/12/02 职场文书
学校门卫工作职责
2013/12/07 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
大学秋游活动方案
2014/02/11 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
使用MybatisPlus打印sql语句
2022/04/22 SQL Server