Update deploy/deploy.py
master V0.2.6
wh201906 2 years ago
parent 2704b7cfc2
commit ce973fda96
No known key found for this signature in database

@ -2,15 +2,26 @@
[中文](doc/CHANGELOG/CHANGELOG_zh_CN.md) [中文](doc/CHANGELOG/CHANGELOG_zh_CN.md)
### V0.2.6
+ Add support for Iceman/RRG repo v4.15864 [#37](https://github.com/wh201906/Proxmark3GUI/issues/37)
+ Optimize mifare classic block writing logic
+ Fix the default lf config
+ Add feedback for the GUI failing to start the client
+ Add feedback for the client failing to connect to PM3 hardware
+ Detect PM3 hardware when searching serial ports
+ Remove extra empty lines in raw command output
+ Use embedded config files
+ Remove the wait time between performing nested attack then switching to staticnested attack
### V0.2.5 ### V0.2.5
+ Fix bug [#28](https://github.com/wh201906/Proxmark3GUI/issues/28) + Fix bug [#28](https://github.com/wh201906/Proxmark3GUI/issues/28)
### V0.2.4 ### V0.2.4
+ Clone EM410x card to T55xx card + Clone EM410x card to T55xx card
### V0.2.3 ### V0.2.3
+ Fix bug [#27](https://github.com/wh201906/Proxmark3GUI/issues/27) + Fix bug [#27](https://github.com/wh201906/Proxmark3GUI/issues/27)
+ Try to support Non-ASCII path + Try to support Non-ASCII path
### V0.2.2 ### V0.2.2
+ Load command format from external json file + Load command format from external json file

@ -1,17 +1,19 @@
import os, sys, shutil import os, sys, shutil
from win32api import GetFileVersionInfo from win32api import GetFileVersionInfo
from json import load from json import load
from re import fullmatch, IGNORECASE from re import fullmatch, sub, IGNORECASE
compressDirList = [] compressDirList = []
def getPEVersion(fname): def getPEVersion(fname):
try: try:
fileInfo = GetFileVersionInfo(fname, '\\') fileInfo = GetFileVersionInfo(fname, "\\")
version = "V%d.%d.%d" % (fileInfo['FileVersionMS'] / 65536, version = "V%d.%d.%d" % (
fileInfo['FileVersionMS'] % 65536, fileInfo["FileVersionMS"] / 65536,
fileInfo['FileVersionLS'] / 65536) fileInfo["FileVersionMS"] % 65536,
fileInfo["FileVersionLS"] / 65536,
)
except Exception: except Exception:
print("Cannot get version number of", fname) print("Cannot get version number of", fname)
return version return version
@ -19,7 +21,7 @@ def getPEVersion(fname):
os.chdir(sys.path[0]) os.chdir(sys.path[0])
print("Current Directory:", os.getcwd()) print("Current Directory:", os.getcwd())
targetName = os.path.abspath(os.getcwd()).split('\\')[-2] targetName = os.path.abspath(os.getcwd()).split("\\")[-2]
print("Target Name", targetName) print("Target Name", targetName)
src32Dir = "" src32Dir = ""
@ -63,11 +65,6 @@ elif not os.path.exists(dst32Dir):
print(dst32Dir, "doesn't exist, creating...") print(dst32Dir, "doesn't exist, creating...")
shutil.copytree("./32", dst32Dir) shutil.copytree("./32", dst32Dir)
shutil.copyfile(src32Path, dst32Path) shutil.copyfile(src32Path, dst32Path)
configPath = dst32Dir + "/config"
if os.path.exists(configPath):
print(configPath, "exists, replacing...")
shutil.rmtree(configPath)
shutil.copytree("../config", configPath)
compressDirList.append(dst32Dir) compressDirList.append(dst32Dir)
if os.path.exists(dst64Dir) and os.path.exists(dst64Path): if os.path.exists(dst64Dir) and os.path.exists(dst64Path):
@ -77,19 +74,23 @@ elif not os.path.exists(dst64Dir):
print(dst64Dir, "doesn't exist, creating...") print(dst64Dir, "doesn't exist, creating...")
shutil.copytree("./64", dst64Dir) shutil.copytree("./64", dst64Dir)
shutil.copyfile(src64Path, dst64Path) shutil.copyfile(src64Path, dst64Path)
configPath = dst64Dir + "/config"
if os.path.exists(configPath):
print(configPath, "exists, replacing...")
shutil.rmtree(configPath)
shutil.copytree("../config", configPath)
compressDirList.append(dst64Dir) compressDirList.append(dst64Dir)
# TODO: GUI+client # TODO: GUI+client
clientList = [ clientList = [
"official-v3.1.0", "rrg_other-v4.13441", "rrg_other-v4.14434", "official-v3.1.0",
"rrg_other-v4.14831" "rrg_other-v4.13441",
"rrg_other-v4.14434",
"rrg_other-v4.14831",
"rrg_other-v4.15864",
] ]
configList = []
for config in os.listdir("../config"):
configPath = os.path.join("../config", config)
if os.path.isfile(configPath) and config.endswith(".json"):
configList.append(config)
def generateClient(clientName): def generateClient(clientName):
global compressDirList global compressDirList
@ -105,12 +106,34 @@ def generateClient(clientName):
shutil.copytree(clientSrcDir, clientDstDir) shutil.copytree(clientSrcDir, clientDstDir)
shutil.copytree(dst64Dir, clientDstGUIDir) shutil.copytree(dst64Dir, clientDstGUIDir)
if "official" in clientName: if "official" in clientName:
shutil.copyfile("./client/GUIsettings_Official.ini", shutil.copyfile(
clientDstGUIDir + "/GUIsettings.ini") "./client/GUIsettings_Official.ini", clientDstGUIDir + "/GUIsettings.ini"
)
elif "rrg" in clientName: elif "rrg" in clientName:
shutil.copyfile("./client/GUIsettings_RRG.ini", shutil.copyfile(
clientDstGUIDir + "/GUIsettings.ini") "./client/GUIsettings_RRG.ini", clientDstGUIDir + "/GUIsettings.ini"
)
# Use exactly matched configFile if possible
version = clientName[clientName.find("v") :]
for config in configList:
if version in config:
print("Find matched config file", config)
with open(
clientDstGUIDir + "/GUIsettings.ini", "r", encoding="utf-8"
) as f:
data = f.read()
data = sub(
"configFile=:/config/.+\\.json",
"configFile=:/config/" + config,
data,
)
with open(
clientDstGUIDir + "/GUIsettings.ini", "w", encoding="utf-8"
) as f:
f.write(data)
compressDirList.append(clientDstDir) compressDirList.append(clientDstDir)
return clientDstDir
for cl in clientList: for cl in clientList:

@ -2,6 +2,17 @@
[English](../../CHANGELOG.md) [English](../../CHANGELOG.md)
### V0.2.6
+ 支持冰人版客户端 v4.15864 [#37](https://github.com/wh201906/Proxmark3GUI/issues/37)
+ 优化Mifare Classic卡写卡逻辑
+ 修复lf config默认配置
+ 添加客户端无法启动的提示
+ 添加PM3硬件连接失败的提示
+ 为PM3对应串口添加提示并自动选中
+ 修复原始指令框中有多余空行的问题
+ 内嵌不同客户端的配置文件
+ 去除从nested attack切换到staticnested attack的等待时间
### V0.2.5 ### V0.2.5
+ 修复 [#28](https://github.com/wh201906/Proxmark3GUI/issues/28) + 修复 [#28](https://github.com/wh201906/Proxmark3GUI/issues/28)

@ -59,7 +59,7 @@ qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target !isEmpty(target.path): INSTALLS += target
VERSION = 0.2.5 VERSION = 0.2.6
QMAKE_TARGET_PRODUCT = "Proxmark3GUI" QMAKE_TARGET_PRODUCT = "Proxmark3GUI"
QMAKE_TARGET_DESCRIPTION = "Proxmark3GUI" QMAKE_TARGET_DESCRIPTION = "Proxmark3GUI"
QMAKE_TARGET_COMPANY = "wh201906" QMAKE_TARGET_COMPANY = "wh201906"

Loading…
Cancel
Save