V5.5.7版本发布

5.5.7版本
--新增安装小米刷机驱动
--修复无法获取zip卡刷包文件名BUG
main 2.2.0
奥奥emoji 2022-05-22 22:51:27 +08:00 committed by GitHub
parent fcbbb46fca
commit 275675e268
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 327 additions and 13 deletions

View File

@ -2,7 +2,7 @@
# @Author: aoao
# @Date: 2022-05-06 11:11:25
# @Last Modified by: aoao
# @Last Modified time: 2022-05-21 15:35:59
# @Last Modified time: 2022-05-22 22:39:44
import os
import time
@ -18,21 +18,49 @@ from os.path import isfile, isdir, join
5.0.0版本
--新增中英文识别切换
--新增lib目录检查
5.5.7版本
--新增安装小米刷机驱动
--修复无法获取zip卡刷包文件名BUG
"""
updatakey = "V5.5.7"
path = os.getcwd()
ospath = path + "\\DXY"
imgpath = path + "\\images\\"
libpath = path + "\\lib\\"
# boot的路径
boot_patch = path + "\\images\\boot.img"
exe_path = path + '\\lib'
# 驱动路径
driver = path + "\\lib\\driver\\"
emmmmzip = str(path)
# 卡刷包命名获取 V5.5.6
zipname = re.search( r'(DXY|Fiime).{0,100}', emmmmzip, re.M)
zipname = zipname.group()+".zip"
if zipname:
zipname = zipname.group()+".zip"
# V5.5.7 安装小米刷机驱动
def bit():
if ('PROGRAMFILES(X86)' in os.environ) == True:
print("当前系统为:64位")
print("开始安装小米刷机驱动...")
os.system(driver + 'DPInst64.exe')
else:
print("当前系统为:32位")
print("开始安装小米刷机驱动...")
os.system(driver + 'DPInst32.exe')
def bit_en():
if ('PROGRAMFILES(X86)' in os.environ) == True:
print("The current system is:64Bit")
print("Start installing the Mi Flash driver...")
os.system(driver + 'DPInst64.exe')
else:
print("The current system is:32Bit")
print("Start installing the Mi Flash driver...")
os.system(driver + 'DPInst32.exe')
# 刷机工具环境
@ -766,16 +794,20 @@ def onlya_en(): # 新增onlya刷机方案 3.0版本
def mainchoice():
print('{:=^80}'.format(str1))
print("请输入对应的\"数字\"指令选择机型进行刷机操作:")
print("1.Erofs机型:\n[小米12(cupid) 小米12Pro(zeus)\n小米12X(psyche) 小米MIX4(odin) 小米CIVI(mona)]")
print("1.Erofs机型:\n小米12(cupid) 小米12Pro(zeus)\n小米12X(psyche) 小米MIX4(odin) 小米CIVI(mona)")
print(" ")
print("2.Vab机型\n[小米平板5ProWifi(elish) 小米11Pro(star) 小米11(venus) 小米11青春版(renoir)\n小米10S(thyme) 红米K40(alioth) 红米K40Pro(haydn) 红米K40S(munch)]")
print("2.Vab机型\n小米平板5ProWifi(elish) 小米11Pro(star) 小米11(venus) 小米11青春版(renoir)\n小米10S(thyme) 红米K40(alioth) 红米K40Pro(haydn) 红米K40S(munch)")
print(" ")
print("3.OnlyA机型\n[小米10(umi) 小米10Pro(cmi) 小米10Uitra(cas) 小米10青春版(vangogh)\n红米K30Pro(lmi) 红米K30i-5G(picasso) 红米K30S 至尊纪念版(apollo)]")
print("3.OnlyA机型\n小米10(umi) 小米10Pro(cmi) 小米10Uitra(cas) 小米10青春版(vangogh)\n红米K30Pro(lmi) 红米K30i-5G(picasso) 红米K30S 至尊纪念版(apollo)")
print(" ")
print("4.Erofs_MTK机型:\n[红米K50(rubens) 红米K50Pro(matisse)]")
print("4.Erofs_MTK机型:\n红米K50(rubens) 红米K50Pro(matisse)")
print(" ")
print("5.打包成卡刷包(测试)")
print(" ")
print("6.安装小米刷机驱动")
print(" ")
print("0.退出程序")
print(" ")
print('需注意文件夹名称请以解压的7z压缩包文件名为准否则识别不到机型')
print('{:=^80}'.format(str1))
@ -821,6 +853,12 @@ def mainchoice():
print("30s后结束程序")
time.sleep(30)
break
elif userchocie == "6":
bit()
elif userchocie == "0":
print("30秒后自动退出")
time.sleep(3)
exit()
else:
os.system("cls")
print("输入有误,请重新输入!")
@ -981,16 +1019,20 @@ def erofs_mtk():
def mainchoice_en():
print('{:=^80}'.format(str1))
print("Please input the Number to select the Flash Plan:")
print("1.Erofs:\n[Xiaomi12(cupid) Xiaomi12Pro(zeus)\nXiaomi12X(psyche) XiaomiMIX4(odin) XiaomiCIVI(mona)]")
print("1.Erofs:\nXiaomi12(cupid) Xiaomi12Pro(zeus)\nXiaomi12X(psyche) XiaomiMIX4(odin) XiaomiCIVI(mona)")
print(" ")
print("2.Vab\n[XiaomiTablet5ProWifi(elish) Xiaomi11Pro(star) Xiaomi11(venus) Xiaomi11Young(renoir)\nXiaomi10S(thyme) RedmiK40(alioth) RedmiK40Pro(haydn) RedmiK40S(munch)]")
print("2.Vab\nXiaomiTablet5ProWifi(elish) Xiaomi11Pro(star) Xiaomi11(venus) Xiaomi11Young(renoir)\nXiaomi10S(thyme) RedmiK40(alioth) RedmiK40Pro(haydn) RedmiK40S(munch)")
print(" ")
print("3.OnlyA\n[Xiaomi10(umi) Xiaomi10Pro(cmi) Xiaomi10Uitra(cas) Xiaomi10Young(vangogh)\nRedmiK30Pro(lmi) RedmiK30i-5G(picasso) RedmiK30S Plus(apollo)]")
print("3.OnlyA\nXiaomi10(umi) Xiaomi10Pro(cmi) Xiaomi10Uitra(cas) Xiaomi10Young(vangogh)\nRedmiK30Pro(lmi) RedmiK30i-5G(picasso) RedmiK30S Plus(apollo)")
print(" ")
print("4.Erofs_MTK:\n[RedmiK50(rubens) RedmiK50Pro(matisse)]")
print("4.Erofs_MTK:\nRedmiK50(rubens) RedmiK50Pro(matisse)")
print(" ")
print("5.Switching Zip (test)")
print(" ")
print("6.Install the Flash driver")
print(" ")
print("0.Exit")
print(" ")
print('Note: The folder name to extract the 7Z package file name as the standard, otherwise not recognized to the model')
print('{:=^80}'.format(str1))
@ -1034,6 +1076,12 @@ def mainchoice_en():
print("Package is complete, please put into the device to perform the Flash!")
time.sleep(30)
break
elif userchocie == "6":
bit_en()
elif userchocie == "0":
print("You choice Exit after 3s...")
time.sleep(3)
exit()
else:
os.system("cls")
print("Error in input, Please re-enter!")
@ -1199,7 +1247,7 @@ def mainleader():
global str1
str1= "===="
title = "欢迎使用FiimeFlash刷机脚本工具(作者:奥奥)"
version = "Version:5.5.0"
version = "Version:" + updatakey
web = "官网: https://mi.fiime.cn 技术支持:DXY"
print('{:=^80}'.format(str1))
print('{: ^70}'.format(title))
@ -1221,7 +1269,7 @@ def mainleader_en():
global str1
str1= "===="
title = "Welcome to use FiimeFlash(By:Jamine)"
version = "Version:5.5.0"
version = "Version:" + updatakey
web = "Website: https://mi.fiime.cn Support:DXY"
print('{:=^80}'.format(str1))
print('{: ^70}'.format(title))

View File

@ -0,0 +1,2 @@
@echo off
start DPInst32.exe

View File

@ -0,0 +1,2 @@
@echo off
start DPInst64.exe

BIN
lib/driver/DPInst32.exe Normal file

Binary file not shown.

BIN
lib/driver/DPInst64.exe Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,195 @@
;
; Android WinUsb driver installation.
;
[Version]
Signature = "$Windows NT$"
Class = AndroidUsbDeviceClass
ClassGuid = {3F966BD9-FA04-4ec5-991C-D326973B5128}
Provider = %ProviderName%
DriverVer = 08/28/2014,11.0.0000.00000
CatalogFile.NTx86 = androidwinusb86.cat
CatalogFile.NTamd64 = androidwinusba64.cat
[ClassInstall32]
Addreg = AndroidWinUsbClassReg
[AndroidWinUsbClassReg]
HKR,,,0,%ClassName%
HKR,,Icon,,-1
[Manufacturer]
%ProviderName% = Google, NTx86, NTamd64
[Google.NTx86]
;Google Nexus One
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02&MI_01
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E11
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E12&MI_01
;Google Nexus S
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E21
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E22&MI_01
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E23
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E24&MI_01
;Google Nexus 7
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4E40
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E42&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E44&MI_01
;Google Nexus Q
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_2C10
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_2C11
;Google Nexus (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4EE0
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE2&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE4&MI_02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE6&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE7
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_D001
;Google Glass
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_9001
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_9001&MI_01
;Google Glass EE1
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_9003
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_9003&MI_01
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_9004
;Google Glass EE2
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_9005
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_9005&MI_00
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_9006
;Project Tango (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4D00
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D02&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D04&MI_02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D06&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D07
[Google.NTamd64]
;Google Nexus One
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02&MI_01
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E11
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E12&MI_01
;Google Nexus S
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E21
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E22&MI_01
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E23
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E24&MI_01
;Google Nexus 7
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4E40
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E42&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E44&MI_01
;Google Nexus Q
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_2C10
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_2C11
;Google Nexus (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4EE0
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE2&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE4&MI_02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE6&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE7
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_D001
;Google Glass
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_9001
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_9001&MI_01
;Google Glass EE1
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_9003
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_9003&MI_01
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_9004
;Google Glass EE2
%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_9005
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_9005&MI_00
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_9006
;Project Tango (generic)
%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4D00
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D02&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D04&MI_02
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D06&MI_01
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4D07
[USB_Install]
Include = winusb.inf
Needs = WINUSB.NT
[USB_Install.Services]
Include = winusb.inf
AddService = WinUSB,0x00000002,WinUSB_ServiceInstall
[WinUSB_ServiceInstall]
DisplayName = %WinUSB_SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WinUSB.sys
[USB_Install.Wdf]
KmdfService = WINUSB, WinUSB_Install
[WinUSB_Install]
KmdfLibraryVersion = 1.9
[USB_Install.HW]
AddReg = Dev_AddReg
[Dev_AddReg]
HKR,,DeviceInterfaceGUIDs,0x10000,"{F72FE0D4-CBCB-407d-8814-9ED673D0DD6B}"
[USB_Install.CoInstallers]
AddReg = CoInstallers_AddReg
CopyFiles = CoInstallers_CopyFiles
[CoInstallers_AddReg]
HKR,,CoInstallers32,0x00010000,"WdfCoInstaller01009.dll,WdfCoInstaller","WinUSBCoInstaller2.dll"
[CoInstallers_CopyFiles]
WinUSBCoInstaller2.dll
WdfCoInstaller01009.dll
[DestinationDirs]
CoInstallers_CopyFiles=11
[SourceDisksNames]
1 = %DISK_NAME%,,,\i386
2 = %DISK_NAME%,,,\amd64
[SourceDisksFiles.x86]
WinUSBCoInstaller2.dll = 1
WdfCoInstaller01009.dll = 1
[SourceDisksFiles.amd64]
WinUSBCoInstaller2.dll = 2
WdfCoInstaller01009.dll = 2
[Strings]
ProviderName = "Google, Inc."
SingleAdbInterface = "Android ADB Interface"
CompositeAdbInterface = "Android Composite ADB Interface"
SingleBootLoaderInterface = "Android Bootloader Interface"
WinUSB_SvcDesc = "Android USB Driver"
DISK_NAME = "Android WinUsb installation disk"
ClassName = "Android Device"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
Pkg.Revision=13
Archive.HostOs=WINDOWS
Extra.Path=usb_driver

11
lib/foot.txt Normal file
View File

@ -0,0 +1,11 @@
ui_print " "
ui_print " "
ui_print "刷机已完成!"
ui_print "======================================"
ui_print "红色分区挂载报错请忽略"
ui_print "======================================"
ui_print " "
ui_print " "
exit 0

53
lib/head.txt Normal file
View File

@ -0,0 +1,53 @@
#!/sbin/sh
OUTFD=/proc/self/fd/$2
ZIPFILE="$3"
ui_print() {
echo -e "ui_print $1\nui_print" >>$OUTFD
}
package_extract_file() {
ui_print " - 正在刷入 $(echo $1 | awk -F "/" '{print $NF}') 至 $(echo $2 | awk -F "/" '{print $NF}') 分区"
unzip -p "$ZIPFILE" $1 >$2
}
keyListener() {
ui_print "按下 [音量+] 选择 是,按下 [音量-] 选择 否"
ui_print ""
keyListener_2
}
keyListener_2() {
getevent -qlc 1 2>&1 | grep VOLUME | grep " DOWN" >/tmp/events
if $(grep -q "VOLUMEUP" /tmp/events); then
ui_print " - 正在执行中,请稍后......"
return 0
elif $(grep -q "VOLUMEDOWN" /tmp/events); then
ui_print " - 正在执行中,请稍后......"
return 1
else
keyListener_2
fi
}
bin=/tmp/bin/android
if [ -d $bin ]; then
rm -rf $bin
fi
mkdir -p $bin
unzip "$ZIPFILE" bin/android/* -d /tmp
chmod -R 0777 $bin
ui_print " "
ui_print " "
ui_print "======================================"
ui_print "FiimeDXY 纯净官改"
ui_print "官网https://mi.fiime.cn"
ui_print "由FiimeFlash工具打包完成"
ui_print "======================================"
ui_print " "
ui_print " "
ui_print " "
ui_print " "
ui_print " "