使用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二叉树遍历的实现方法
Nov 21 Python
分析Python编程时利用wxPython来支持多线程的方法
Apr 07 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 Python
Django ORM 常用字段与不常用字段汇总
Aug 09 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
Sep 11 Python
Python实现语音识别和语音合成功能
Sep 20 Python
基于python实现从尾到头打印链表
Nov 02 Python
如何使用python进行pdf文件分割
Nov 11 Python
PyTorch中的C++扩展实现
Apr 02 Python
Python将list元素转存为CSV文件的实现
Nov 16 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
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
虫族 ZERG 概述
2020/03/14 星际争霸
PHP 身份证号验证函数
2009/05/07 PHP
PHP日期处理函数 整型日期格式
2011/01/12 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
php使用PDO执行SQL语句的方法分析
2017/02/16 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
javascript省市级联功能实现方法实例详解
2015/10/20 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
微信小程序实现topBar底部选择栏效果
2018/07/20 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
python list转矩阵的实例讲解
2018/08/04 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
详解Django 时间与时区设置问题
2019/07/23 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
2020/04/09 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
运动会广播稿400字
2014/01/25 职场文书
《搭石》教学反思
2014/04/07 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
2015年学校后勤工作总结
2015/04/08 职场文书
KTV员工管理制度
2015/08/06 职场文书
Python集合的基础操作
2021/11/01 Python