使用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之引用和类属性的初步理解
May 15 Python
详解Python中的文本处理
Apr 11 Python
Python3中多线程编程的队列运作示例
Apr 16 Python
python如何统计序列中元素
Jul 31 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
python生成密码字典的方法
Jul 06 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
Nov 16 Python
浅谈python函数调用返回两个或多个变量的方法
Jan 23 Python
python的set处理二维数组转一维数组的方法示例
May 31 Python
python opencv实现简易画图板
Aug 27 Python
python小技巧——将变量保存在本地及读取
Nov 13 Python
Python WSGI 规范简介
Apr 11 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
Protoss魔法科技
2020/03/14 星际争霸
php初学者写及时补给skype用户充话费的小程序
2008/11/02 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
php目录操作实例代码
2014/02/21 PHP
smarty中post用法实例
2014/11/28 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
Nodejs中Express 常用中间件 body-parser 实现解析
2017/05/22 NodeJs
基于vue 实现token验证的实例代码
2017/12/14 Javascript
angularjs select 赋值 ng-options配置方法
2018/02/28 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
用Python抢过年的火车票附源码
2015/12/07 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
提升Python程序性能的7个习惯
2019/04/14 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
python怎么判断素数
2020/07/01 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
大学生自我鉴定
2013/12/16 职场文书
国企干部对照检查材料
2014/08/22 职场文书
党性观念心得体会
2014/09/03 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL