使用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 29 Python
Python线性回归实战分析
Feb 01 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
详解python中@的用法
Mar 27 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
Jul 06 Python
python 接口实现 供第三方调用的例子
Aug 13 Python
简单了解python装饰器原理及使用方法
Dec 18 Python
python使用正则表达式(Regular Expression)方法超详细
Dec 30 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
python脚本第一行如何写
Aug 30 Python
python可视化大屏库big_screen示例详解
Nov 23 Python
Python中npy和mat文件的保存与读取
Apr 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
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
解析PHP将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
php+jQuery+Ajax简单实现页面异步刷新
2016/08/08 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
setAttribute 与 class冲突解决
2008/02/17 Javascript
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
vue axios 在页面切换时中断请求方法 ajax
2018/03/05 Javascript
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
vue axios请求成功却进入catch的原因分析
2020/09/08 Javascript
[50:01]Ti4 冒泡赛第二天 NEWBEE vs Titan
2014/07/15 DOTA
python实现telnet客户端的方法
2015/04/15 Python
Python实现豆瓣图片下载的方法
2015/05/25 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
浅谈Python访问MySQL的正确姿势
2020/01/07 Python
Django路由层URLconf作用及原理解析
2020/09/24 Python
护士自我评价
2014/02/01 职场文书
在职证明书范本(2014新版)
2014/09/25 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
实习推荐信格式模板
2015/03/27 职场文书
Python入门之基础语法详解
2021/05/11 Python
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers