使用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实现类似ftp传输文件的网络程序示例
Apr 08 Python
python利用dir函数查看类中所有成员函数示例代码
Sep 08 Python
scrapy spider的几种爬取方式实例代码
Jan 25 Python
用tensorflow搭建CNN的方法
Mar 05 Python
浅谈Python中重载isinstance继承关系的问题
May 04 Python
Pycharm 设置自定义背景颜色的图文教程
May 23 Python
Python-ElasticSearch搜索查询的讲解
Feb 25 Python
Python提取频域特征知识点浅析
Mar 04 Python
Python enumerate函数遍历数据对象组合过程解析
Dec 11 Python
Django数据库操作之save与update的使用
Apr 01 Python
python实现人脸签到系统
Apr 13 Python
如何基于线程池提升request模块效率
Apr 18 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
《斗罗大陆》六翼天使武魂最强,为什么老千家不是上三宗?
2020/03/02 国漫
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
PHP写日志的实现方法
2014/11/05 PHP
PHP图形操作之Jpgraph学习笔记
2015/12/25 PHP
php微信开发之谷歌测距
2018/06/14 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
jQuery的deferred对象使用详解
2011/08/20 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
javascript实现控制div颜色
2015/07/07 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
JavaScript ES2019中的8个新特性详解
2019/02/20 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
python MySQLdb使用教程详解
2018/03/20 Python
django中related_name的用法说明
2020/05/20 Python
Python常用类型转换实现代码实例
2020/07/28 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
《小熊住山洞》教学反思
2014/02/21 职场文书
学校安全防火方案
2014/06/07 职场文书
超市客服工作职责
2014/06/11 职场文书
2014年乡镇领导个人整改措施
2014/09/19 职场文书
二年级语文下册复习计划
2015/01/19 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python