使用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写的一个简单DNS服务器实例
Jun 04 Python
Python脚本实现代码行数统计代码分享
Mar 10 Python
Python实现iOS自动化打包详解步骤
Oct 03 Python
Selenium的使用详解
Oct 19 Python
详解Python安装tesserocr遇到的各种问题及解决办法
Mar 07 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
Jul 16 Python
python返回数组的索引实例
Nov 28 Python
使用Django和Postgres进行全文搜索的实例代码
Feb 13 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
May 26 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
Dec 09 Python
手把手教你用Django执行原生SQL的方法
Feb 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
浅析PHP编程中10个最常见的错误
2014/08/08 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
js 金额文本框实现代码
2012/02/14 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
浅析Vue自定义组件的v-model
2017/11/26 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
详解webpack的proxyTable无效的解决方案
2018/06/15 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
2019/07/15 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
解决Can't find variable: SockJS vue项目的问题
2020/09/22 Javascript
python 垃圾收集机制的实例详解
2017/08/20 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
大学生军训自我评价分享
2013/11/09 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
护理专科学生自荐书
2014/07/05 职场文书
领导班子对照检查材料
2014/09/22 职场文书
表扬通报怎么写
2015/01/16 职场文书
安全员岗位职责范本
2015/04/11 职场文书
超市员工辞职信范文
2015/05/12 职场文书
入党介绍人意见2015
2015/06/01 职场文书
信仰观后感
2015/06/03 职场文书
话题作文之呼唤
2019/12/18 职场文书