diff --git a/Makefile b/Makefile
index 839a52e..4f211e1 100755
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,11 @@
 build:
+	echo 别云间
+	echo 三年羁旅客,今日又南冠。
+	echo 无限山河泪,谁言天地宽。
+	echo 已知泉路近,欲别故乡难。
+	echo 毅魄归来日,灵旗空际看。 
+	echo
+	echo 译文:三年为抗清兵东走西飘荡,今天兵败被俘作囚入牢房。无限美好河山失陷伤痛泪,谁还敢说天庭宽阔地又广。已经知道黄泉之路相逼近,想到永别故乡实在心犯难。鬼雄魂魄等到归来那一日,灵旗下面要将故乡河山看。
 	echo "Build DEB..."
 	cp -rv uengine-loading-ubuntu.desktop       new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
 	cp -rv information.json                     new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
@@ -29,6 +36,7 @@ build:
 	cp -rv getxmlimg.py                         new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
 	cp -rv defult.svg                           new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
 	cp -rv builer.svg                           new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
+	cp -rv uengine-apk-builder-more             new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
 	cp -rv api                                  new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
 	cp -rv Help                                 new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
 	cp -rv Download.py                          new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
diff --git a/Model/__pycache__/__init__.cpython-37.pyc b/Model/__pycache__/__init__.cpython-37.pyc
index ccc5d02..5c93ee6 100644
Binary files a/Model/__pycache__/__init__.cpython-37.pyc and b/Model/__pycache__/__init__.cpython-37.pyc differ
diff --git a/mainwindow.py b/mainwindow.py
index b7a923e..cf9ec3b 100755
--- a/mainwindow.py
+++ b/mainwindow.py
@@ -1884,9 +1884,9 @@ adb = menu.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Name"])
 uengine = menu.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Name"])
 help = menu.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Name"])
 
-cleanProgramHistory = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][0]["Menu"][0])
-settingWindow = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][0]["Menu"][2])
-exitProgram = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][0]["Menu"][1])
+cleanProgramHistory = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(47), langFile[lang]["Main"]["MainWindow"]["Menu"][0]["Menu"][0])
+settingWindow = QtWidgets.QAction(QtGui.QIcon.fromTheme("settings"), langFile[lang]["Main"]["MainWindow"]["Menu"][0]["Menu"][2])
+exitProgram = QtWidgets.QAction(QtGui.QIcon.fromTheme("exit"), langFile[lang]["Main"]["MainWindow"]["Menu"][0]["Menu"][1])
 programmenu.addAction(cleanProgramHistory)
 programmenu.addAction(settingWindow)
 programmenu.addSeparator()
@@ -1901,11 +1901,11 @@ adbConnectDevice = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"
 adbChangeUengineDisplaySize = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][3])
 adbAndroidInstallAppList = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][4])
 adbTop = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][5])
-adbShell = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][6])
-adbScrcpyConnectUengine = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][7])
+adbShell = QtWidgets.QAction(QtGui.QIcon.fromTheme("terminal"), langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][6])
+adbScrcpyConnectUengine = QtWidgets.QAction(QtGui.QIcon.fromTheme("guiscrcpy"), langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][7])
 adb.addAction(adbUengineConnect)
 adb.addSeparator()
-adbServer = adb.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Name"])
+adbServer = adb.addMenu(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Name"])
 adb.addAction(adbConnectDevice)
 adb.addSeparator()
 adb.addAction(adbChangeUengineDisplaySize)
@@ -1914,13 +1914,13 @@ adb.addAction(adbTop)
 adb.addAction(adbShell)
 adb.addAction(adbScrcpyConnectUengine)
 adb.addSeparator()
-uengineUseAdbm = adb.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Name"])
-adbStartServer = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Menu"][0])
-adbStopServer = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Menu"][1])
-adbKillAdbProgress = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Menu"][2])
-uengineConnectAdb = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Menu"][0])
-uengineUseAdb = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Menu"][1])
-uengineDoNotUseAdb = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Menu"][2])
+uengineUseAdbm = adb.addMenu(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Name"])
+adbStartServer = QtWidgets.QAction(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Menu"][0])
+adbStopServer = QtWidgets.QAction(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Menu"][1])
+adbKillAdbProgress = QtWidgets.QAction(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][1]["Menu"][2])
+uengineConnectAdb = QtWidgets.QAction(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Menu"][0])
+uengineUseAdb = QtWidgets.QAction(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Menu"][1])
+uengineDoNotUseAdb = QtWidgets.QAction(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][1]["Menu"][8]["Menu"][2])
 # 绑定信号
 uengineConnectAdb.triggered.connect(UengineConnectAdb)
 adbConnectDevice.triggered.connect(AdbConnectDeviceShow)
@@ -1949,16 +1949,18 @@ uengineDoNotUseAdb.triggered.connect(UengineDoNotUseAdb)
 
 uengineAllowOrDisallowUpdateAndroidApp = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][13])
 uengineSetHttpProxy = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][15])
-uengineOpenDebBuilder = QtWidgets.QAction(QtGui.QIcon.fromTheme("deb"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][1])
+uengineOpenDebBuilder = QtWidgets.QAction(QtGui.QIcon.fromTheme("deb"), "UEngine 应用打包器(简单版)")
+uengineOpenDebBuilderMore = QtWidgets.QAction(QtGui.QIcon.fromTheme("deb"), "UEngine 应用打包器(高级版)")
 uengineKeyboardToMouse = QtWidgets.QAction(QtGui.QIcon.fromTheme("keyboard"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][7])
 uengineCheckCpu = QtWidgets.QAction(QtGui.QIcon.fromTheme("cpu"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][8])
 #uengineUbuntuInstall = QtWidgets.QAction(QtGui.QIcon.fromTheme("ubuntu-logo-icon"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][12])
-uengineDeleteUengineCheck = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][9])
+uengineDeleteUengineCheck = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(40), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][9])
 uengineReinstall = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][10])
 uengineUbuntuInstall = QtWidgets.QAction(QtGui.QIcon.fromTheme("ubuntu-logo-icon"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][14])
 uengineUbuntuInstallRoot = QtWidgets.QAction(QtGui.QIcon.fromTheme("ubuntu-logo-icon"), "在 Ubuntu 上安装 UEngine(SuperSU 镜像)")
 uengineWindowSizeSetting = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][16])
 uengine.addAction(uengineOpenDebBuilder)
+uengine.addAction(uengineOpenDebBuilderMore)
 uengine.addAction(uengineKeyboardToMouse)
 uengine.addAction(uengineCheckCpu)
 uengine.addSeparator()
@@ -1973,7 +1975,7 @@ uengine.addSeparator()
 uengineService = uengine.addMenu(QtGui.QIcon.fromTheme("services"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Name"])
 uengineInternet = uengine.addMenu(QtGui.QIcon.fromTheme("internet"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Name"])
 uengine.addSeparator()
-uengineIcon = uengine.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Name"])
+uengineIcon = uengine.addMenu(QtGui.QIcon.fromTheme("desktop"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Name"])
 uengine.addSeparator()
 uengine.addMenu(uengineUseAdbm)
 uengineData = uengine.addMenu(QtGui.QIcon.fromTheme("fileopen"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][6]["Name"])
@@ -1986,6 +1988,7 @@ uengineRoot = uengine.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["M
 uengineAllowOrDisallowUpdateAndroidApp.triggered.connect(AllowOrDisallowUpdateAndroidApp)
 uengineSetHttpProxy.triggered.connect(SetHttpProxy)
 uengineOpenDebBuilder.triggered.connect(OpenUengineDebBuilder)
+uengineOpenDebBuilderMore.triggered.connect(lambda: threading.Thread(target=os.system, args=[f"'{programPath}/uengine-apk-builder-more'"]).start())
 uengineKeyboardToMouse.triggered.connect(KeyboardToMouse)
 uengineCheckCpu.triggered.connect(UengineCheckCpu)
 uengineUbuntuInstall.triggered.connect(UengineUbuntuInstall)
@@ -2022,10 +2025,10 @@ uengineBridgeRestart.triggered.connect(UengineBridgeRestart)
 uengineBridgeReload.triggered.connect(UengineBridgeReload)
 uengineBridgeForceReload.triggered.connect(UengineBridgeForceReload)
 
-uengineSendUengineAndroidListForDesktop = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][0])
-uengineSendUengineAndroidListForLauncher = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][1])
-uengineAddNewUengineDesktopLink = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][2])
-uengineCleanAllUengineDesktopLink = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][3])
+uengineSendUengineAndroidListForDesktop = QtWidgets.QAction(QtGui.QIcon.fromTheme("desktop"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][0])
+uengineSendUengineAndroidListForLauncher = QtWidgets.QAction(QtGui.QIcon.fromTheme("desktop"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][1])
+uengineAddNewUengineDesktopLink = QtWidgets.QAction(QtGui.QIcon.fromTheme("desktop"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][2])
+uengineCleanAllUengineDesktopLink = QtWidgets.QAction(QtGui.QIcon.fromTheme("desktop"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][4]["Menu"][3])
 uengineIcon.addAction(uengineSendUengineAndroidListForDesktop)
 uengineIcon.addAction(uengineSendUengineAndroidListForLauncher)
 uengineIcon.addSeparator()
@@ -2064,10 +2067,10 @@ uengineInstallRootUengineImage.triggered.connect(InstallRootUengineImage)
 uengineBuildRootUengineImage.triggered.connect(BuildRootUengineImage)
 uengineReinstallUengineImage.triggered.connect(ReinstallUengineImage)
 
-helpOpenProgramUrl = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][0])
-makerWebsize = QtWidgets.QAction("作者个人站")
-helpForum = QtWidgets.QAction("程序论坛")
-uengineRunnerSearch = QtWidgets.QAction("查询指定程序在 UEngine 的运行情况")
+helpOpenProgramUrl = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(20), langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][0])
+makerWebsize = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(20), "作者个人站")
+helpForum = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(20), "程序论坛")
+uengineRunnerSearch = QtWidgets.QAction(QtWidgets.QApplication.style().standardIcon(20), "查询指定程序在 UEngine 的运行情况")
 helpUengineRunnerBugUpload = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][2])
 helpShowHelp = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][4])
 helpRunnerUpdate = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][3])
diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/Model/__init__.py b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/Model/__init__.py
index e6f57d3..0724c5b 100755
--- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/Model/__init__.py
+++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/Model/__init__.py
@@ -13,7 +13,7 @@ programPath = os.path.split(os.path.realpath(__file__))[0]  # 返回 string
 # 优先为深度终端
 terminal = ""
 terminalList = [
-    "deepin-terminal1",
+    "deepin-terminal",
     "mate-terminal",
     "gnome-terminal",
     "xfce4-terminal"
diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/information.json b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/information.json
index b6ce66f..d7896b4 100755
--- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/information.json
+++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/information.json
@@ -229,6 +229,7 @@
     "Contribute": [
         "<b>感谢以下用户提供的问题、建议、图标、代码等,如果有遗漏,请及时与开发者联系添加,以及如果侵犯到您的合法权益,也及时与开发者联系:</p>",
         "<hr>",
+        "感谢 Bail 为此程序做出的许多贡献;",
         "感谢 Bail、shenmo、Allen 反馈的图标无法正常拷贝的问题;",
         "感谢 Bail Pr 修复Python主版本号判断时潜在的问题的补丁;",
         "感谢 麻木法师(1312580754) 在星火应用商店QQ交流群展示的接口及其原理;",
diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder
index a543fca..4533230 100755
--- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder
+++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder
@@ -118,7 +118,7 @@ Maintainer: {}
 Depends: deepin-elf-verify, uengine (>= 1.0.1)
 Section: utils
 Priority: optional
-Description: {}\n'''.format(apkPackageNameNew, apkPackageVersion, apkChineseLabel, apkChineseLabel)
+Description: {}, Build By UEngine Runner Packager\n'''.format(apkPackageNameNew, apkPackageVersion, apkChineseLabel, apkChineseLabel)
             debPostinst = '''#!/bin/sh
 
 APK_DIR="/usr/share/uengine/apk"
@@ -427,6 +427,7 @@ if not lang in langFile.keys():
 information = json.loads(readtxt(programPath + "/information.json"))
 version = information["Version"]
 title = "{} {}".format(langFile[lang]["Uengine Apk Builder"]["Title"], version)
+#title = f"UEngine 运行器应用打包器(高级) {version}"
 iconPath = "{}/builer.svg".format(os.path.split(os.path.realpath(__file__))[0])
 
 ###########################
diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder-more b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder-more
new file mode 100755
index 0000000..90a0399
--- /dev/null
+++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder-more
@@ -0,0 +1,563 @@
+#!/usr/bin/env python3
+# 使用系统默认的 python3 运行
+###########################################################################################
+# 作者:gfdgd xi
+# 版本:1.8.1
+# 更新时间:2022年08月01日
+# 感谢:anbox、deepin 和 统信
+# 基于 Python3 的 PyQt5 构建
+###########################################################################################
+#################
+# 引入所需的库
+#################
+import os
+import sys
+import json
+import shutil
+import random
+import zipfile
+import traceback
+import subprocess
+import updatekiller
+import PyQt5.QtGui as QtGui
+import PyQt5.QtCore as QtCore
+import PyQt5.QtWidgets as QtWidgets
+from getxmlimg import getsavexml
+
+print("""南安军
+梅花南北路,风雨湿征衣。出岭同谁出?归乡如此归!
+山河千古在,城郭一时非。饿死真吾志,梦中行采薇。""")
+print("")
+print("""译文:由南往北走过大庾岭口,一路风雨打湿衣裳。想到去南岭时有哪些同伴,回到家乡却身为俘囚。
+祖国的河山千年万世永存,城郭只是暂时落入敌手。绝食而死是我真正的意愿,梦中也学伯夷叔齐,吃野菜充饥等死。""")
+print("================================")
+
+def FindApk():
+    path = QtWidgets.QFileDialog.getOpenFileName(widget, "选择 APK", json.loads(readtxt(get_home() + "/.config/uengine-runner/FindApkBuild.json"))["path"], "APK 可执行文件(*.apk);;所有文件(*.*)")
+    print(path)
+    if path[0] != "" and path[1] != "":
+        try:
+            combobox1.setEditText(path[0])
+            write_txt(get_home() + "/.config/uengine-runner/FindApkBuild.json", json.dumps({"path": os.path.dirname(path[0])}))  # 写入配置文件
+        except:
+            traceback.print_exc()
+            QtWidgets.QMessageBox.critical(widget, "错误", traceback.format_exc())
+
+def FindIcon():
+    path = QtWidgets.QFileDialog.getOpenFileName(widget, "选择 APK", json.loads(readtxt(get_home() + "/.config/uengine-runner/FindApkBuild.json"))["path"], "png 文件(*.png);;svg 文件(*.svg);;所有文件(*.*)")
+    if path[0] != "" and path[1] != "":
+        try:
+            iconText.setText(path[0])
+            #write_txt(get_home() + "/.config/uengine-runner/FindApkBuild.json", json.dumps({"path": os.path.dirname(path[0])}))  # 写入配置文件
+        except:
+            traceback.print_exc()
+            QtWidgets.QMessageBox.critical(widget, "错误", traceback.format_exc())
+
+class QT:
+    run = None
+
+def BuildDeb():
+    if combobox1.currentText() == "":
+        QtWidgets.QMessageBox.critical(None, "提示", "信息没有填写完整,无法继续打包 APK")
+        return
+    for i in textList:
+        if i.text() == "":
+            QtWidgets.QMessageBox.critical(None, "提示", "信息没有填写完整,无法继续打包 APK")
+            return
+    # 包名小写
+    packageText.setText(packageText.text().lower())
+    if not os.path.exists(combobox1.currentText()) or not os.path.exists(iconPath):
+        QtWidgets.QMessageBox.critical(None, "提示", "信息填写错误,无法继续打包 APK")
+        return
+    DisabledAndEnbled(True)
+    QT.run = BuildApkDeb(combobox1.currentText())
+    QT.run.signal.connect(TextboxAddText1)
+    QT.run.labelChange.connect(ChangeItems)
+    QT.run.tips.connect(TipsMessagebox)
+    QT.run.start()
+
+class BuildApkDeb(QtCore.QThread):
+    signal = QtCore.pyqtSignal(str)
+    labelChange = QtCore.pyqtSignal(str)
+    tips = QtCore.pyqtSignal(str)
+    
+    def __init__(self, apkPath) -> None:
+        self.apkPath = apkPath
+        super().__init__()
+
+    def RunCommandShow(self, command):
+        if command.replace(" ", "").replace("\n", "") == "":
+            return
+        self.signal.emit("$> {}".format(command))
+        res = subprocess.Popen([command], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+        # 实时读取程序返回
+        while res.poll() is None:
+            try:
+                texts = res.stdout.readline().decode("utf8")
+            except:
+                texts = ""
+            print(texts, end="")
+            self.signal.emit(texts)
+    # 已废弃
+    # TextboxAddText1(GetCommandReturn(command))
+
+    def run(self):
+        try:
+            apkPath = self.apkPath
+            tempPath = "/tmp/uengine-apk-builder-{}".format(int(random.randint(0, 1024)))
+            self.RunCommandShow("echo '======================================New===================================='")
+            self.RunCommandShow("echo '创建目录'")
+            self.RunCommandShow("mkdir -pv '{}/DEBIAN'".format(tempPath))
+            self.RunCommandShow("mkdir -pv '{}/usr/share/applications'".format(tempPath))
+            self.RunCommandShow("mkdir -pv '{}/usr/share/uengine/apk'".format(tempPath))
+            self.RunCommandShow("mkdir -pv '{}/usr/share/uengine/icons'".format(tempPath))
+            self.RunCommandShow("echo '写入文件,因为写入过程过于复杂,不显示写入命令……'")
+            apkPackageName = GetApkPackageName(apkPath, False)
+            apkPackageNameNew = packageText.text()
+            # 高级打包器直接忽略此勾选
+            #if check.isChecked():
+            #    apkPackageNameNew = GetApkPackageName(apkPath, True).lower().replace("_", "-")
+            #else:
+            #    apkPackageNameNew = GetApkPackageName(apkPath, False).lower().replace("_", "-")
+            apkPackageVersion = GetApkVersion(apkPath)
+            if apkPackageVersion[0].upper() == "V":
+                package = list(apkPackageVersion)
+                package.pop(0)
+                apkPackageVersion = "".join(package)
+            apkChineseLabel = GetApkChineseLabel(apkPath)
+            apkActivityName = GetApkActivityName(apkPath)
+            if sizes.isChecked() and os.path.exists(f"/usr/share/uengine/appetc/{apkPackageName}.txt"):
+                os.makedirs(f"{tempPath}/usr/share/uengine/appetc")
+                shutil.copy(f"/usr/share/uengine/appetc/{apkPackageName}.txt", f"{tempPath}/usr/share/uengine/appetc/{apkPackageName}.txt")
+            iconSavePath = "{}/usr/share/uengine/icons/{}.png".format(tempPath, apkPackageNameNew)
+            debControl = f'''Package: {apkPackageNameNew}
+Version: {versionText.text()}
+Architecture: all
+Maintainer: {makerText.text()}
+Depends: deepin-elf-verify, uengine (>= 1.0.1)
+Section: utils
+Priority: optional
+Description: {comText.text()}\n'''
+            debPostinst = '''#!/bin/sh
+
+APK_DIR="/usr/share/uengine/apk"
+APK_NAME="{}"
+APK_PATH="$APK_DIR/$APK_NAME"
+DESKTOP_FILE="{}"
+
+
+if [ -f $APK_PATH ]; then
+    echo "Installing $APK_NAME"
+else 
+    echo "ERROR: $APK_NAME does not exist."
+    exit 0
+fi
+
+session_manager=`ps -ef | grep "uengine session-manager" | grep -v grep`
+if test -z "$session_manager"; then
+    echo "ERROR: app install failed(session-manager is not running)."
+    sess_dir="/usr/share/uengine/session_install"
+    if [ ! -d $sess_dir ]; then
+        mkdir $sess_dir
+        chmod 777 $sess_dir
+    fi
+    apk_name=${{APK_PATH##*/}}
+    fileName="$sess_dir/$apk_name"
+    echo $DESKTOP_FILE > $fileName
+    abistr=""
+    if test -n "$abistr"; then
+        abi=`echo $abistr |awk -F \= '{{print $2}}'`
+        echo $abi >> $fileName
+    fi
+    chmod 766 $fileName
+fi
+
+/usr/bin/uengine-session-launch-helper -- uengine install  --apk="$APK_PATH"
+
+exit 0'''.format(apkPackageNameNew + ".apk", "/usr/share/applications/{}.desktop".format(apkPackageNameNew))
+            debPrerm = '''#!/bin/sh
+
+APP_NAME="{}"
+DESKTOP_FILE="{}"
+
+session_manager=`ps -ef | grep "uengine session-manager" | grep -v grep`
+if test -z "$session_manager"; then
+    echo "ERROR: app uninstall failed(session-manager is not running)."
+    sess_dir="/usr/share/uengine/session_uninstall"
+    if [ ! -d $sess_dir ]; then
+        mkdir $sess_dir
+        chmod 777 $sess_dir
+    fi
+    fileName="$sess_dir/$APP_NAME"
+    echo $DESKTOP_FILE > $fileName
+    chmod 766 $fileName
+fi
+
+echo "Uninstalling $APP_NAME"
+/usr/bin/uengine-session-launch-helper -- uengine uninstall --pkg="$APP_NAME"
+
+exit 0'''.format(apkPackageName, "/usr/share/applications/{}.desktop".format(apkPackageNameNew))
+            desktopFile = '''[Desktop Entry]
+Categories=Other;
+Exec=uengine launch --action=android.intent.action.MAIN --package={} --component={}
+Icon=/usr/share/uengine/icons/{}.png
+Terminal=false
+Type=Application
+GenericName={}
+Name={}
+'''
+            #self.RunCommandShow("echo '{}' > '{}/DEBIAN/control'".format(debControl, tempPath))
+            self.RunCommandShow("echo 正在写入文件:'{}/DEBIAN/control'".format(tempPath))
+            write_txt("{}/DEBIAN/control".format(tempPath), debControl)
+            self.RunCommandShow("echo 正在写入文件:'{}/DEBIAN/postinst'".format(tempPath))
+            write_txt("{}/DEBIAN/postinst".format(tempPath), debPostinst)
+            self.RunCommandShow("echo 正在写入文件:'{}/DEBIAN/prerm'".format(tempPath))
+            write_txt("{}/DEBIAN/prerm".format(tempPath), debPrerm)
+            self.RunCommandShow("echo 正在写入文件:'/usr/share/applications/{}.desktop'".format(apkPackageNameNew))
+            #write_txt("{}/usr/share/applications/{}.desktop".format(tempPath, apkPackageNameNew), desktopFile)
+            BuildUengineDesktop(apkPackageName, apkActivityName, nameText.text(), "/usr/share/uengine/icons/{}.png".format(apkPackageNameNew),
+                        "{}/usr/share/applications/{}.desktop".format(tempPath, apkPackageNameNew), typeChoose.currentText())
+            self.RunCommandShow("echo '复制文件'")
+            self.RunCommandShow("echo '写入 APK 软件图标'")
+            #SaveApkIcon(apkPath, iconSavePath)
+            self.RunCommandShow(f"cp -rv '{iconText.text()}' '{iconSavePath}'")
+            self.RunCommandShow("echo '复制 APK 文件'")
+            self.RunCommandShow("cp -rv '{}' '{}/usr/share/uengine/apk/{}.apk'".format(apkPath, tempPath, apkPackageNameNew))
+            self.RunCommandShow("echo '正在设置文件权限……'")
+            self.RunCommandShow("chmod 0775 -vR '{}/DEBIAN/postinst'".format(tempPath))
+            self.RunCommandShow("chmod 0775 -vR '{}/DEBIAN/prerm'".format(tempPath))
+            self.RunCommandShow("echo '打包 deb 到桌面……'")
+            self.RunCommandShow("dpkg -b '{}' '{}/{}_{}_all.deb'".format(tempPath, get_desktop_path(),apkPackageNameNew, versionText.text()))
+            self.RunCommandShow("echo '正在删除临时目录……'")
+            self.RunCommandShow("rm -rfv '{}'".format(tempPath))
+            self.RunCommandShow("echo '完成!'")
+            findApkHistory.append(apkPath)
+            self.labelChange.emit("")
+            write_txt(get_home() + "/.config/uengine-runner/FindApkBuildHistory.json", str(json.dumps(ListToDictionary(findApkHistory))))  # 将历史记录的数组转换为字典并写入
+            DisabledAndEnbled(False)
+            self.tips.emit("打包完成")
+            
+        except:
+            DisabledAndEnbled(False)
+            traceback.print_exc()
+            QtWidgets.QMessageBox.critical(widget, "错误", traceback.format_exc())
+
+def TipsMessagebox(tips):
+    QtWidgets.QMessageBox.information(widget, "提示", tips)
+
+def ChangeItems(self):
+    combobox1.clear()
+    combobox1.addItems(findApkHistory)
+    #combobox1.setEditText("")
+
+def DisabledAndEnbled(choose):
+    combobox1.setDisabled(choose)
+    check.setDisabled(choose)
+    button2.setDisabled(choose)
+    button3.setDisabled(choose)
+    sizes.setDisabled(choose)
+    iconBrowser.setDisabled(choose)
+    typeChoose.setDisabled(choose)
+    for i in textList:
+        i.setDisabled(choose)
+
+# 重启本应用程序
+def ReStartProgram():
+    python = sys.executable
+    os.execl(python, python, * sys.argv)
+
+def GetCommandReturn(command):
+    return subprocess.getoutput(command)
+
+# 获取用户主目录
+def get_home():
+    return os.path.expanduser('~')
+
+# 获取当前语言
+def get_now_lang()->"获取当前语言":
+    return os.getenv('LANG')
+
+# 获取用户桌面目录
+def get_desktop_path():
+    for line in open(get_home() + "/.config/user-dirs.dirs"):  # 以行来读取配置文件
+        desktop_index = line.find("XDG_DESKTOP_DIR=\"")  # 寻找是否有对应项,有返回 0,没有返回 -1
+        if desktop_index != -1:  # 如果有对应项
+            break  # 结束循环
+    if desktop_index == -1:  # 如果是提前结束,值一定≠-1,如果是没有提前结束,值一定=-1
+        return -1
+    else:
+        get = line[17:-2]  # 截取桌面目录路径
+        get_index = get.find("$HOME")  # 寻找是否有对应的项,需要替换内容
+        if get != -1:  # 如果有
+            get = get.replace("$HOME", get_home())  # 则把其替换为用户目录(~)
+        return get  # 返回目录
+
+# 数组转字典
+def ListToDictionary(list):
+    dictionary = {}
+    for i in range(len(list)):
+        dictionary[i] = list[i]
+    return dictionary
+
+# 读取文本文档
+def readtxt(path):
+    f = open(path, "r")  # 设置文件对象
+    str = f.read()  # 获取内容
+    f.close()  # 关闭文本对象
+    return str  # 返回结果
+
+# 写入文本文档
+def write_txt(path, things):
+    file = open(path, 'w', encoding='UTF-8')  # 设置文件对象
+    file.write(things)  # 写入文本
+    file.close()  # 关闭文本对象
+
+def GetApkInformation(apkFilePath):
+    return GetCommandReturn("aapt dump badging '{}'".format(apkFilePath))
+
+def GetApkActivityName(apkFilePath):
+    info = GetApkInformation(apkFilePath)
+    for line in info.split('\n'):
+        if "launchable-activity" in line:
+            line = line[0: line.index("label='")]
+            line = line.replace("launchable-activity: ", "")
+            line = line.replace("'", "")
+            line = line.replace(" ", "")
+            line = line.replace("name=", "")
+            line = line.replace("label=", "")
+            line = line.replace("icon=", "")
+            return line
+    return f"{GetApkPackageName(apkFilePath, False)}.Main"
+
+def GetApkPackageName(apkFilePath, setting):
+    # 提示:此函数有被为此程序适配而调整,如果需要最原始(无调整的)请使用主程序(此为附属组件)里的函数
+    info = GetApkInformation(apkFilePath)
+    for line in info.split('\n'):
+        if "package:" in line:
+            line = line[0: line.index("versionCode='")]
+            line = line.replace("package:", "")
+            line = line.replace("name=", "")
+            line = line.replace("'", "")
+            line = line.replace(" ", "")
+            # 此较为特殊,因为需要判断用户是否要添加前缀
+            if setting:
+                return "uengine-dc-{}".format(line)
+            return line
+
+def GetApkVersion(apkFilePath):
+    info = GetApkInformation(apkFilePath)
+    for line in info.split('\n'):
+        if "package:" in line:
+            if "compileSdkVersion='" in line:
+                line = line.replace(line[line.index("compileSdkVersion='"): -1], "")
+            if "platform" in line:
+                line = line.replace(line[line.index("platform"): -1], "")
+            line = line.replace(line[0: line.index("versionName='")], "")
+            line = line.replace("versionName='", "")
+            line = line.replace("'", "")
+            line = line.replace(" ", "")
+            return line
+
+def BuildUengineDesktop(packageName, activityName, showName, iconPath, savePath, type):
+    if showName == "" or showName == None:
+        showName = "未知应用"
+    things = f'''
+    [Desktop Entry]
+Categories=app;
+Encoding=UTF-8
+Exec=/usr/bin/uengine launch --action=android.intent.action.MAIN --package={packageName} --component={activityName}
+GenericName={showName}
+Icon={iconPath}
+MimeType=
+Name={showName}
+Categories={type};
+StartupWMClass={showName}
+Terminal=false
+Type=Application
+'''
+    write_txt(savePath, things)
+
+# 获取软件的中文名称
+def GetApkChineseLabel(apkFilePath)->"获取软件的中文名称":
+    info = GetApkInformation(apkFilePath)
+    name = None
+    for line in info.split('\n'):
+        if "application-label-zh:" in line:
+            line = line.replace("application-label-zh:", "")
+            line = line.replace("'", "")
+            return line
+        if "application-label:" in line:
+            line = line.replace("application-label:", "")
+            line = line.replace("'", "")
+            name = line
+    return name
+
+#合并两个函数到一起
+def SaveApkIcon(apkFilePath, iconSavePath)->"获取 apk 文件的图标":
+    try:
+        info = GetApkInformation(apkFilePath)
+        for line in info.split('\n'):
+            if "application:" in line:
+                xmlpath = line.split(":")[-1].split()[-1].split("=")[-1].replace("'","")  
+                if xmlpath.endswith('.xml'):
+                        xmlsave = getsavexml()
+                        print(xmlpath)
+                        xmlsave.savexml(apkFilePath,xmlpath,iconSavePath)
+                else:
+                    zip = zipfile.ZipFile(apkFilePath)
+                    iconData = zip.read(xmlpath)
+                    with open(iconSavePath, 'w+b') as saveIconFile:
+                        saveIconFile.write(iconData)
+                return
+        print("Show defult icon")
+        shutil.copy(programPath + "/defult.svg", iconSavePath)
+    except:
+        traceback.print_exc()
+        print("Error, show defult icon")
+        shutil.copy(programPath + "/defult.svg", iconSavePath)
+
+def TextboxAddText1(message):
+    global textbox1
+    if message.replace(" ", "").replace("\n", "") == "":
+        return
+    textbox1.append(message.replace("\n", ""))
+
+# 获取用户桌面目录
+def get_desktop_path():
+    for line in open(get_home() + "/.config/user-dirs.dirs"):  # 以行来读取配置文件
+        desktop_index = line.find("XDG_DESKTOP_DIR=\"")  # 寻找是否有对应项,有返回 0,没有返回 -1
+        if desktop_index != -1:  # 如果有对应项
+            break  # 结束循环
+    if desktop_index == -1:  # 如果是提前结束,值一定≠-1,如果是没有提前结束,值一定=-1
+        return -1
+    else:
+        get = line[17:-2]  # 截取桌面目录路径
+        get_index = get.find("$HOME")  # 寻找是否有对应的项,需要替换内容
+        if get != -1:  # 如果有
+            get = get.replace("$HOME", get_home())  # 则把其替换为用户目录(~)
+        return get  # 返回目录
+
+# 获取用户主目录
+def get_home():
+    return os.path.expanduser('~')
+
+###########################
+# 程序信息
+###########################
+programPath = os.path.split(os.path.realpath(__file__))[0]  # 返回 string
+lang = get_now_lang()
+langFile = json.loads(readtxt(programPath + "/Language.json"))
+if not lang in langFile.keys():
+    lang = "en_US.UTF-8"
+information = json.loads(readtxt(programPath + "/information.json"))
+version = information["Version"]
+#title = "{} {}".format(langFile[lang]["Uengine Apk Builder"]["Title"], version)
+title = f"UEngine 运行器应用打包器(高级) {version}"
+iconPath = "{}/builer.svg".format(os.path.split(os.path.realpath(__file__))[0])
+
+###########################
+# 加载配置
+###########################
+if not os.path.exists(get_home() + "/.config/uengine-runner"):  # 如果没有配置文件夹
+    os.makedirs(get_home() + "/.config/uengine-runner")  # 创建配置文件夹
+if not os.path.exists(get_home() + "/.config/uengine-runner/FindApkBuildHistory.json"):  # 如果没有配置文件
+    write_txt(get_home() + "/.config/uengine-runner/FindApkBuildHistory.json", json.dumps({}))  # 创建配置文件
+if not os.path.exists(get_home() + "/.config/uengine-runner/FindApkBuild.json"):  # 如果没有配置文件
+    write_txt(get_home() + "/.config/uengine-runner/FindApkBuild.json", json.dumps({"path": "~"}))  # 创建配置文件
+
+###########################
+# 设置变量
+###########################
+findApkHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runner/FindApkBuildHistory.json")).values())
+
+###########################
+# 窗口创建
+###########################
+app = QtWidgets.QApplication(sys.argv)
+# 权重
+size = QtWidgets.QSizePolicy()
+size.setHorizontalPolicy(0)
+widgetSize = QtWidgets.QSizePolicy()
+widgetSize.setVerticalPolicy(0)
+#
+window = QtWidgets.QMainWindow()
+widget = QtWidgets.QWidget()
+widgetLayout = QtWidgets.QGridLayout()
+combobox1 = QtWidgets.QComboBox()
+packageText = QtWidgets.QLineEdit()
+versionText = QtWidgets.QLineEdit()
+comText = QtWidgets.QLineEdit()
+makerText = QtWidgets.QLineEdit()
+typeChoose = QtWidgets.QComboBox()
+nameText = QtWidgets.QLineEdit()
+iconText = QtWidgets.QLineEdit()
+label1 = QtWidgets.QLabel(langFile[lang]["Uengine Apk Builder"]["label1"])
+button2 = QtWidgets.QPushButton(langFile[lang]["Uengine Apk Builder"]["button2"])
+button3 = QtWidgets.QPushButton(langFile[lang]["Uengine Apk Builder"]["button3"])
+textbox1 = QtWidgets.QTextBrowser()
+frame2 = QtWidgets.QHBoxLayout()
+check = QtWidgets.QCheckBox(langFile[lang]["Uengine Apk Builder"]["check"])
+sizes = QtWidgets.QCheckBox(langFile[lang]["Uengine Apk Builder"]["size"])
+iconBrowser = QtWidgets.QPushButton("浏览")
+iconBrowser.clicked.connect(FindIcon)
+label1.setSizePolicy(size)
+button2.setSizePolicy(size)
+check.setSizePolicy(size)
+button3.setSizePolicy(size)
+combobox1.setEditable(True)
+combobox1.addItems(findApkHistory)
+combobox1.setEditText("")
+button2.clicked.connect(FindApk)
+button3.clicked.connect(BuildDeb)
+typeChoose.addItems(["Network", "Chat", "Audio", "Video", "Graphics", "Office", "Translation", "Development", "Utility"])
+typeChoose.setCurrentText("Network")
+widgetLayout.addWidget(label1, 0, 0, 1, 1)
+widgetLayout.addWidget(combobox1, 0, 1, 1, 1)
+widgetLayout.addWidget(button2, 0, 2, 1, 1)
+widgetLayout.addWidget(QtWidgets.QLabel("包名:"), 1, 0)
+widgetLayout.addWidget(packageText, 1, 1, 1, 1)
+widgetLayout.addWidget(QtWidgets.QLabel("版本号:"), 2, 0)
+widgetLayout.addWidget(versionText, 2, 1)
+widgetLayout.addWidget(QtWidgets.QLabel("说明:"), 3, 0)
+widgetLayout.addWidget(comText, 3, 1)
+widgetLayout.addWidget(QtWidgets.QLabel("维护者:"), 4, 0)
+widgetLayout.addWidget(makerText, 4, 1)
+widgetLayout.addWidget(QtWidgets.QLabel("程序分类:"), 5, 0)
+widgetLayout.addWidget(typeChoose, 5, 1)
+widgetLayout.addWidget(QtWidgets.QLabel("程序名称:"), 6, 0)
+widgetLayout.addWidget(nameText, 6, 1)
+widgetLayout.addWidget(QtWidgets.QLabel("程序图标:"), 7, 0)
+widgetLayout.addWidget(iconText, 7, 1)
+widgetLayout.addWidget(iconBrowser, 7, 2)
+widgetLayout.addLayout(frame2, 8, 1, 1, 1)
+widgetLayout.addWidget(textbox1, 9, 0, 1, 3)
+# 菜单栏
+menu = window.menuBar()
+programmenu = menu.addMenu(langFile[lang]["Uengine Apk Builder"]["Menu"][0]["Name"])
+exitProgram = QtWidgets.QAction(langFile[lang]["Uengine Apk Builder"]["Menu"][0]["Menu"][0])
+exitProgram.triggered.connect(window.close)
+programmenu.addAction(exitProgram)
+#
+check.setChecked(True)
+#frame2.addWidget(check)
+frame2.addWidget(sizes)
+frame2.addWidget(button3)
+widget.setLayout(widgetLayout)
+window.setWindowTitle(title)
+window.setCentralWidget(widget)
+window.setWindowIcon(QtGui.QIcon(iconPath))
+window.resize(int(window.frameSize().width() * 1.3), int(window.frameSize().height() * 1.1))
+try:
+    combobox1.setCurrentText(sys.argv[1])
+except:
+    print("无参数")
+window.show()
+textList = [
+        packageText,
+        versionText,
+        comText,
+        makerText,
+        nameText, 
+        iconText
+        ]
+sys.exit(app.exec_())
diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner
index b7a923e..1b388bb 100755
--- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner
+++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner
@@ -1949,7 +1949,8 @@ uengineDoNotUseAdb.triggered.connect(UengineDoNotUseAdb)
 
 uengineAllowOrDisallowUpdateAndroidApp = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][13])
 uengineSetHttpProxy = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][15])
-uengineOpenDebBuilder = QtWidgets.QAction(QtGui.QIcon.fromTheme("deb"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][1])
+uengineOpenDebBuilder = QtWidgets.QAction(QtGui.QIcon.fromTheme("deb"), "UEngine 应用打包器(简单版)")
+uengineOpenDebBuilderMore = QtWidgets.QAction(QtGui.QIcon.fromTheme("deb"), "UEngine 应用打包器(高级版)")
 uengineKeyboardToMouse = QtWidgets.QAction(QtGui.QIcon.fromTheme("keyboard"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][7])
 uengineCheckCpu = QtWidgets.QAction(QtGui.QIcon.fromTheme("cpu"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][8])
 #uengineUbuntuInstall = QtWidgets.QAction(QtGui.QIcon.fromTheme("ubuntu-logo-icon"), langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][12])
@@ -1959,6 +1960,7 @@ uengineUbuntuInstall = QtWidgets.QAction(QtGui.QIcon.fromTheme("ubuntu-logo-icon
 uengineUbuntuInstallRoot = QtWidgets.QAction(QtGui.QIcon.fromTheme("ubuntu-logo-icon"), "在 Ubuntu 上安装 UEngine(SuperSU 镜像)")
 uengineWindowSizeSetting = QtWidgets.QAction(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][16])
 uengine.addAction(uengineOpenDebBuilder)
+uengine.addAction(uengineOpenDebBuilderMore)
 uengine.addAction(uengineKeyboardToMouse)
 uengine.addAction(uengineCheckCpu)
 uengine.addSeparator()
@@ -1986,6 +1988,7 @@ uengineRoot = uengine.addMenu(langFile[lang]["Main"]["MainWindow"]["Menu"][2]["M
 uengineAllowOrDisallowUpdateAndroidApp.triggered.connect(AllowOrDisallowUpdateAndroidApp)
 uengineSetHttpProxy.triggered.connect(SetHttpProxy)
 uengineOpenDebBuilder.triggered.connect(OpenUengineDebBuilder)
+uengineOpenDebBuilderMore.triggered.connect(lambda: threading.Thread(target=os.system, args=[f"'{programPath}/uengine-apk-builder-more'"]).start())
 uengineKeyboardToMouse.triggered.connect(KeyboardToMouse)
 uengineCheckCpu.triggered.connect(UengineCheckCpu)
 uengineUbuntuInstall.triggered.connect(UengineUbuntuInstall)
diff --git a/uengine-apk-builder b/uengine-apk-builder
index e867fa2..4533230 100755
--- a/uengine-apk-builder
+++ b/uengine-apk-builder
@@ -426,8 +426,8 @@ if not lang in langFile.keys():
     lang = "en_US.UTF-8"
 information = json.loads(readtxt(programPath + "/information.json"))
 version = information["Version"]
-#title = "{} {}".format(langFile[lang]["Uengine Apk Builder"]["Title"], version)
-title = f"UEngine 运行器应用打包器(高级) {version}"
+title = "{} {}".format(langFile[lang]["Uengine Apk Builder"]["Title"], version)
+#title = f"UEngine 运行器应用打包器(高级) {version}"
 iconPath = "{}/builer.svg".format(os.path.split(os.path.realpath(__file__))[0])
 
 ###########################
diff --git a/uengine-apk-builder-more b/uengine-apk-builder-more
index 2c26e89..90a0399 100755
--- a/uengine-apk-builder-more
+++ b/uengine-apk-builder-more
@@ -451,7 +451,8 @@ if not lang in langFile.keys():
     lang = "en_US.UTF-8"
 information = json.loads(readtxt(programPath + "/information.json"))
 version = information["Version"]
-title = "{} {}".format(langFile[lang]["Uengine Apk Builder"]["Title"], version)
+#title = "{} {}".format(langFile[lang]["Uengine Apk Builder"]["Title"], version)
+title = f"UEngine 运行器应用打包器(高级) {version}"
 iconPath = "{}/builer.svg".format(os.path.split(os.path.realpath(__file__))[0])
 
 ###########################