UEngine运行器1.8.1
This commit is contained in:
parent
531690fa4a
commit
05eefcfe9b
4
Makefile
4
Makefile
|
@ -19,6 +19,8 @@ build:
|
||||||
cp -rv uengine-app-setting.py new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
|
cp -rv uengine-app-setting.py new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
|
||||||
cp -rv uengine-app-install new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
|
cp -rv uengine-app-install new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
|
||||||
cp -rv uengine_logo.svg new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
|
cp -rv uengine_logo.svg 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 runner.svg new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
|
cp -rv runner.svg new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
|
||||||
cp -rv root-uengine.sh new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
|
cp -rv root-uengine.sh new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
|
||||||
cp -rv menu.svg new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
|
cp -rv menu.svg new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/
|
||||||
|
@ -35,7 +37,7 @@ install:
|
||||||
make build
|
make build
|
||||||
echo "Install..."
|
echo "Install..."
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo dpkg -i com.gitee.uengine.runner.spark.deb
|
sudo dpkg -i com.gitee.uengine.runner.spark.deb ; true
|
||||||
sudo apt install -f
|
sudo apt install -f
|
||||||
|
|
||||||
depend:
|
depend:
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/bash
|
||||||
|
/usr/bin/uengine launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
|
Binary file not shown.
|
@ -28,6 +28,7 @@
|
||||||
"※2、修复 APK 路径带空格无法正常安装的问题",
|
"※2、修复 APK 路径带空格无法正常安装的问题",
|
||||||
"3、修复打包器打包的 APK 带下划线“_”无法正常打包的问题",
|
"3、修复打包器打包的 APK 带下划线“_”无法正常打包的问题",
|
||||||
"4、修复打包器下方命令返回过多空白行的问题",
|
"4、修复打包器下方命令返回过多空白行的问题",
|
||||||
|
"5、修复程序生成的默认图标任然是旧版图标的问题",
|
||||||
"",
|
"",
|
||||||
"<b>V1.8.0:</b>",
|
"<b>V1.8.0:</b>",
|
||||||
"※1、程序界面大部分由 Tkinter 转 PyQt5",
|
"※1、程序界面大部分由 Tkinter 转 PyQt5",
|
||||||
|
@ -184,7 +185,7 @@
|
||||||
"11、deepin 终端",
|
"11、deepin 终端",
|
||||||
"……"
|
"……"
|
||||||
],
|
],
|
||||||
"Time": "2022年08月01日",
|
"Time": "2022年08月29日",
|
||||||
"Contribute": [
|
"Contribute": [
|
||||||
"<b>感谢以下用户提供的问题、建议、图标、代码等,如果有遗漏,请及时与开发者联系添加,以及如果侵犯到您的合法权益,也及时与开发者联系:</p>",
|
"<b>感谢以下用户提供的问题、建议、图标、代码等,如果有遗漏,请及时与开发者联系添加,以及如果侵犯到您的合法权益,也及时与开发者联系:</p>",
|
||||||
"<hr>",
|
"<hr>",
|
||||||
|
@ -202,6 +203,7 @@
|
||||||
"感谢 通天灵宝(https://bbs.deepin.org/user/137230)、wuhaiou123(https://bbs.chinauos.com/zh/user/309117) 反馈的 图标生成错误导致无法生成 .desktop 文件的问题",
|
"感谢 通天灵宝(https://bbs.deepin.org/user/137230)、wuhaiou123(https://bbs.chinauos.com/zh/user/309117) 反馈的 图标生成错误导致无法生成 .desktop 文件的问题",
|
||||||
"感谢 潜伏(https://bbs.chinauos.com/zh/user/303339) 反馈的右键支持安装/卸载的建议",
|
"感谢 潜伏(https://bbs.chinauos.com/zh/user/303339) 反馈的右键支持安装/卸载的建议",
|
||||||
"感谢 z***g@gmx.de(https://bbs.chinauos.com/zh/user/312017) 反馈的 UEngine 更新后 uengine-launch.sh 的社区版检测问题",
|
"感谢 z***g@gmx.de(https://bbs.chinauos.com/zh/user/312017) 反馈的 UEngine 更新后 uengine-launch.sh 的社区版检测问题",
|
||||||
"参考 忘记、过去(https://bbs.deepin.org/user/154730) 的帖子《如何更优雅地使用 pkexec》(https://bbs.deepin.org/post/202966)"
|
"参考 忘记、过去(https://bbs.deepin.org/user/154730) 的帖子《如何更优雅地使用 pkexec》(https://bbs.deepin.org/post/202966)",
|
||||||
|
"感谢 U+解答组们 反馈的 1.8.0 带路径无法正常安装 APK 的问题"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -491,11 +491,11 @@ def SaveApkIcon(apkFilePath, iconSavePath)->"保存 apk 文件的图标":
|
||||||
saveIconFile.write(iconData)
|
saveIconFile.write(iconData)
|
||||||
return
|
return
|
||||||
print("None Icon! Show defult icon")
|
print("None Icon! Show defult icon")
|
||||||
shutil.copy(programPath + "/defult.png", iconSavePath)
|
shutil.copy(programPath + "/defult.svg", iconSavePath)
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
print("Error, show defult icon")
|
print("Error, show defult icon")
|
||||||
shutil.copy(programPath + "/defult.png", iconSavePath)
|
shutil.copy(programPath + "/defult.svg", iconSavePath)
|
||||||
|
|
||||||
def saveicon():
|
def saveicon():
|
||||||
global temppath
|
global temppath
|
||||||
|
@ -1078,7 +1078,7 @@ class UpdateWindow():
|
||||||
cancel = QtWidgets.QPushButton("取消")
|
cancel = QtWidgets.QPushButton("取消")
|
||||||
cancel.clicked.connect(UpdateWindow.update.close)
|
cancel.clicked.connect(UpdateWindow.update.close)
|
||||||
try:
|
try:
|
||||||
UpdateWindow.data = json.loads(requests.get("http://120.25.153.144/uengine-runner/update.json").text)
|
UpdateWindow.data = json.loads(requests.get("https://304626p927.goho.co/uengine-runner/update.json").text)
|
||||||
versionLabel = QtWidgets.QLabel(f"当前版本:{version}\n最新版本:{UpdateWindow.data['Version']}\n更新内容:")
|
versionLabel = QtWidgets.QLabel(f"当前版本:{version}\n最新版本:{UpdateWindow.data['Version']}\n更新内容:")
|
||||||
if UpdateWindow.data["Version"] == version:
|
if UpdateWindow.data["Version"] == version:
|
||||||
updateText.setText("此为最新版本,无需更新")
|
updateText.setText("此为最新版本,无需更新")
|
||||||
|
@ -1217,7 +1217,7 @@ class ApkInformation():
|
||||||
if choose == None or choose == 7:
|
if choose == None or choose == 7:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
QtWidgets.QMessageBox.critical(widget, "提示", requests.post("http://120.25.153.144/uengine-runner/app/check/add.php", {"Package": GetApkPackageName(path), "Type": choose}).text)
|
QtWidgets.QMessageBox.information(widget, "提示", requests.post("https://304626p927.goho.co/uengine-runner/app/check/add.php", {"Package": GetApkPackageName(path), "Type": choose}).text)
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
QtWidgets.QMessageBox.critical(widget, "错误", langFile[lang]["Main"]["MainWindow"]["Error"]["ConnectServerStarError"])
|
QtWidgets.QMessageBox.critical(widget, "错误", langFile[lang]["Main"]["MainWindow"]["Error"]["ConnectServerStarError"])
|
||||||
|
@ -1229,7 +1229,7 @@ class ApkInformation():
|
||||||
QtWidgets.QMessageBox.critical(widget, "错误", langFile[lang]["Main"]["MainWindow"]["Error"]["ApkFileError"])
|
QtWidgets.QMessageBox.critical(widget, "错误", langFile[lang]["Main"]["MainWindow"]["Error"]["ApkFileError"])
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
data = json.loads(requests.get("http://120.25.153.144/uengine-runner/app/check/" + package +"/data.json").text)
|
data = json.loads(requests.get("https://304626p927.goho.co/uengine-runner/app/check/" + package +"/data.json").text)
|
||||||
print(data)
|
print(data)
|
||||||
except:
|
except:
|
||||||
QtWidgets.QMessageBox.information(widget, "提示", "此程序暂时没有评分,欢迎您贡献第一个评分!")
|
QtWidgets.QMessageBox.information(widget, "提示", "此程序暂时没有评分,欢迎您贡献第一个评分!")
|
||||||
|
@ -1569,7 +1569,7 @@ findApkNameHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runn
|
||||||
findApkActivityHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runner/FindApkActivityHistory.json")).values())
|
findApkActivityHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runner/FindApkActivityHistory.json")).values())
|
||||||
|
|
||||||
try:
|
try:
|
||||||
threading.Thread(target=requests.get, args=[parse.unquote(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3VlbmdpbmUtcnVubmVyL29wZW4vSW5zdGFsbC5waHA=").decode("utf-8")) + "?Version=" + version]).start()
|
threading.Thread(target=requests.get, args=[parse.unquote(base64.b64decode("aHR0cHM6Ly8zMDQ2MjZwOTI3LmdvaG8uY28vdWVuZ2luZS1ydW5uZXIvb3Blbi9JbnN0YWxsLnBocA==").decode("utf-8")) + "?Version=" + version]).start()
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
# add sub window
|
# add sub window
|
||||||
|
@ -1577,10 +1577,10 @@ except:
|
||||||
windowflag = "close"
|
windowflag = "close"
|
||||||
def Egg():
|
def Egg():
|
||||||
try:
|
try:
|
||||||
lists = json.loads(requests.get("http://120.25.153.144/uengine-runner/VersionList.json").text)
|
lists = json.loads(requests.get("https://304626p927.goho.co/uengine-runner/VersionList.json").text)
|
||||||
data = []
|
data = []
|
||||||
for i in lists:
|
for i in lists:
|
||||||
data.append(int(requests.get("http://120.25.153.144/uengine-runner/{}/data.txt".format(i)).text))
|
data.append(int(requests.get("https://304626p927.goho.co/uengine-runner/{}/data.txt".format(i)).text))
|
||||||
except:
|
except:
|
||||||
QtWidgets.QMessageBox.critical(widget, "错误", "服务器出错!数据获取失败!")
|
QtWidgets.QMessageBox.critical(widget, "错误", "服务器出错!数据获取失败!")
|
||||||
return
|
return
|
||||||
|
|
|
@ -1,22 +1,19 @@
|
||||||
Package: com.gitee.uengine.runner.spark
|
Package: com.gitee.uengine.runner.spark
|
||||||
Source: com.gitee.uengine.runner.spark
|
Source: com.gitee.uengine.runner.spark
|
||||||
Replaces: spark-uengine-runner, com.gitee.uengine.runner.spark.ubuntu
|
Replaces: spark-uengine-runner, com.gitee.uengine.runner.spark.ubuntu
|
||||||
Version: 1.8.0
|
Version: 1.8.1
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Section: utils
|
Section: utils
|
||||||
|
Installed-Size: 1600
|
||||||
Maintainer: gfdgd xi <3025613752@qq.com>, actionchen<917981399@qq.com>, 柚子<https://gitee.com/Limexb>, 为什么您不喜欢熊出没和阿布呢<https://weibo.com/u/7755040136>, 星空露光<https://gitee.com/Cynorkyle>, shenmo<jifengshenmo@outlook.com>
|
Maintainer: gfdgd xi <3025613752@qq.com>, actionchen<917981399@qq.com>, 柚子<https://gitee.com/Limexb>, 为什么您不喜欢熊出没和阿布呢<https://weibo.com/u/7755040136>, 星空露光<https://gitee.com/Cynorkyle>, shenmo<jifengshenmo@outlook.com>
|
||||||
Depends: python3, python3-tk, python3-pip, aapt, python3-setuptools, deepin-terminal, curl, python3-pil, python3-requests, adb, fonts-noto-cjk, python3-numpy, wget, inotify-tools, aria2, python3-pyqt5
|
Depends: python3, python3-tk, python3-pip, aapt, python3-setuptools, deepin-terminal, curl, python3-pil, python3-requests, adb, fonts-noto-cjk, python3-numpy, wget, inotify-tools, aria2, python3-pyqt5
|
||||||
Recommends: python3-matplotlib, uengine, deepin-elf-verify (>= 0.0.16.7-1)
|
Recommends: python3-matplotlib, uengine, deepin-elf-verify (>= 0.0.16.7-1)
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Conflicts: spark-uengine-apk-builder, com.gitee.uengine.runner.spark.ubuntu
|
Conflicts: spark-uengine-apk-builder, com.gitee.uengine.runner.spark.ubuntu
|
||||||
Homepage: [https://gitee.com/gfdgd-xi/uengine-runner, https://github.com/gfdgd-xi/uengine-runner, https://www.gitlink.org.cn/gfdgd_xi/uengine-runner]
|
Homepage: [https://gitee.com/gfdgd-xi/uengine-runner, https://github.com/gfdgd-xi/uengine-runner, https://www.gitlink.org.cn/gfdgd_xi/uengine-runner]
|
||||||
Description: UEngine 运行器,1.8.0 更新内容:
|
Description: UEngine 运行器,1.8.1 更新内容:
|
||||||
※1、程序界面大部分由 Tkinter 转 PyQt5
|
※1、修复在 APK 详细信息中图标可能过大导致无法正常使用的问题
|
||||||
※2、添加了自动/手动配置 UEngine 窗口大小文件(自动需要在设置里手动开启,配置窗口的配置文件需要 Root)
|
※2、修复 APK 路径带空格无法正常安装的问题
|
||||||
※3、增加了安装/卸载失败后的提示
|
3、修复打包器打包的 APK 带下划线“_”无法正常打包的问题
|
||||||
※4、补回谢明名单
|
4、修复打包器下方命令返回过多空白行的问题
|
||||||
※5、支持免密安装/卸载 APK
|
|
||||||
6、pip 更换华为源,提升下载速度
|
|
||||||
7、新增主题功能
|
|
||||||
8、支持在安装 APK 后手动指定分类(手动指定需要在设置里手动开启)
|
|
||||||
开发/参与者:gfdgd xi <3025613752@qq.com>, actionchen<917981399@qq.com>, 柚子<https://gitee.com/Limexb>, 为什么您不喜欢熊出没和阿布呢<https://weibo.com/u/7755040136>, 星空露光<https://gitee.com/Cynorkyle>, shenmo<jifengshenmo@outlook.com>
|
开发/参与者:gfdgd xi <3025613752@qq.com>, actionchen<917981399@qq.com>, 柚子<https://gitee.com/Limexb>, 为什么您不喜欢熊出没和阿布呢<https://weibo.com/u/7755040136>, 星空露光<https://gitee.com/Cynorkyle>, shenmo<jifengshenmo@outlook.com>
|
||||||
|
|
|
@ -21,4 +21,4 @@ ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-applist-laun
|
||||||
# 因为 Ubuntu 的问题,省略
|
# 因为 Ubuntu 的问题,省略
|
||||||
gtk-update-icon-cache /usr/share/icons/bloom > /dev/null | true
|
gtk-update-icon-cache /usr/share/icons/bloom > /dev/null | true
|
||||||
# 向服务器返回安装数加1(不显示内容且忽略错误)
|
# 向服务器返回安装数加1(不显示内容且忽略错误)
|
||||||
curl http://120.25.153.144/uengine-runner/Install.php?Version=1.8.0 -s > /dev/null | true
|
curl https://304626p927.goho.co/uengine-runner/Install.php?Version=1.8.1 -s > /dev/null | true
|
|
@ -1,19 +1,19 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# 删除软链接
|
# 删除软链接
|
||||||
rm -fv /usr/bin/uengine-runner
|
rm -f /usr/bin/uengine-runner
|
||||||
rm -fv /usr/bin/uengine-apk-builder
|
rm -f /usr/bin/uengine-apk-builder
|
||||||
rm -fv /usr/bin/uengine-app-uninstall
|
rm -f /usr/bin/uengine-app-uninstall
|
||||||
rm -fv /usr/bin/uengine-app-install
|
rm -f /usr/bin/uengine-app-install
|
||||||
rm -fv /usr/bin/uengine-clean
|
rm -f /usr/bin/uengine-clean
|
||||||
rm -fv /usr/bin/uengine-runner-about
|
rm -f /usr/bin/uengine-runner-about
|
||||||
rm -fv /usr/bin/uengine-keyboard
|
rm -f /usr/bin/uengine-keyboard
|
||||||
rm -fv /usr/bin/uengine-useadb
|
rm -f /usr/bin/uengine-useadb
|
||||||
rm -fv /usr/bin/uengine-runner-launch.sh
|
rm -f /usr/bin/uengine-runner-launch.sh
|
||||||
rm -fv /usr/bin/uengine-runner-update-bug
|
rm -f /usr/bin/uengine-runner-update-bug
|
||||||
rm -fv /usr/bin/uengine-root
|
rm -f /usr/bin/uengine-root
|
||||||
rm -frv /opt/apps/com.gitee.uengine.runner.spark/files/api/__pycache__
|
rm -fr /opt/apps/com.gitee.uengine.runner.spark/files/api/__pycache__
|
||||||
rm -frv /opt/apps/com.gitee.uengine.runner.spark/files/__pycache__
|
rm -fr /opt/apps/com.gitee.uengine.runner.spark/files/__pycache__
|
||||||
rm -fv /usr/bin/uengine-runner-applist-launch.sh
|
rm -f /usr/bin/uengine-runner-applist-launch.sh
|
||||||
# 刷新图标缓存
|
# 刷新图标缓存
|
||||||
# 因为 Ubuntu 的问题,省略
|
# 因为 Ubuntu 的问题,省略
|
||||||
gtk-update-icon-cache /usr/share/icons/bloom > /dev/null | true
|
gtk-update-icon-cache /usr/share/icons/bloom > /dev/null | true
|
|
@ -7,6 +7,6 @@ Icon=/opt/apps/com.gitee.uengine.runner.spark/files/menu.svg
|
||||||
MimeType=
|
MimeType=
|
||||||
Name=UEngine App List
|
Name=UEngine App List
|
||||||
Name[zh]=UEngine 程序菜单
|
Name[zh]=UEngine 程序菜单
|
||||||
StartupWMClass=UEngine 程序菜单
|
StartupWMClass=uengine-runner-applist-launch.sh
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
|
|
|
@ -1,13 +1,23 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
|
<meta charset='UTF-8'>
|
||||||
<title>index</title>
|
<meta name='viewport' content='width=device-width initial-scale=1'>
|
||||||
|
<link rel="shortcut icon" href="../runner.svg">
|
||||||
|
<title>UEngine 程序帮助</title>
|
||||||
</head>
|
</head>
|
||||||
<body><h1 id='uengine-运行器帮助'>UEngine 运行器帮助</h1>
|
|
||||||
|
<body onload="UpdateTime();">
|
||||||
|
<h1 id='uengine-运行器帮助'>UEngine 运行器帮助</h1>
|
||||||
<hr />
|
<hr />
|
||||||
<h2 id='帮助简述'>帮助简述</h2>
|
<h2 id='帮助简述'>帮助简述</h2>
|
||||||
<blockquote><p>安装APK:点浏览按钮,选中需要安装的APK,然后点安装按钮<br/>卸载APK:在卸载APK下面的输入框内输入需要卸载的APK包名,点卸载按钮,如果无法获取包名,可以通过浏览APK文件程序自动获取包名进行卸载。<br/>保存APK图标:在安装APK下面的输入框浏览或输入APK的路径,然后点击“保存图标”按钮,选择保存位置即可<br/>重置(删除)UEngine数据:点击菜单栏的“UEngine”的“清空UEngine数据”,输入密码重启即可<br/>注意:如果任何安卓一遍打不开,多打开几遍应该就可以重新加载UEngine配置了<br/>打开UEngine应用列表:打开系统已安装的应用列表(安卓界面)<br/><strong>提示:</strong> <br/><strong>※1、近期升级的 UEngine 安装时会自动把要安装的 apk 删除,如果这个 apk 文件非常重要请拷贝一个备份版并安装这个备份版</strong> <br/><strong>2、需要你有使用 root 权限的能力;</strong><br/><strong>3、需要安装 UEngine 才能使用;</strong><br/><strong>4、提取 apk 图标的 apk 路径以“安装 apk”那栏为准;</strong><br/><strong>5、如果想要使用adb连接UEngine或其他手机,请使用 1.2.0 以前的版本。(如需连接UEngine请安装adb补丁)</strong> </p>
|
<blockquote>
|
||||||
|
<p>安装APK:点浏览按钮,选中需要安装的APK,然后点安装按钮<br/>卸载APK:在卸载APK下面的输入框内输入需要卸载的APK包名,点卸载按钮,如果无法获取包名,可以通过浏览APK文件程序自动获取包名进行卸载。<br/>保存APK图标:在安装APK下面的输入框浏览或输入APK的路径,然后点击“保存图标”按钮,选择保存位置即可<br/>重置(删除)UEngine数据:点击菜单栏的“UEngine”的“清空UEngine数据”,输入密码重启即可<br/>注意:如果任何安卓一遍打不开,多打开几遍应该就可以重新加载UEngine配置了<br/>打开UEngine应用列表:打开系统已安装的应用列表(安卓界面)<br/><strong>提示:</strong>
|
||||||
|
<br/><strong>※1、近期升级的 UEngine 安装时会自动把要安装的 apk 删除,如果这个 apk 文件非常重要请拷贝一个备份版并安装这个备份版</strong>
|
||||||
|
<br/><strong>2、需要你有使用 root 权限的能力;</strong><br/><strong>3、需要安装 UEngine 才能使用;</strong><br/><strong>4、提取 apk
|
||||||
|
图标的 apk 路径以“安装 apk”那栏为准;</strong><br/><strong>5、如果想要使用adb连接UEngine或其他手机,请使用 1.2.0
|
||||||
|
以前的版本。(如需连接UEngine请安装adb补丁)</strong> </p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<hr />
|
<hr />
|
||||||
<h2 id='详细帮助'>详细帮助</h2>
|
<h2 id='详细帮助'>详细帮助</h2>
|
||||||
|
@ -17,16 +27,20 @@
|
||||||
<ol start=''>
|
<ol start=''>
|
||||||
<li>打开 UEngine 运行器 <br/><img src="1-1-1.png" referrerpolicy="no-referrer"> </li>
|
<li>打开 UEngine 运行器 <br/><img src="1-1-1.png" referrerpolicy="no-referrer"> </li>
|
||||||
<li>点击浏览按钮,找到想要安装的Apk<br/><img src="1-1-2.png" referrerpolicy="no-referrer"> </li>
|
<li>点击浏览按钮,找到想要安装的Apk<br/><img src="1-1-2.png" referrerpolicy="no-referrer"> </li>
|
||||||
<li>点击安装按钮,输入密码
|
<li>点击安装按钮,输入密码<br>
|
||||||
<img src="1-1-3.png" referrerpolicy="no-referrer"> </li>
|
<img src="1-1-3.png" referrerpolicy="no-referrer">
|
||||||
<li>提示“操作完成”,在启动器找到新安装的图标启动即可<br/><img src="1-1-4.png" referrerpolicy="no-referrer"><br/><img src="1-1-5.png" referrerpolicy="no-referrer"> </li>
|
</li>
|
||||||
|
<li>提示“操作完成”,在启动器找到新安装的图标启动即可<br/><img src="1-1-4.png" referrerpolicy="no-referrer"><br/><img src="1-1-5.png"
|
||||||
|
referrerpolicy="no-referrer"> </li>
|
||||||
|
|
||||||
</ol>
|
</ol>
|
||||||
<h4 id='方法二-1'>方法二</h4>
|
<h4 id='方法二-1'>方法二</h4>
|
||||||
<ol start=''>
|
<ol start=''>
|
||||||
<li>打开要安装的Apk所在目录,右击=>打开方式=>安装或卸载 APK(UEngine 运行器)<br/><img src="1-2-1.png" referrerpolicy="no-referrer"> </li>
|
<li>打开要安装的Apk所在目录,右击=>打开方式=>安装或卸载 APK(UEngine 运行器)<br/><img src="1-2-1.png" referrerpolicy="no-referrer">
|
||||||
|
</li>
|
||||||
<li>点击安装按钮,输入密码<br/><img src="1-1-3.png" referrerpolicy="no-referrer"> </li>
|
<li>点击安装按钮,输入密码<br/><img src="1-1-3.png" referrerpolicy="no-referrer"> </li>
|
||||||
<li>提示“操作完成”,在启动器找到新安装的图标启动即可<br/><img src="1-1-4.png" referrerpolicy="no-referrer"><br/><img src="1-2-2.png" referrerpolicy="no-referrer"> </li>
|
<li>提示“操作完成”,在启动器找到新安装的图标启动即可<br/><img src="1-1-4.png" referrerpolicy="no-referrer"><br/><img src="1-2-2.png"
|
||||||
|
referrerpolicy="no-referrer"> </li>
|
||||||
|
|
||||||
</ol>
|
</ol>
|
||||||
<h3 id='卸载apk'>卸载Apk</h3>
|
<h3 id='卸载apk'>卸载Apk</h3>
|
||||||
|
@ -40,7 +54,8 @@
|
||||||
</ol>
|
</ol>
|
||||||
<h4 id='方法二-2'>方法二</h4>
|
<h4 id='方法二-2'>方法二</h4>
|
||||||
<ol start=''>
|
<ol start=''>
|
||||||
<li>打开要安装的Apk所在目录,右击=>打开方式=>安装或卸载 APK(UEngine 运行器)<br/><img src="1-2-1.png" referrerpolicy="no-referrer"> </li>
|
<li>打开要安装的Apk所在目录,右击=>打开方式=>安装或卸载 APK(UEngine 运行器)<br/><img src="1-2-1.png" referrerpolicy="no-referrer">
|
||||||
|
</li>
|
||||||
<li>点击卸载按钮,输入密码<br/><img src="1-1-3.png" referrerpolicy="no-referrer"> </li>
|
<li>点击卸载按钮,输入密码<br/><img src="1-1-3.png" referrerpolicy="no-referrer"> </li>
|
||||||
<li>提示“操作完成”,卸载完成<br/><img src="1-1-4.png" referrerpolicy="no-referrer"> </li>
|
<li>提示“操作完成”,卸载完成<br/><img src="1-1-4.png" referrerpolicy="no-referrer"> </li>
|
||||||
|
|
||||||
|
@ -56,7 +71,9 @@
|
||||||
<ol start=''>
|
<ol start=''>
|
||||||
<li>打开 UEngine 运行器 <br/><img src="1-1-1.png" referrerpolicy="no-referrer"> </li>
|
<li>打开 UEngine 运行器 <br/><img src="1-1-1.png" referrerpolicy="no-referrer"> </li>
|
||||||
<li>点击“Apk 信息” 按钮即可查询Apk信息
|
<li>点击“Apk 信息” 按钮即可查询Apk信息
|
||||||
<img src="1-3-1.png" referrerpolicy="no-referrer"></li>
|
<br>
|
||||||
|
<img src="1-3-1.png" referrerpolicy="no-referrer">
|
||||||
|
</li>
|
||||||
<li>点击“查看程序评分情况”即可查看其他用户对程序的评分</li>
|
<li>点击“查看程序评分情况”即可查看其他用户对程序的评分</li>
|
||||||
|
|
||||||
</ol>
|
</ol>
|
||||||
|
@ -160,6 +177,14 @@
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<p> ©2021-2022</p>
|
<script>
|
||||||
|
function UpdateTime() {
|
||||||
|
var d = new Date();
|
||||||
|
document.getElementById("time").innerHTML = "©2021~" + d.getFullYear() + " gfdgd xi、为什么您不喜欢熊出没和阿布呢";
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<hr>
|
||||||
|
<h1 id="time"> ©2021-2022</h1>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
|
@ -160,6 +160,7 @@
|
||||||
"button2": "浏览",
|
"button2": "浏览",
|
||||||
"button3": " 打包",
|
"button3": " 打包",
|
||||||
"check": "使用前缀“uengine-dc”",
|
"check": "使用前缀“uengine-dc”",
|
||||||
|
"size": "从 UEngine 导入程序大小设置(如果有设置)",
|
||||||
"Menu": [
|
"Menu": [
|
||||||
{
|
{
|
||||||
"Name": "程序",
|
"Name": "程序",
|
||||||
|
@ -330,6 +331,7 @@
|
||||||
"button2": "Find",
|
"button2": "Find",
|
||||||
"button3": " Build",
|
"button3": " Build",
|
||||||
"check": "Use Prefix With \"uengine-dc\"",
|
"check": "Use Prefix With \"uengine-dc\"",
|
||||||
|
"size": "Add Android Program Size Setting From UEngine (If you're setting)",
|
||||||
"Menu": [
|
"Menu": [
|
||||||
{
|
{
|
||||||
"Name": "Program",
|
"Name": "Program",
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 312 KiB |
Binary file not shown.
Before Width: | Height: | Size: 312 KiB |
|
@ -2,9 +2,10 @@
|
||||||
"Package": "com.gitee.uengine.runner.spark",
|
"Package": "com.gitee.uengine.runner.spark",
|
||||||
"Url": [
|
"Url": [
|
||||||
"https://gitee.com/gfdgd-xi/uengine-runner",
|
"https://gitee.com/gfdgd-xi/uengine-runner",
|
||||||
"https://github.com/gfdgd-xi/uengine-runner"
|
"https://github.com/gfdgd-xi/uengine-runner",
|
||||||
|
"https://gitlink.org.cn/gfdgd_xi/uengine-runner"
|
||||||
],
|
],
|
||||||
"Version": "1.8.0",
|
"Version": "1.8.1",
|
||||||
"System": "Linux(deepin/UOS)",
|
"System": "Linux(deepin/UOS)",
|
||||||
"Tips": [
|
"Tips": [
|
||||||
"更多可见:https://gitee.com/gfdgd-xi/uengine-runner/wikis 或程序的更多帮助",
|
"更多可见:https://gitee.com/gfdgd-xi/uengine-runner/wikis 或程序的更多帮助",
|
||||||
|
@ -22,6 +23,13 @@
|
||||||
"5、如果想要使用adb连接UEngine或其他手机,请使用 1.2.0 以前的版本。(如需连接UEngine请安装adb补丁)"
|
"5、如果想要使用adb连接UEngine或其他手机,请使用 1.2.0 以前的版本。(如需连接UEngine请安装adb补丁)"
|
||||||
],
|
],
|
||||||
"Update": [
|
"Update": [
|
||||||
|
"<b>V1.8.1:</b>",
|
||||||
|
"※1、修复在 APK 详细信息中图标可能过大导致无法正常使用的问题",
|
||||||
|
"※2、修复 APK 路径带空格无法正常安装的问题",
|
||||||
|
"3、修复打包器打包的 APK 带下划线“_”无法正常打包的问题",
|
||||||
|
"4、修复打包器下方命令返回过多空白行的问题",
|
||||||
|
"5、修复程序生成的默认图标任然是旧版图标的问题",
|
||||||
|
"",
|
||||||
"<b>V1.8.0:</b>",
|
"<b>V1.8.0:</b>",
|
||||||
"※1、程序界面大部分由 Tkinter 转 PyQt5",
|
"※1、程序界面大部分由 Tkinter 转 PyQt5",
|
||||||
"※2、添加了自动/手动配置 UEngine 窗口大小文件(自动需要在设置里手动开启,配置窗口的配置文件需要 Root)",
|
"※2、添加了自动/手动配置 UEngine 窗口大小文件(自动需要在设置里手动开启,配置窗口的配置文件需要 Root)",
|
||||||
|
@ -166,7 +174,7 @@
|
||||||
"Use": [
|
"Use": [
|
||||||
"1、UEngine相关软件包(基于anbox开发)",
|
"1、UEngine相关软件包(基于anbox开发)",
|
||||||
"2、Python3",
|
"2、Python3",
|
||||||
"3、tkinter(tkinter.tk、ttkthemes、tkinter.messagebox、tkinter.simpledialog、tkinter.filedialog 和 tkinter.ttk)",
|
"3、PyQt5",
|
||||||
"4、aapt",
|
"4、aapt",
|
||||||
"5、dpkg",
|
"5、dpkg",
|
||||||
"6、tree",
|
"6、tree",
|
||||||
|
@ -177,7 +185,7 @@
|
||||||
"11、deepin 终端",
|
"11、deepin 终端",
|
||||||
"……"
|
"……"
|
||||||
],
|
],
|
||||||
"Time": "2021年08月30日",
|
"Time": "2022年08月29日",
|
||||||
"Contribute": [
|
"Contribute": [
|
||||||
"<b>感谢以下用户提供的问题、建议、图标、代码等,如果有遗漏,请及时与开发者联系添加,以及如果侵犯到您的合法权益,也及时与开发者联系:</p>",
|
"<b>感谢以下用户提供的问题、建议、图标、代码等,如果有遗漏,请及时与开发者联系添加,以及如果侵犯到您的合法权益,也及时与开发者联系:</p>",
|
||||||
"<hr>",
|
"<hr>",
|
||||||
|
@ -195,6 +203,7 @@
|
||||||
"感谢 通天灵宝(https://bbs.deepin.org/user/137230)、wuhaiou123(https://bbs.chinauos.com/zh/user/309117) 反馈的 图标生成错误导致无法生成 .desktop 文件的问题",
|
"感谢 通天灵宝(https://bbs.deepin.org/user/137230)、wuhaiou123(https://bbs.chinauos.com/zh/user/309117) 反馈的 图标生成错误导致无法生成 .desktop 文件的问题",
|
||||||
"感谢 潜伏(https://bbs.chinauos.com/zh/user/303339) 反馈的右键支持安装/卸载的建议",
|
"感谢 潜伏(https://bbs.chinauos.com/zh/user/303339) 反馈的右键支持安装/卸载的建议",
|
||||||
"感谢 z***g@gmx.de(https://bbs.chinauos.com/zh/user/312017) 反馈的 UEngine 更新后 uengine-launch.sh 的社区版检测问题",
|
"感谢 z***g@gmx.de(https://bbs.chinauos.com/zh/user/312017) 反馈的 UEngine 更新后 uengine-launch.sh 的社区版检测问题",
|
||||||
"参考 忘记、过去(https://bbs.deepin.org/user/154730) 的帖子《如何更优雅地使用 pkexec》(https://bbs.deepin.org/post/202966)"
|
"参考 忘记、过去(https://bbs.deepin.org/user/154730) 的帖子《如何更优雅地使用 pkexec》(https://bbs.deepin.org/post/202966)",
|
||||||
|
"感谢 U+解答组们 反馈的 1.8.0 带路径无法正常安装 APK 的问题"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -2,10 +2,10 @@
|
||||||
# 使用系统默认的 python3 运行
|
# 使用系统默认的 python3 运行
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
# 作者:gfdgd xi
|
# 作者:gfdgd xi
|
||||||
# 版本:1.7.0
|
# 版本:1.8.1
|
||||||
# 更新时间:2022年07月23日
|
# 更新时间:2022年08月01日
|
||||||
# 感谢:anbox、deepin 和 统信
|
# 感谢:anbox、deepin 和 统信
|
||||||
# 基于 Python3 的 tkinter 构建
|
# 基于 Python3 的 PyQt5 构建
|
||||||
###########################################################################################
|
###########################################################################################
|
||||||
#################
|
#################
|
||||||
# 引入所需的库
|
# 引入所需的库
|
||||||
|
@ -17,7 +17,6 @@ import shutil
|
||||||
import random
|
import random
|
||||||
import zipfile
|
import zipfile
|
||||||
import traceback
|
import traceback
|
||||||
import threading
|
|
||||||
import subprocess
|
import subprocess
|
||||||
import PyQt5.QtGui as QtGui
|
import PyQt5.QtGui as QtGui
|
||||||
import PyQt5.QtCore as QtCore
|
import PyQt5.QtCore as QtCore
|
||||||
|
@ -89,9 +88,9 @@ class BuildApkDeb(QtCore.QThread):
|
||||||
self.RunCommandShow("echo '写入文件,因为写入过程过于复杂,不显示写入命令……'")
|
self.RunCommandShow("echo '写入文件,因为写入过程过于复杂,不显示写入命令……'")
|
||||||
apkPackageName = GetApkPackageName(apkPath, False)
|
apkPackageName = GetApkPackageName(apkPath, False)
|
||||||
if check.isChecked():
|
if check.isChecked():
|
||||||
apkPackageNameNew = GetApkPackageName(apkPath, True).lower()
|
apkPackageNameNew = GetApkPackageName(apkPath, True).lower().replace("_", "-")
|
||||||
else:
|
else:
|
||||||
apkPackageNameNew = GetApkPackageName(apkPath, False).lower()
|
apkPackageNameNew = GetApkPackageName(apkPath, False).lower().replace("_", "-")
|
||||||
apkPackageVersion = GetApkVersion(apkPath)
|
apkPackageVersion = GetApkVersion(apkPath)
|
||||||
if apkPackageVersion[0].upper() == "V":
|
if apkPackageVersion[0].upper() == "V":
|
||||||
package = list(apkPackageVersion)
|
package = list(apkPackageVersion)
|
||||||
|
@ -99,6 +98,9 @@ class BuildApkDeb(QtCore.QThread):
|
||||||
apkPackageVersion = "".join(package)
|
apkPackageVersion = "".join(package)
|
||||||
apkChineseLabel = GetApkChineseLabel(apkPath)
|
apkChineseLabel = GetApkChineseLabel(apkPath)
|
||||||
apkActivityName = GetApkActivityName(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)
|
iconSavePath = "{}/usr/share/uengine/icons/{}.png".format(tempPath, apkPackageNameNew)
|
||||||
debControl = '''Package: {}
|
debControl = '''Package: {}
|
||||||
Version: {}
|
Version: {}
|
||||||
|
@ -373,7 +375,9 @@ def SaveApkIcon(apkFilePath, iconSavePath)->"获取 apk 文件的图标":
|
||||||
|
|
||||||
def TextboxAddText1(message):
|
def TextboxAddText1(message):
|
||||||
global textbox1
|
global textbox1
|
||||||
textbox1.append(message)
|
if message.replace(" ", "").replace("\n", "") == "":
|
||||||
|
return
|
||||||
|
textbox1.append(message.replace("\n", ""))
|
||||||
|
|
||||||
# 获取用户桌面目录
|
# 获取用户桌面目录
|
||||||
def get_desktop_path():
|
def get_desktop_path():
|
||||||
|
@ -442,6 +446,7 @@ button3 = QtWidgets.QPushButton(langFile[lang]["Uengine Apk Builder"]["button3"]
|
||||||
textbox1 = QtWidgets.QTextBrowser()
|
textbox1 = QtWidgets.QTextBrowser()
|
||||||
frame2 = QtWidgets.QHBoxLayout()
|
frame2 = QtWidgets.QHBoxLayout()
|
||||||
check = QtWidgets.QCheckBox(langFile[lang]["Uengine Apk Builder"]["check"])
|
check = QtWidgets.QCheckBox(langFile[lang]["Uengine Apk Builder"]["check"])
|
||||||
|
sizes = QtWidgets.QCheckBox(langFile[lang]["Uengine Apk Builder"]["size"])
|
||||||
label1.setSizePolicy(size)
|
label1.setSizePolicy(size)
|
||||||
button2.setSizePolicy(size)
|
button2.setSizePolicy(size)
|
||||||
check.setSizePolicy(size)
|
check.setSizePolicy(size)
|
||||||
|
@ -454,7 +459,7 @@ button3.clicked.connect(BuildDeb)
|
||||||
widgetLayout.addWidget(label1, 0, 0, 1, 1)
|
widgetLayout.addWidget(label1, 0, 0, 1, 1)
|
||||||
widgetLayout.addWidget(combobox1, 0, 1, 1, 1)
|
widgetLayout.addWidget(combobox1, 0, 1, 1, 1)
|
||||||
widgetLayout.addWidget(button2, 0, 2, 1, 1)
|
widgetLayout.addWidget(button2, 0, 2, 1, 1)
|
||||||
widgetLayout.addLayout(frame2, 1, 0, 1, 3)
|
widgetLayout.addLayout(frame2, 1, 1, 1, 1)
|
||||||
widgetLayout.addWidget(textbox1, 2, 0, 1, 3)
|
widgetLayout.addWidget(textbox1, 2, 0, 1, 3)
|
||||||
# 菜单栏
|
# 菜单栏
|
||||||
menu = window.menuBar()
|
menu = window.menuBar()
|
||||||
|
@ -464,6 +469,7 @@ exitProgram.triggered.connect(window.close)
|
||||||
programmenu.addAction(exitProgram)
|
programmenu.addAction(exitProgram)
|
||||||
#
|
#
|
||||||
frame2.addWidget(check)
|
frame2.addWidget(check)
|
||||||
|
frame2.addWidget(sizes)
|
||||||
frame2.addWidget(button3)
|
frame2.addWidget(button3)
|
||||||
widget.setLayout(widgetLayout)
|
widget.setLayout(widgetLayout)
|
||||||
window.setWindowTitle(title)
|
window.setWindowTitle(title)
|
||||||
|
@ -472,55 +478,3 @@ window.setWindowIcon(QtGui.QIcon(iconPath))
|
||||||
window.resize(window.frameSize().width() * 1.3, window.frameSize().height() * 1.1)
|
window.resize(window.frameSize().width() * 1.3, window.frameSize().height() * 1.1)
|
||||||
window.show()
|
window.show()
|
||||||
sys.exit(app.exec_())
|
sys.exit(app.exec_())
|
||||||
# 读取主题
|
|
||||||
try:
|
|
||||||
theme = not ("dark" in readtxt(get_home() + "/.gtkrc-2.0") and "gtk-theme-name=" in readtxt(get_home() + "/.gtkrc-2.0"))
|
|
||||||
except:
|
|
||||||
print("主题读取错误,默认使用浅色主题")
|
|
||||||
theme = True
|
|
||||||
if theme:
|
|
||||||
win = tk.Tk()
|
|
||||||
themes = ttkthemes.ThemedStyle(win)
|
|
||||||
themes.set_theme("breeze")
|
|
||||||
else:
|
|
||||||
import ttkbootstrap
|
|
||||||
style = ttkbootstrap.Style(theme="darkly")
|
|
||||||
win = style.master # 创建窗口
|
|
||||||
|
|
||||||
qianZhui = tk.BooleanVar()
|
|
||||||
|
|
||||||
window = ttk.Frame(win)
|
|
||||||
frame2 = ttk.Frame(window)
|
|
||||||
label1 = ttk.Label(window, text=langFile[lang]["Uengine Apk Builder"]["label1"])
|
|
||||||
combobox1 = ttk.Combobox(window, width=100)
|
|
||||||
button2 = ttk.Button(window, text=langFile[lang]["Uengine Apk Builder"]["button2"], command=FindApk)
|
|
||||||
button3 = ttk.Button(frame2, text=langFile[lang]["Uengine Apk Builder"]["button3"], command=BuildDeb)
|
|
||||||
check = ttk.Checkbutton(frame2, variable=qianZhui,text=langFile[lang]["Uengine Apk Builder"]["check"])
|
|
||||||
textbox1 = tk.Text(window, width=100)
|
|
||||||
menu = tk.Menu(window, background="white") # 设置菜单栏
|
|
||||||
programmenu = tk.Menu(menu, tearoff=0, background="white") # 设置“程序”菜单栏
|
|
||||||
|
|
||||||
menu.add_cascade(label=langFile[lang]["Uengine Apk Builder"]["Menu"][0]["Name"], menu=programmenu)
|
|
||||||
programmenu.add_command(label=langFile[lang]["Uengine Apk Builder"]["Menu"][0]["Menu"][0], command=window.quit) # 设置“退出程序”项
|
|
||||||
# 设置控件
|
|
||||||
combobox1['value'] = findApkHistory
|
|
||||||
textbox1.configure(state=tk.DISABLED)
|
|
||||||
textbox1.config(foreground='white', background='black')
|
|
||||||
# 如果有参数
|
|
||||||
if len(sys.argv) > 1:
|
|
||||||
combobox1.set(sys.argv[1])
|
|
||||||
# 设置窗口
|
|
||||||
win.title(title)
|
|
||||||
win.resizable(0, 0)
|
|
||||||
win.iconphoto(False, tk.PhotoImage(file=iconPath))
|
|
||||||
#
|
|
||||||
win.config(menu=menu) # 显示菜单栏
|
|
||||||
label1.grid(row=2, column=0)
|
|
||||||
combobox1.grid(row=2, column=1)
|
|
||||||
button2.grid(row=2, column=2)
|
|
||||||
button3.grid(row=0, column=1)
|
|
||||||
check.grid(row=0, column=0)
|
|
||||||
frame2.grid(row=3, columnspa=3)
|
|
||||||
textbox1.grid(row=4, columnspa=3)
|
|
||||||
window.pack()
|
|
||||||
win.mainloop()
|
|
|
@ -25,13 +25,11 @@ import traceback
|
||||||
import threading
|
import threading
|
||||||
import webbrowser
|
import webbrowser
|
||||||
import subprocess
|
import subprocess
|
||||||
try:
|
map = True
|
||||||
import matplotlib
|
import matplotlib
|
||||||
import matplotlib.figure
|
import matplotlib.figure
|
||||||
import matplotlib.pylab
|
import matplotlib.pylab
|
||||||
import matplotlib.font_manager
|
import matplotlib.font_manager
|
||||||
except:
|
|
||||||
pass
|
|
||||||
import urllib.parse as parse
|
import urllib.parse as parse
|
||||||
import PyQt5.QtGui as QtGui
|
import PyQt5.QtGui as QtGui
|
||||||
import PyQt5.QtCore as QtCore
|
import PyQt5.QtCore as QtCore
|
||||||
|
@ -138,6 +136,7 @@ class InstallApk(QtCore.QThread):
|
||||||
def run(self):
|
def run(self):
|
||||||
path = self.path
|
path = self.path
|
||||||
quit = self.quit
|
quit = self.quit
|
||||||
|
# 将会强制改为拷贝安装,安装拷贝后的APK
|
||||||
try:
|
try:
|
||||||
if not os.path.exists("/tmp/uengine-runner"):
|
if not os.path.exists("/tmp/uengine-runner"):
|
||||||
os.makedirs("/tmp/uengine-runner")
|
os.makedirs("/tmp/uengine-runner")
|
||||||
|
@ -158,20 +157,19 @@ class InstallApk(QtCore.QThread):
|
||||||
os.makedirs(iconSaveDir,exist_ok=True)
|
os.makedirs(iconSaveDir,exist_ok=True)
|
||||||
SaveApkIcon(path, iconSavePath)
|
SaveApkIcon(path, iconSavePath)
|
||||||
try:
|
try:
|
||||||
if setting["SaveApk"]:
|
|
||||||
shutil.copy(path, "/tmp/uengine-runner/bak.apk")
|
shutil.copy(path, "/tmp/uengine-runner/bak.apk")
|
||||||
except:
|
except:
|
||||||
if QtWidgets.QMessageBox.critical(widget, "错误", "无法备份安装包,是否不备份安装包继续安装?\n提示:新版UEngine安装后会自动删除安装包") == QtWidgets.QMessageBox.No:
|
QtWidgets.QMessageBox.critical(widget, "错误", "无法备份安装包,无法继续安装!")
|
||||||
DisabledAndEnbled(False)
|
DisabledAndEnbled(False)
|
||||||
return
|
return
|
||||||
setting["SaveApk"] = False
|
print(f"uengine install --apk='/tmp/uengine-runner/bak.apk'")
|
||||||
print("start install apk2")
|
commandReturn = os.system(f"uengine install --apk='/tmp/uengine-runner/bak.apk'")
|
||||||
commandReturn = os.system("uengine install --apk='{}'".format(path))
|
# 因为安装的是备份包,所以不需要再拷贝回去了(应该也没了)
|
||||||
try:
|
#try:
|
||||||
if setting["SaveApk"]:
|
# if setting["SaveApk"]:
|
||||||
shutil.copy("/tmp/uengine-runner/bak.apk", path)
|
# shutil.copy("/tmp/uengine-runner/bak.apk", path)
|
||||||
except:
|
#except:
|
||||||
self.error.emit(langFile[lang]["Main"]["MainWindow"]["Error"]["BackApkError"])
|
# self.error.emit(langFile[lang]["Main"]["MainWindow"]["Error"]["BackApkError"])
|
||||||
if commandReturn != 0:
|
if commandReturn != 0:
|
||||||
self.error.emit("疑似 APK 安装失败,请检查 UEngine 是否正常安装、运行以及 APK 文件是否正确、完整")
|
self.error.emit("疑似 APK 安装失败,请检查 UEngine 是否正常安装、运行以及 APK 文件是否正确、完整")
|
||||||
DisabledAndEnbled(False)
|
DisabledAndEnbled(False)
|
||||||
|
@ -493,11 +491,11 @@ def SaveApkIcon(apkFilePath, iconSavePath)->"保存 apk 文件的图标":
|
||||||
saveIconFile.write(iconData)
|
saveIconFile.write(iconData)
|
||||||
return
|
return
|
||||||
print("None Icon! Show defult icon")
|
print("None Icon! Show defult icon")
|
||||||
shutil.copy(programPath + "/defult.png", iconSavePath)
|
shutil.copy(programPath + "/defult.svg", iconSavePath)
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
print("Error, show defult icon")
|
print("Error, show defult icon")
|
||||||
shutil.copy(programPath + "/defult.png", iconSavePath)
|
shutil.copy(programPath + "/defult.svg", iconSavePath)
|
||||||
|
|
||||||
def saveicon():
|
def saveicon():
|
||||||
global temppath
|
global temppath
|
||||||
|
@ -1005,8 +1003,8 @@ class SettingWindow():
|
||||||
cancalButton = QtWidgets.QPushButton("取消")
|
cancalButton = QtWidgets.QPushButton("取消")
|
||||||
okButton = QtWidgets.QPushButton("保存")
|
okButton = QtWidgets.QPushButton("保存")
|
||||||
|
|
||||||
settingLayout.addWidget(QtWidgets.QLabel("APK 安装模式:"), 0, 0, 1, 1)
|
#settingLayout.addWidget(QtWidgets.QLabel("APK 安装模式:"), 0, 0, 1, 1)
|
||||||
settingLayout.addWidget(SettingWindow.saveApkOption, 0, 1, 1, 1)
|
#settingLayout.addWidget(SettingWindow.saveApkOption, 0, 1, 1, 1)
|
||||||
settingLayout.addWidget(QtWidgets.QLabel("窗口大小策略:"), 1, 0, 1, 1)
|
settingLayout.addWidget(QtWidgets.QLabel("窗口大小策略:"), 1, 0, 1, 1)
|
||||||
settingLayout.addWidget(SettingWindow.autoScreenConfig, 1, 1, 1, 1)
|
settingLayout.addWidget(SettingWindow.autoScreenConfig, 1, 1, 1, 1)
|
||||||
settingLayout.addWidget(QtWidgets.QLabel("程序分类策略:"), 2, 0, 1, 1)
|
settingLayout.addWidget(QtWidgets.QLabel("程序分类策略:"), 2, 0, 1, 1)
|
||||||
|
@ -1080,7 +1078,7 @@ class UpdateWindow():
|
||||||
cancel = QtWidgets.QPushButton("取消")
|
cancel = QtWidgets.QPushButton("取消")
|
||||||
cancel.clicked.connect(UpdateWindow.update.close)
|
cancel.clicked.connect(UpdateWindow.update.close)
|
||||||
try:
|
try:
|
||||||
UpdateWindow.data = json.loads(requests.get("http://120.25.153.144/uengine-runner/update.json").text)
|
UpdateWindow.data = json.loads(requests.get("https://304626p927.goho.co/uengine-runner/update.json").text)
|
||||||
versionLabel = QtWidgets.QLabel(f"当前版本:{version}\n最新版本:{UpdateWindow.data['Version']}\n更新内容:")
|
versionLabel = QtWidgets.QLabel(f"当前版本:{version}\n最新版本:{UpdateWindow.data['Version']}\n更新内容:")
|
||||||
if UpdateWindow.data["Version"] == version:
|
if UpdateWindow.data["Version"] == version:
|
||||||
updateText.setText("此为最新版本,无需更新")
|
updateText.setText("此为最新版本,无需更新")
|
||||||
|
@ -1151,7 +1149,7 @@ class ApkInformation():
|
||||||
tab1Layout = QtWidgets.QGridLayout()
|
tab1Layout = QtWidgets.QGridLayout()
|
||||||
SaveApkIcon(path, "/tmp/uengine-runner-android-app-icon.png")
|
SaveApkIcon(path, "/tmp/uengine-runner-android-app-icon.png")
|
||||||
simpleInformation = QtWidgets.QLabel(f"""
|
simpleInformation = QtWidgets.QLabel(f"""
|
||||||
<p align='center'><img src='/tmp/uengine-runner-android-app-icon.png'></p>
|
<p align='center'><img width='256' src='/tmp/uengine-runner-android-app-icon.png'></p>
|
||||||
<p>包名:{GetApkPackageName(path)}</p>
|
<p>包名:{GetApkPackageName(path)}</p>
|
||||||
<p>中文名:{GetApkChineseLabel(path)}</p>
|
<p>中文名:{GetApkChineseLabel(path)}</p>
|
||||||
<p>Activity:{GetApkActivityName(path)}</p>
|
<p>Activity:{GetApkActivityName(path)}</p>
|
||||||
|
@ -1159,6 +1157,7 @@ class ApkInformation():
|
||||||
|
|
||||||
seeFen = QtWidgets.QPushButton("查看程序评分情况")
|
seeFen = QtWidgets.QPushButton("查看程序评分情况")
|
||||||
updFen = QtWidgets.QPushButton("上传程序评分情况")
|
updFen = QtWidgets.QPushButton("上传程序评分情况")
|
||||||
|
seeFen.setEnabled(map)
|
||||||
seeFen.clicked.connect(ApkInformation.ShowMap)
|
seeFen.clicked.connect(ApkInformation.ShowMap)
|
||||||
updFen.clicked.connect(ApkInformation.UpdateMark)
|
updFen.clicked.connect(ApkInformation.UpdateMark)
|
||||||
tab1Layout.addWidget(simpleInformation, 0, 0, 1, 3)
|
tab1Layout.addWidget(simpleInformation, 0, 0, 1, 3)
|
||||||
|
@ -1218,7 +1217,7 @@ class ApkInformation():
|
||||||
if choose == None or choose == 7:
|
if choose == None or choose == 7:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
QtWidgets.QMessageBox.critical(widget, "提示", requests.post("http://120.25.153.144/uengine-runner/app/check/add.php", {"Package": GetApkPackageName(path), "Type": choose}).text)
|
QtWidgets.QMessageBox.information(widget, "提示", requests.post("https://304626p927.goho.co/uengine-runner/app/check/add.php", {"Package": GetApkPackageName(path), "Type": choose}).text)
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
QtWidgets.QMessageBox.critical(widget, "错误", langFile[lang]["Main"]["MainWindow"]["Error"]["ConnectServerStarError"])
|
QtWidgets.QMessageBox.critical(widget, "错误", langFile[lang]["Main"]["MainWindow"]["Error"]["ConnectServerStarError"])
|
||||||
|
@ -1230,7 +1229,7 @@ class ApkInformation():
|
||||||
QtWidgets.QMessageBox.critical(widget, "错误", langFile[lang]["Main"]["MainWindow"]["Error"]["ApkFileError"])
|
QtWidgets.QMessageBox.critical(widget, "错误", langFile[lang]["Main"]["MainWindow"]["Error"]["ApkFileError"])
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
data = json.loads(requests.get("http://120.25.153.144/uengine-runner/app/check/" + package +"/data.json").text)
|
data = json.loads(requests.get("https://304626p927.goho.co/uengine-runner/app/check/" + package +"/data.json").text)
|
||||||
print(data)
|
print(data)
|
||||||
except:
|
except:
|
||||||
QtWidgets.QMessageBox.information(widget, "提示", "此程序暂时没有评分,欢迎您贡献第一个评分!")
|
QtWidgets.QMessageBox.information(widget, "提示", "此程序暂时没有评分,欢迎您贡献第一个评分!")
|
||||||
|
@ -1520,25 +1519,26 @@ if not os.path.exists(get_home() + "/.config/uengine-runner/SaveApkIcon.json"):
|
||||||
if not os.path.exists(get_home() + "/.config/uengine-runner/SaveApk.json"): # 如果没有配置文件
|
if not os.path.exists(get_home() + "/.config/uengine-runner/SaveApk.json"): # 如果没有配置文件
|
||||||
write_txt(get_home() + "/.config/uengine-runner/SaveApk.json", json.dumps({"path": "~"})) # 写入(创建)一个配置文件
|
write_txt(get_home() + "/.config/uengine-runner/SaveApk.json", json.dumps({"path": "~"})) # 写入(创建)一个配置文件
|
||||||
if not os.path.exists(get_home() + "/.config/uengine-runner/setting.json"):
|
if not os.path.exists(get_home() + "/.config/uengine-runner/setting.json"):
|
||||||
choosemsg = QtWidgets.QMessageBox()
|
write_txt(get_home() + "/.config/uengine-runner/setting.json", json.dumps({"SaveApk": int(1)}))
|
||||||
choosemsg.setText("""在使用本程序前,请选择安装Apk包的设置以便更好的运行,下列选项的详细介绍:
|
# choosemsg = QtWidgets.QMessageBox()
|
||||||
|
# choosemsg.setText("""在使用本程序前,请选择安装Apk包的设置以便更好的运行,下列选项的详细介绍:
|
||||||
不备份Apk包直接安装:适用于Deepin(旧版UEngine),安装较快,不受/tmp大小所限,但Deepin23和UOS(新版UEngine)不推荐此选项,因为安装后会自动删除Apk安装包;
|
#
|
||||||
备份Apk包然后在安装后自动拷贝原先目录:适用于Deepin23和UOS(新版UEngine),安装较慢,受/tmp大小所限,安装后不会丢失Apk,Deepin(旧版UEngine)不推荐使用该选项;
|
#不备份Apk包直接安装:适用于Deepin(旧版UEngine),安装较快,不受/tmp大小所限,但Deepin23和UOS(新版UEngine)不推荐此选项,因为安装后会自动删除Apk安装包;
|
||||||
|
#备份Apk包然后在安装后自动拷贝原先目录:适用于Deepin23和UOS(新版UEngine),安装较慢,受/tmp大小所限,安装后不会丢失Apk,Deepin(旧版UEngine)不推荐使用该选项;
|
||||||
|
#
|
||||||
后期可以在程序主界面的菜单栏的“程序”=>“设置”里进行修改,
|
#
|
||||||
如果不知道正在使用的系统是什么版本可以打开系统设置查看。
|
#后期可以在程序主界面的菜单栏的“程序”=>“设置”里进行修改,
|
||||||
""")
|
#如果不知道正在使用的系统是什么版本可以打开系统设置查看。
|
||||||
choosemsg.setWindowTitle("设置")
|
#""")
|
||||||
choose = None
|
# choosemsg.setWindowTitle("设置")
|
||||||
choosemsg.addButton("不备份Apk包直接安装", QtWidgets.QMessageBox.ActionRole).clicked.connect(lambda: BackAPK(0))
|
# choose = None
|
||||||
choosemsg.addButton("备份Apk包然后在安装后自动拷贝原先目录", QtWidgets.QMessageBox.ActionRole).clicked.connect(lambda: BackAPK(1))
|
# choosemsg.addButton("不备份Apk包直接安装", QtWidgets.QMessageBox.ActionRole).clicked.connect(lambda: BackAPK(0))
|
||||||
choosemsg.exec_()
|
# choosemsg.addButton("备份Apk包然后在安装后自动拷贝原先目录", QtWidgets.QMessageBox.ActionRole).clicked.connect(lambda: BackAPK(1))
|
||||||
if choose == None:
|
# choosemsg.exec_()
|
||||||
QtWidgets.QMessageBox.information(None, "提示", "必须选择一个选项!否则无法进入程序!")
|
# if choose == None:
|
||||||
sys.exit()
|
# QtWidgets.QMessageBox.information(None, "提示", "必须选择一个选项!否则无法进入程序!")
|
||||||
write_txt(get_home() + "/.config/uengine-runner/setting.json", json.dumps({"SaveApk": int(choose)}))
|
# sys.exit()
|
||||||
|
# write_txt(get_home() + "/.config/uengine-runner/setting.json", json.dumps({"SaveApk": int(choose)}))
|
||||||
defultProgramList = {
|
defultProgramList = {
|
||||||
"SaveApk": 1,
|
"SaveApk": 1,
|
||||||
"AutoScreenConfig": False,
|
"AutoScreenConfig": False,
|
||||||
|
@ -1569,7 +1569,7 @@ findApkNameHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runn
|
||||||
findApkActivityHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runner/FindApkActivityHistory.json")).values())
|
findApkActivityHistory = list(json.loads(readtxt(get_home() + "/.config/uengine-runner/FindApkActivityHistory.json")).values())
|
||||||
|
|
||||||
try:
|
try:
|
||||||
threading.Thread(target=requests.get, args=[parse.unquote(base64.b64decode("aHR0cDovLzEyMC4yNS4xNTMuMTQ0L3VlbmdpbmUtcnVubmVyL29wZW4vSW5zdGFsbC5waHA=").decode("utf-8")) + "?Version=" + version]).start()
|
threading.Thread(target=requests.get, args=[parse.unquote(base64.b64decode("aHR0cHM6Ly8zMDQ2MjZwOTI3LmdvaG8uY28vdWVuZ2luZS1ydW5uZXIvb3Blbi9JbnN0YWxsLnBocA==").decode("utf-8")) + "?Version=" + version]).start()
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
# add sub window
|
# add sub window
|
||||||
|
@ -1577,10 +1577,10 @@ except:
|
||||||
windowflag = "close"
|
windowflag = "close"
|
||||||
def Egg():
|
def Egg():
|
||||||
try:
|
try:
|
||||||
lists = json.loads(requests.get("http://120.25.153.144/uengine-runner/VersionList.json").text)
|
lists = json.loads(requests.get("https://304626p927.goho.co/uengine-runner/VersionList.json").text)
|
||||||
data = []
|
data = []
|
||||||
for i in lists:
|
for i in lists:
|
||||||
data.append(int(requests.get("http://120.25.153.144/uengine-runner/{}/data.txt".format(i)).text))
|
data.append(int(requests.get("https://304626p927.goho.co/uengine-runner/{}/data.txt".format(i)).text))
|
||||||
except:
|
except:
|
||||||
QtWidgets.QMessageBox.critical(widget, "错误", "服务器出错!数据获取失败!")
|
QtWidgets.QMessageBox.critical(widget, "错误", "服务器出错!数据获取失败!")
|
||||||
return
|
return
|
||||||
|
@ -1643,7 +1643,7 @@ def showhelp():
|
||||||
|
|
||||||
helpWidget.setLayout(helpLayout)
|
helpWidget.setLayout(helpLayout)
|
||||||
helpWindow.setCentralWidget(helpWidget)
|
helpWindow.setCentralWidget(helpWidget)
|
||||||
helpWindow.setFixedSize(helpWindow.frameSize().width() * 0.9, helpWindow.frameSize().height() * 1.5)
|
helpWindow.setFixedSize(int(helpWindow.frameSize().width() * 0.9), int(helpWindow.frameSize().height() * 1.5))
|
||||||
helpWindow.setWindowTitle("帮助")
|
helpWindow.setWindowTitle("帮助")
|
||||||
helpWindow.setWindowIcon(QtGui.QIcon(iconPath))
|
helpWindow.setWindowIcon(QtGui.QIcon(iconPath))
|
||||||
helpWindow.show()
|
helpWindow.show()
|
||||||
|
|
|
@ -27,7 +27,7 @@ def Update(name, stars, contact, things, version):
|
||||||
"Version": version
|
"Version": version
|
||||||
}
|
}
|
||||||
try:
|
try:
|
||||||
QtWidgets.QMessageBox.information(widget, "提示", requests.post(parse.unquote(base64.b64decode("aHR0cCUzQS8vMTIwLjI1LjE1My4xNDQvdWVuZ2luZS1ydW5uZXIvYnVnL3VwbG9hZC5waHA=").decode("utf-8")), data=data).text)
|
QtWidgets.QMessageBox.information(widget, "提示", requests.post(parse.unquote(base64.b64decode("aHR0cHM6Ly8zMDQ2MjZwOTI3LmdvaG8uY28vdWVuZ2luZS1ydW5uZXIvYnVnL3VwbG9hZC5waHA=").decode("utf-8")), data=data).text)
|
||||||
print(data)
|
print(data)
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
|
|
|
@ -27,7 +27,7 @@ def Update(name, stars, contact, things, version):
|
||||||
"Version": version
|
"Version": version
|
||||||
}
|
}
|
||||||
try:
|
try:
|
||||||
QtWidgets.QMessageBox.information(widget, "提示", requests.post(parse.unquote(base64.b64decode("aHR0cCUzQS8vMTIwLjI1LjE1My4xNDQvdWVuZ2luZS1ydW5uZXIvYnVnL3VwbG9hZC5waHA=").decode("utf-8")), data=data).text)
|
QtWidgets.QMessageBox.information(widget, "提示", requests.post(parse.unquote(base64.b64decode("aHR0cHM6Ly8zMDQ2MjZwOTI3LmdvaG8uY28vdWVuZ2luZS1ydW5uZXIvYnVnL3VwbG9hZC5waHA=").decode("utf-8")), data=data).text)
|
||||||
print(data)
|
print(data)
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
|
|
Loading…
Reference in New Issue