使用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删除文件示例分享
Jan 28 Python
跟老齐学Python之数据类型总结
Sep 24 Python
Python访问MySQL封装的常用类实例
Nov 11 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
python 获取当天凌晨零点的时间戳方法
May 22 Python
Python使用pickle模块实现序列化功能示例
Jul 13 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
python+selenium实现简历自动刷新的示例代码
May 20 Python
Python Pandas分组聚合的实现方法
Jul 02 Python
keras实现多GPU或指定GPU的使用介绍
Jun 17 Python
Python自定义sorted排序实现方法详解
Sep 18 Python
Python包资源下载路径报404解决方案
Nov 05 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
第十四节 命名空间 [14]
2006/10/09 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
PHP生成唯一订单号
2015/07/05 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
修改file按钮的默认样式实现代码
2013/04/23 Javascript
JavaScript中exec函数用法实例分析
2015/06/08 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
javascript-解决mongoose数据查询的异步操作
2016/12/22 Javascript
微信小程序button组件使用详解
2018/01/31 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
Python处理Excel文件实例代码
2017/06/20 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
postman传递当前时间戳实例详解
2019/09/14 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
C语言笔试题回忆
2015/04/02 面试题
init进程的作用
2012/04/12 面试题
送货司机岗位职责
2013/12/11 职场文书
优乐美广告词
2014/03/14 职场文书
食品安全宣传标语
2014/06/07 职场文书
工作证明范本(2篇)
2014/09/14 职场文书
领导干部作风整顿剖析材料
2014/10/11 职场文书
居委会工作总结2015
2015/05/18 职场文书
新手必备之MySQL msi版本下载安装图文详细教程
2021/05/21 MySQL