UEngine运行器1.8.1

This commit is contained in:
gfdgd_xi 2022-08-30 21:26:04 +08:00
parent 531690fa4a
commit 05eefcfe9b
21 changed files with 289 additions and 296 deletions

View File

@ -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-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 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 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/
@ -35,7 +37,7 @@ install:
make build
echo "Install..."
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
depend:

View File

@ -0,0 +1,2 @@
#!/bin/bash
/usr/bin/uengine launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity

Binary file not shown.

View File

@ -28,6 +28,7 @@
"※2、修复 APK 路径带空格无法正常安装的问题",
"3、修复打包器打包的 APK 带下划线“_”无法正常打包的问题",
"4、修复打包器下方命令返回过多空白行的问题",
"5、修复程序生成的默认图标任然是旧版图标的问题",
"",
"<b>V1.8.0</b>",
"※1、程序界面大部分由 Tkinter 转 PyQt5",
@ -184,7 +185,7 @@
"11、deepin 终端",
"……"
],
"Time": "2022年08月01日",
"Time": "2022年08月29日",
"Contribute": [
"<b>感谢以下用户提供的问题、建议、图标、代码等,如果有遗漏,请及时与开发者联系添加,以及如果侵犯到您的合法权益,也及时与开发者联系:</p>",
"<hr>",
@ -202,6 +203,7 @@
"感谢 通天灵宝https://bbs.deepin.org/user/137230、wuhaiou123https://bbs.chinauos.com/zh/user/309117 反馈的 图标生成错误导致无法生成 .desktop 文件的问题",
"感谢 潜伏https://bbs.chinauos.com/zh/user/303339 反馈的右键支持安装/卸载的建议",
"感谢 z***g@gmx.dehttps://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 的问题"
]
}

View File

@ -491,11 +491,11 @@ def SaveApkIcon(apkFilePath, iconSavePath)->"保存 apk 文件的图标":
saveIconFile.write(iconData)
return
print("None Icon! Show defult icon")
shutil.copy(programPath + "/defult.png", iconSavePath)
shutil.copy(programPath + "/defult.svg", iconSavePath)
except:
traceback.print_exc()
print("Error, show defult icon")
shutil.copy(programPath + "/defult.png", iconSavePath)
shutil.copy(programPath + "/defult.svg", iconSavePath)
def saveicon():
global temppath
@ -1078,7 +1078,7 @@ class UpdateWindow():
cancel = QtWidgets.QPushButton("取消")
cancel.clicked.connect(UpdateWindow.update.close)
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更新内容:")
if UpdateWindow.data["Version"] == version:
updateText.setText("此为最新版本,无需更新")
@ -1217,7 +1217,7 @@ class ApkInformation():
if choose == None or choose == 7:
return
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:
traceback.print_exc()
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"])
return
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)
except:
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())
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:
pass
# add sub window
@ -1577,10 +1577,10 @@ except:
windowflag = "close"
def Egg():
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 = []
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:
QtWidgets.QMessageBox.critical(widget, "错误", "服务器出错!数据获取失败!")
return

View File

@ -1,22 +1,19 @@
Package: com.gitee.uengine.runner.spark
Source: com.gitee.uengine.runner.spark
Replaces: spark-uengine-runner, com.gitee.uengine.runner.spark.ubuntu
Version: 1.8.0
Version: 1.8.1
Architecture: all
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>
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)
Priority: optional
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]
Description: UEngine 运行器1.8.0 更新内容:
※1、程序界面大部分由 Tkinter 转 PyQt5
※2、添加了自动/手动配置 UEngine 窗口大小文件(自动需要在设置里手动开启,配置窗口的配置文件需要 Root
※3、增加了安装/卸载失败后的提示
※4、补回谢明名单
※5、支持免密安装/卸载 APK
6、pip 更换华为源,提升下载速度
7、新增主题功能
8、支持在安装 APK 后手动指定分类(手动指定需要在设置里手动开启)
Description: UEngine 运行器1.8.1 更新内容:
※1、修复在 APK 详细信息中图标可能过大导致无法正常使用的问题
※2、修复 APK 路径带空格无法正常安装的问题
3、修复打包器打包的 APK 带下划线“_”无法正常打包的问题
4、修复打包器下方命令返回过多空白行的问题
开发/参与者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>

View File

@ -21,4 +21,4 @@ ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-applist-laun
# 因为 Ubuntu 的问题,省略
gtk-update-icon-cache /usr/share/icons/bloom > /dev/null | true
# 向服务器返回安装数加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

View File

@ -1,19 +1,19 @@
#!/bin/sh
# 删除软链接
rm -fv /usr/bin/uengine-runner
rm -fv /usr/bin/uengine-apk-builder
rm -fv /usr/bin/uengine-app-uninstall
rm -fv /usr/bin/uengine-app-install
rm -fv /usr/bin/uengine-clean
rm -fv /usr/bin/uengine-runner-about
rm -fv /usr/bin/uengine-keyboard
rm -fv /usr/bin/uengine-useadb
rm -fv /usr/bin/uengine-runner-launch.sh
rm -fv /usr/bin/uengine-runner-update-bug
rm -fv /usr/bin/uengine-root
rm -frv /opt/apps/com.gitee.uengine.runner.spark/files/api/__pycache__
rm -frv /opt/apps/com.gitee.uengine.runner.spark/files/__pycache__
rm -fv /usr/bin/uengine-runner-applist-launch.sh
rm -f /usr/bin/uengine-runner
rm -f /usr/bin/uengine-apk-builder
rm -f /usr/bin/uengine-app-uninstall
rm -f /usr/bin/uengine-app-install
rm -f /usr/bin/uengine-clean
rm -f /usr/bin/uengine-runner-about
rm -f /usr/bin/uengine-keyboard
rm -f /usr/bin/uengine-useadb
rm -f /usr/bin/uengine-runner-launch.sh
rm -f /usr/bin/uengine-runner-update-bug
rm -f /usr/bin/uengine-root
rm -fr /opt/apps/com.gitee.uengine.runner.spark/files/api/__pycache__
rm -fr /opt/apps/com.gitee.uengine.runner.spark/files/__pycache__
rm -f /usr/bin/uengine-runner-applist-launch.sh
# 刷新图标缓存
# 因为 Ubuntu 的问题,省略
gtk-update-icon-cache /usr/share/icons/bloom > /dev/null | true

View File

@ -7,6 +7,6 @@ Icon=/opt/apps/com.gitee.uengine.runner.spark/files/menu.svg
MimeType=
Name=UEngine App List
Name[zh]=UEngine 程序菜单
StartupWMClass=UEngine 程序菜单
StartupWMClass=uengine-runner-applist-launch.sh
Terminal=false
Type=Application

View File

@ -1,13 +1,23 @@
<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
<title>index</title>
<meta charset='UTF-8'>
<meta name='viewport' content='width=device-width initial-scale=1'>
<link rel="shortcut icon" href="../runner.svg">
<title>UEngine 程序帮助</title>
</head>
<body><h1 id='uengine-运行器帮助'>UEngine 运行器帮助</h1>
<body onload="UpdateTime();">
<h1 id='uengine-运行器帮助'>UEngine 运行器帮助</h1>
<hr />
<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>
<hr />
<h2 id='详细帮助'>详细帮助</h2>
@ -17,16 +27,20 @@
<ol start=''>
<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>点击安装按钮,输入密码
<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-1-5.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-1-5.png"
referrerpolicy="no-referrer"> </li>
</ol>
<h4 id='方法二-1'>方法二</h4>
<ol start=''>
<li>打开要安装的Apk所在目录右击=&gt;打开方式=&gt;安装或卸载 APKUEngine 运行器)<br/><img src="1-2-1.png" referrerpolicy="no-referrer"> </li>
<li>打开要安装的Apk所在目录右击=&gt;打开方式=&gt;安装或卸载 APKUEngine 运行器)<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-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>
<h3 id='卸载apk'>卸载Apk</h3>
@ -40,7 +54,8 @@
</ol>
<h4 id='方法二-2'>方法二</h4>
<ol start=''>
<li>打开要安装的Apk所在目录右击=&gt;打开方式=&gt;安装或卸载 APKUEngine 运行器)<br/><img src="1-2-1.png" referrerpolicy="no-referrer"> </li>
<li>打开要安装的Apk所在目录右击=&gt;打开方式=&gt;安装或卸载 APKUEngine 运行器)<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-4.png" referrerpolicy="no-referrer"> </li>
@ -56,7 +71,9 @@
<ol start=''>
<li>打开 UEngine 运行器 <br/><img src="1-1-1.png" referrerpolicy="no-referrer"> </li>
<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>
</ol>
@ -160,6 +177,14 @@
<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>
</html>

View File

@ -160,6 +160,7 @@
"button2": "浏览",
"button3": " 打包",
"check": "使用前缀“uengine-dc”",
"size": "从 UEngine 导入程序大小设置(如果有设置)",
"Menu": [
{
"Name": "程序",
@ -330,6 +331,7 @@
"button2": "Find",
"button3": " Build",
"check": "Use Prefix With \"uengine-dc\"",
"size": "Add Android Program Size Setting From UEngine (If you're setting)",
"Menu": [
{
"Name": "Program",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 312 KiB

View File

@ -2,9 +2,10 @@
"Package": "com.gitee.uengine.runner.spark",
"Url": [
"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": "Linuxdeepin/UOS",
"Tips": [
"更多可见https://gitee.com/gfdgd-xi/uengine-runner/wikis 或程序的更多帮助",
@ -22,6 +23,13 @@
"5、如果想要使用adb连接UEngine或其他手机请使用 1.2.0 以前的版本。如需连接UEngine请安装adb补丁"
],
"Update": [
"<b>V1.8.1</b>",
"※1、修复在 APK 详细信息中图标可能过大导致无法正常使用的问题",
"※2、修复 APK 路径带空格无法正常安装的问题",
"3、修复打包器打包的 APK 带下划线“_”无法正常打包的问题",
"4、修复打包器下方命令返回过多空白行的问题",
"5、修复程序生成的默认图标任然是旧版图标的问题",
"",
"<b>V1.8.0</b>",
"※1、程序界面大部分由 Tkinter 转 PyQt5",
"※2、添加了自动/手动配置 UEngine 窗口大小文件(自动需要在设置里手动开启,配置窗口的配置文件需要 Root",
@ -166,7 +174,7 @@
"Use": [
"1、UEngine相关软件包基于anbox开发",
"2、Python3",
"3、tkintertkinter.tk、ttkthemes、tkinter.messagebox、tkinter.simpledialog、tkinter.filedialog 和 tkinter.ttk",
"3、PyQt5",
"4、aapt",
"5、dpkg",
"6、tree",
@ -177,7 +185,7 @@
"11、deepin 终端",
"……"
],
"Time": "2021年08月30日",
"Time": "2022年08月29日",
"Contribute": [
"<b>感谢以下用户提供的问题、建议、图标、代码等,如果有遗漏,请及时与开发者联系添加,以及如果侵犯到您的合法权益,也及时与开发者联系:</p>",
"<hr>",
@ -195,6 +203,7 @@
"感谢 通天灵宝https://bbs.deepin.org/user/137230、wuhaiou123https://bbs.chinauos.com/zh/user/309117 反馈的 图标生成错误导致无法生成 .desktop 文件的问题",
"感谢 潜伏https://bbs.chinauos.com/zh/user/303339 反馈的右键支持安装/卸载的建议",
"感谢 z***g@gmx.dehttps://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 的问题"
]
}

View File

@ -2,10 +2,10 @@
# 使用系统默认的 python3 运行
###########################################################################################
# 作者gfdgd xi
# 版本1.7.0
# 更新时间2022年07月23
# 版本1.8.1
# 更新时间2022年08月01
# 感谢anbox、deepin 和 统信
# 基于 Python3 的 tkinter 构建
# 基于 Python3 的 PyQt5 构建
###########################################################################################
#################
# 引入所需的库
@ -17,7 +17,6 @@ import shutil
import random
import zipfile
import traceback
import threading
import subprocess
import PyQt5.QtGui as QtGui
import PyQt5.QtCore as QtCore
@ -89,9 +88,9 @@ class BuildApkDeb(QtCore.QThread):
self.RunCommandShow("echo '写入文件,因为写入过程过于复杂,不显示写入命令……'")
apkPackageName = GetApkPackageName(apkPath, False)
if check.isChecked():
apkPackageNameNew = GetApkPackageName(apkPath, True).lower()
apkPackageNameNew = GetApkPackageName(apkPath, True).lower().replace("_", "-")
else:
apkPackageNameNew = GetApkPackageName(apkPath, False).lower()
apkPackageNameNew = GetApkPackageName(apkPath, False).lower().replace("_", "-")
apkPackageVersion = GetApkVersion(apkPath)
if apkPackageVersion[0].upper() == "V":
package = list(apkPackageVersion)
@ -99,6 +98,9 @@ class BuildApkDeb(QtCore.QThread):
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 = '''Package: {}
Version: {}
@ -373,7 +375,9 @@ def SaveApkIcon(apkFilePath, iconSavePath)->"获取 apk 文件的图标":
def TextboxAddText1(message):
global textbox1
textbox1.append(message)
if message.replace(" ", "").replace("\n", "") == "":
return
textbox1.append(message.replace("\n", ""))
# 获取用户桌面目录
def get_desktop_path():
@ -442,6 +446,7 @@ 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"])
label1.setSizePolicy(size)
button2.setSizePolicy(size)
check.setSizePolicy(size)
@ -454,7 +459,7 @@ button3.clicked.connect(BuildDeb)
widgetLayout.addWidget(label1, 0, 0, 1, 1)
widgetLayout.addWidget(combobox1, 0, 1, 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)
# 菜单栏
menu = window.menuBar()
@ -464,6 +469,7 @@ exitProgram.triggered.connect(window.close)
programmenu.addAction(exitProgram)
#
frame2.addWidget(check)
frame2.addWidget(sizes)
frame2.addWidget(button3)
widget.setLayout(widgetLayout)
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.show()
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()

View File

@ -25,13 +25,11 @@ import traceback
import threading
import webbrowser
import subprocess
try:
map = True
import matplotlib
import matplotlib.figure
import matplotlib.pylab
import matplotlib.font_manager
except:
pass
import urllib.parse as parse
import PyQt5.QtGui as QtGui
import PyQt5.QtCore as QtCore
@ -138,6 +136,7 @@ class InstallApk(QtCore.QThread):
def run(self):
path = self.path
quit = self.quit
# 将会强制改为拷贝安装安装拷贝后的APK
try:
if not os.path.exists("/tmp/uengine-runner"):
os.makedirs("/tmp/uengine-runner")
@ -158,20 +157,19 @@ class InstallApk(QtCore.QThread):
os.makedirs(iconSaveDir,exist_ok=True)
SaveApkIcon(path, iconSavePath)
try:
if setting["SaveApk"]:
shutil.copy(path, "/tmp/uengine-runner/bak.apk")
except:
if QtWidgets.QMessageBox.critical(widget, "错误", "无法备份安装包,是否不备份安装包继续安装?\n提示新版UEngine安装后会自动删除安装包") == QtWidgets.QMessageBox.No:
QtWidgets.QMessageBox.critical(widget, "错误", "无法备份安装包,无法继续安装!")
DisabledAndEnbled(False)
return
setting["SaveApk"] = False
print("start install apk2")
commandReturn = os.system("uengine install --apk='{}'".format(path))
try:
if setting["SaveApk"]:
shutil.copy("/tmp/uengine-runner/bak.apk", path)
except:
self.error.emit(langFile[lang]["Main"]["MainWindow"]["Error"]["BackApkError"])
print(f"uengine install --apk='/tmp/uengine-runner/bak.apk'")
commandReturn = os.system(f"uengine install --apk='/tmp/uengine-runner/bak.apk'")
# 因为安装的是备份包,所以不需要再拷贝回去了(应该也没了)
#try:
# if setting["SaveApk"]:
# shutil.copy("/tmp/uengine-runner/bak.apk", path)
#except:
# self.error.emit(langFile[lang]["Main"]["MainWindow"]["Error"]["BackApkError"])
if commandReturn != 0:
self.error.emit("疑似 APK 安装失败,请检查 UEngine 是否正常安装、运行以及 APK 文件是否正确、完整")
DisabledAndEnbled(False)
@ -493,11 +491,11 @@ def SaveApkIcon(apkFilePath, iconSavePath)->"保存 apk 文件的图标":
saveIconFile.write(iconData)
return
print("None Icon! Show defult icon")
shutil.copy(programPath + "/defult.png", iconSavePath)
shutil.copy(programPath + "/defult.svg", iconSavePath)
except:
traceback.print_exc()
print("Error, show defult icon")
shutil.copy(programPath + "/defult.png", iconSavePath)
shutil.copy(programPath + "/defult.svg", iconSavePath)
def saveicon():
global temppath
@ -1005,8 +1003,8 @@ class SettingWindow():
cancalButton = QtWidgets.QPushButton("取消")
okButton = QtWidgets.QPushButton("保存")
settingLayout.addWidget(QtWidgets.QLabel("APK 安装模式:"), 0, 0, 1, 1)
settingLayout.addWidget(SettingWindow.saveApkOption, 0, 1, 1, 1)
#settingLayout.addWidget(QtWidgets.QLabel("APK 安装模式:"), 0, 0, 1, 1)
#settingLayout.addWidget(SettingWindow.saveApkOption, 0, 1, 1, 1)
settingLayout.addWidget(QtWidgets.QLabel("窗口大小策略:"), 1, 0, 1, 1)
settingLayout.addWidget(SettingWindow.autoScreenConfig, 1, 1, 1, 1)
settingLayout.addWidget(QtWidgets.QLabel("程序分类策略:"), 2, 0, 1, 1)
@ -1080,7 +1078,7 @@ class UpdateWindow():
cancel = QtWidgets.QPushButton("取消")
cancel.clicked.connect(UpdateWindow.update.close)
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更新内容")
if UpdateWindow.data["Version"] == version:
updateText.setText("此为最新版本,无需更新")
@ -1151,7 +1149,7 @@ class ApkInformation():
tab1Layout = QtWidgets.QGridLayout()
SaveApkIcon(path, "/tmp/uengine-runner-android-app-icon.png")
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>中文名:{GetApkChineseLabel(path)}</p>
<p>Activity{GetApkActivityName(path)}</p>
@ -1159,6 +1157,7 @@ class ApkInformation():
seeFen = QtWidgets.QPushButton("查看程序评分情况")
updFen = QtWidgets.QPushButton("上传程序评分情况")
seeFen.setEnabled(map)
seeFen.clicked.connect(ApkInformation.ShowMap)
updFen.clicked.connect(ApkInformation.UpdateMark)
tab1Layout.addWidget(simpleInformation, 0, 0, 1, 3)
@ -1218,7 +1217,7 @@ class ApkInformation():
if choose == None or choose == 7:
return
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:
traceback.print_exc()
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"])
return
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)
except:
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"): # 如果没有配置文件
write_txt(get_home() + "/.config/uengine-runner/SaveApk.json", json.dumps({"path": "~"})) # 写入(创建)一个配置文件
if not os.path.exists(get_home() + "/.config/uengine-runner/setting.json"):
choosemsg = QtWidgets.QMessageBox()
choosemsg.setText("""在使用本程序前请选择安装Apk包的设置以便更好的运行下列选项的详细介绍
不备份Apk包直接安装适用于Deepin旧版UEngine安装较快不受/tmp大小所限但Deepin23和UOS新版UEngine不推荐此选项因为安装后会自动删除Apk安装包
备份Apk包然后在安装后自动拷贝原先目录适用于Deepin23和UOS新版UEngine安装较慢受/tmp大小所限安装后不会丢失ApkDeepin旧版UEngine不推荐使用该选项
后期可以在程序主界面的菜单栏的“程序”=>“设置”里进行修改,
如果不知道正在使用的系统是什么版本可以打开系统设置查看。
""")
choosemsg.setWindowTitle("设置")
choose = None
choosemsg.addButton("不备份Apk包直接安装", QtWidgets.QMessageBox.ActionRole).clicked.connect(lambda: BackAPK(0))
choosemsg.addButton("备份Apk包然后在安装后自动拷贝原先目录", QtWidgets.QMessageBox.ActionRole).clicked.connect(lambda: BackAPK(1))
choosemsg.exec_()
if choose == None:
QtWidgets.QMessageBox.information(None, "提示", "必须选择一个选项!否则无法进入程序!")
sys.exit()
write_txt(get_home() + "/.config/uengine-runner/setting.json", json.dumps({"SaveApk": int(choose)}))
write_txt(get_home() + "/.config/uengine-runner/setting.json", json.dumps({"SaveApk": int(1)}))
# choosemsg = QtWidgets.QMessageBox()
# choosemsg.setText("""在使用本程序前请选择安装Apk包的设置以便更好的运行下列选项的详细介绍
#
#不备份Apk包直接安装适用于Deepin旧版UEngine安装较快不受/tmp大小所限但Deepin23和UOS新版UEngine不推荐此选项因为安装后会自动删除Apk安装包
#备份Apk包然后在安装后自动拷贝原先目录适用于Deepin23和UOS新版UEngine安装较慢受/tmp大小所限安装后不会丢失ApkDeepin旧版UEngine不推荐使用该选项
#
#
#后期可以在程序主界面的菜单栏的“程序”=>“设置”里进行修改,
#如果不知道正在使用的系统是什么版本可以打开系统设置查看。
#""")
# choosemsg.setWindowTitle("设置")
# choose = None
# choosemsg.addButton("不备份Apk包直接安装", QtWidgets.QMessageBox.ActionRole).clicked.connect(lambda: BackAPK(0))
# choosemsg.addButton("备份Apk包然后在安装后自动拷贝原先目录", QtWidgets.QMessageBox.ActionRole).clicked.connect(lambda: BackAPK(1))
# choosemsg.exec_()
# if choose == None:
# QtWidgets.QMessageBox.information(None, "提示", "必须选择一个选项!否则无法进入程序!")
# sys.exit()
# write_txt(get_home() + "/.config/uengine-runner/setting.json", json.dumps({"SaveApk": int(choose)}))
defultProgramList = {
"SaveApk": 1,
"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())
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:
pass
# add sub window
@ -1577,10 +1577,10 @@ except:
windowflag = "close"
def Egg():
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 = []
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:
QtWidgets.QMessageBox.critical(widget, "错误", "服务器出错!数据获取失败!")
return
@ -1643,7 +1643,7 @@ def showhelp():
helpWidget.setLayout(helpLayout)
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.setWindowIcon(QtGui.QIcon(iconPath))
helpWindow.show()

View File

@ -27,7 +27,7 @@ def Update(name, stars, contact, things, version):
"Version": version
}
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)
except:
traceback.print_exc()

View File

@ -27,7 +27,7 @@ def Update(name, stars, contact, things, version):
"Version": version
}
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)
except:
traceback.print_exc()