使用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中的readline()方法的使用
May 24 Python
python基于phantomjs实现导入图片
May 13 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
PyCharm的设置方法和第一个Python程序的建立
Jan 16 Python
Python的高阶函数用法实例分析
Apr 11 Python
selenium+python环境配置教程详解
May 28 Python
wxPython色环电阻计算器
Nov 18 Python
pytorch的batch normalize使用详解
Jan 15 Python
Python单链表原理与实现方法详解
Feb 22 Python
Python解释器及PyCharm工具安装过程
Feb 26 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 Python
python爬虫快速响应服务器的做法
Nov 24 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编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
通用JS事件写法实现代码
2009/01/07 Javascript
用正则表达式 动态创建/增加css style script 兼容IE firefox
2009/03/10 Javascript
再论Javascript下字符串连接的性能
2011/03/05 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
jquery解析xml字符串示例分享
2014/03/25 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
再谈JavaScript线程
2015/07/10 Javascript
详谈javascript异步编程
2016/02/21 Javascript
浅析Bootstrap缩略图组件与警示框组件
2016/04/29 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
Python聚类算法之DBSACN实例分析
2015/11/20 Python
python实现爬虫统计学校BBS男女比例(一)
2015/12/31 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
解析python的局部变量和全局变量
2019/08/15 Python
python集合常见运算案例解析
2019/10/17 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
大学生饮食配送创业计划书
2014/01/04 职场文书
会计职业生涯规划书
2014/01/13 职场文书
超市工作总结范文2014
2014/12/19 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
雷锋的观后感
2015/06/10 职场文书
同学会感言
2015/07/30 职场文书
防溺水主题班会教案
2015/08/12 职场文书