diff --git a/UengineAndroidProgramList.desktop b/UengineAndroidProgramList.desktop index a8821d7..8ff8e7a 100755 --- a/UengineAndroidProgramList.desktop +++ b/UengineAndroidProgramList.desktop @@ -2,7 +2,7 @@ Categories=System; Comment=UEngine 程序菜单 Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity +Exec=/usr/bin/uengine launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Icon=/opt/apps/uengine-runner/icon.png MimeType= Name=UEngine 程序菜单 diff --git a/build/DEBIAN/control b/build/DEBIAN/control index 7d5c249..cc057c3 100644 --- a/build/DEBIAN/control +++ b/build/DEBIAN/control @@ -1,10 +1,10 @@ Package: spark-uengine-runner -Version: 1.5.0 +Version: 1.5.1 Maintainer: gfdgd xi <3025613752@qq.com>, actionchen<917981399@qq.com> Homepage: [https://gitee.com/gfdgd-xi/uengine-runner, https://github.com/gfdgd-xi/uengine-runner] Architecture: all Priority: optional Conflicts: com.gitee.uengine.runner.spark, spark-uengine-apk-builder -Depends: python3, python3-tk, python3-pip, aapt, uengine, python3-pil, python3-setuptools, deepin-terminal, curl +Depends: python3, python3-tk, python3-pip, aapt, uengine, python3-pil, python3-setuptools, deepin-terminal, curl, python3-pil, python3-pil.imagetk Description: UEngine Runner for deepin and UOS diff --git a/build/opt/apps/uengine-runner/Language.json b/build/opt/apps/uengine-runner/Language.json index 8fa00f2..5e4a2e7 100644 --- a/build/opt/apps/uengine-runner/Language.json +++ b/build/opt/apps/uengine-runner/Language.json @@ -3,7 +3,7 @@ "Main": { "MainWindow": { "Title": "UEngine 运行器", - "LabApkPath": "安装 APK:", + "LabApkPath": "安装/卸载 APK:", "LabUninstallPath": "卸载 Apk:", "BtnFindApk": "浏览", "BtnInstall": "安装", @@ -12,6 +12,7 @@ "BtnUninstall": "卸载", "Btngeticon": "保存图标", "BtnSaveApk": "保存Apk", + "BtnApkInformation": "Apk 信息", "Menu": [ { "Name": "程序", @@ -125,8 +126,7 @@ "Main": { "MainWindow": { "Title": "UEngine Runner", - "LabApkPath": "Install Apk:", - "LabUninstallPath": "Uninstall Apk", + "LabApkPath": "Install Or Uninstall Apk:", "BtnFindApk": "Find", "BtnInstall": "Install", "BtnShowUengineApp": "Open UEngine App List", @@ -134,6 +134,7 @@ "BtnUninstall": "Uninstall", "Btngeticon": "Save Apk Icon", "BtnSaveApk": "Saving Installed App Apk", + "BtnApkInformation": "Apk Information", "Menu": [ { "Name": "Program", diff --git a/build/opt/apps/uengine-runner/UengineAndroidProgramList.desktop b/build/opt/apps/uengine-runner/UengineAndroidProgramList.desktop index 1b126d3..110309e 100755 --- a/build/opt/apps/uengine-runner/UengineAndroidProgramList.desktop +++ b/build/opt/apps/uengine-runner/UengineAndroidProgramList.desktop @@ -1,11 +1,11 @@ [Desktop Entry] Categories=System; -Comment=uengine(anbox) 程序菜单 +Comment=UEngine 程序菜单 Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity +Exec=/usr/bin/uengine launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Icon=/opt/apps/uengine-runner/icon.png MimeType= -Name=uengine 程序菜单 -StartupWMClass=uengine 程序菜单 +Name=UEngine 程序菜单 +StartupWMClass=UEngine 程序菜单 Terminal=false Type=Application diff --git a/build/opt/apps/uengine-runner/information.json b/build/opt/apps/uengine-runner/information.json index 9bbd05c..e9a5b16 100755 --- a/build/opt/apps/uengine-runner/information.json +++ b/build/opt/apps/uengine-runner/information.json @@ -3,7 +3,7 @@ "https://gitee.com/gfdgd-xi/uengine-runner", "https://github.com/gfdgd-xi/uengine-runner" ], - "Version": "1.5.0", + "Version": "1.5.1", "System": "Linux(deepin/UOS)", "Tips": [ "更多可见:https://gitee.com/gfdgd-xi/uengine-runner/wikis", diff --git a/build/opt/apps/uengine-runner/setting.json b/build/opt/apps/uengine-runner/setting.json index be23244..d4f0364 100755 --- a/build/opt/apps/uengine-runner/setting.json +++ b/build/opt/apps/uengine-runner/setting.json @@ -1,7 +1,7 @@ { "Package": "spark-uengine-runner", "Update": true, - "Version": "1.5.0", + "Version": "1.5.1", "Url": "https://gfdgd-xi.github.io/update-program/data/UpdateInformation.json" } \ No newline at end of file diff --git a/build/opt/apps/uengine-runner/uengine-apk-builder b/build/opt/apps/uengine-runner/uengine-apk-builder index d78a287..fbbf991 100755 --- a/build/opt/apps/uengine-runner/uengine-apk-builder +++ b/build/opt/apps/uengine-runner/uengine-apk-builder @@ -148,7 +148,7 @@ done exit 0'''.format(apkPackageName) desktopFile = '''[Desktop Entry] Categories=Other; -Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package={} --component={} +Exec=uengine launch --action=android.intent.action.MAIN --package={} --component={} Icon=/usr/share/uengine/icons/{}.png Terminal=false Type=Application @@ -294,7 +294,7 @@ def BuildUengineDesktop(packageName, activityName, showName, iconPath, savePath) [Desktop Entry] Categories=app; Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package={} --component={} +Exec=/usr/bin/uengine launch.sh --action=android.intent.action.MAIN --package={} --component={} GenericName={} Icon={} MimeType= @@ -313,16 +313,16 @@ def GetApkChineseLabel(apkFilePath): line = line.replace("'", "") return line -def GetApkIconInApk(apkFilePath): - info = GetApkInformation(apkFilePath) - for line in info.split('\n'): - if "application:" in line: - line = line[line.index("icon='"): -1] - line = line.replace("icon='", "") - if "'" in line: - line = line[0: line.index("'")] - return line - return line +#def GetApkIconInApk(apkFilePath): +# info = GetApkInformation(apkFilePath) +# for line in info.split('\n'): +# if "application:" in line: +# line = line[line.index("icon='"): -1] +# line = line.replace("icon='", "") +# if "'" in line: +# line = line[0: line.index("'")] +# return line +# return line #合并两个函数到一起 def SaveApkIcon(apkFilePath, iconSavePath)->"获取 apk 文件的图标": diff --git a/build/opt/apps/uengine-runner/uengine-install (1).desktop b/build/opt/apps/uengine-runner/uengine-install (1).desktop new file mode 100755 index 0000000..e386dfa --- /dev/null +++ b/build/opt/apps/uengine-runner/uengine-install (1).desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Categories=system;Utility; +Encoding=UTF-8 +Exec=uengine-runner -ci %F +GenericName=APK Install(UEngine) +GenericName[zh_CN]=APK 安装(UEngine) +Icon=/opt/apps/uengine-runner/icon.png +MimeType=application/apk; +Name=APK Install(UEngine) +Name[zh_CN]=APK 安装(UEngine) +NoDisplay=true +OnlyShowIn=Unity; +StartupNotify=false +StartupWMClass=APK 安装(UEngine) +Terminal=false +Type=Application diff --git a/build/opt/apps/uengine-runner/uengine-runner b/build/opt/apps/uengine-runner/uengine-runner index 5a05069..50ff1c7 100755 --- a/build/opt/apps/uengine-runner/uengine-runner +++ b/build/opt/apps/uengine-runner/uengine-runner @@ -22,6 +22,8 @@ import threading import ttkthemes import webbrowser import subprocess +import PIL.Image as Image +import PIL.ImageTk as ImageTk import tkinter as tk import tkinter.ttk as ttk import tkinter.messagebox as messagebox @@ -39,37 +41,38 @@ def UninstallProgram(package: "apk 包名")->"卸载程序": os.remove("{}/.local/share/applications/{}.desktop".format(get_home(), package)) if os.path.exists("{}/{}.desktop".format(get_desktop_path(), package)): os.remove("{}/{}.desktop".format(get_desktop_path(), package)) - fineUninstallApkHistory.append(ComboUninstallPath.get()) - ComboUninstallPath['value'] = fineUninstallApkHistory - write_txt(get_home() + "/.config/uengine-runner/FindUninstallApkHistory.json", str(json.dumps(ListToDictionary(fineUninstallApkHistory)))) # 将历史记录的数组转换为字典并写入 + findApkHistory.append(ComboInstallPath.get()) + ComboInstallPath['value'] = findApkHistory + write_txt(get_home() + "/.config/uengine-runner/FindApkHistory.json", str(json.dumps(ListToDictionary(findApkHistory)))) # 将历史记录的数组转换为字典并写入 + messagebox.showinfo(message="操作执行完毕!", title="提示") + DisabledAndEnbled(False) return Return except: traceback.print_exc() messagebox.showerror(title="错误", message=traceback.format_exc()) + DisabledAndEnbled(False) # 卸载文本框的浏览按钮事件 -def BtnFindUninstallApkClk(): - path = filedialog.askopenfilename(title="选择 Apk", filetypes=[("APK 文件", "*.apk"), ("所有文件", "*.*")], initialdir=json.loads(readtxt(get_home() + "/.config/uengine-runner/FindUninstallApk.json"))["path"]) - if path != "" and path != "()": - try: - ComboUninstallPath.set(path) - write_txt(get_home() + "/.config/uengine-runner/FindUninstallApk.json", json.dumps({"path": os.path.dirname(path)})) # 写入配置文件 - except: - pass +#def BtnFindUninstallApkClk(): +# path = filedialog.askopenfilename(title="选择 Apk", filetypes=[("APK 文件", "*.apk"), ("所有文件", "*.*")], initialdir=json.loads(readtxt(get_home() + "/.config/uengine-runner/FindUninstallApk.json"))["path"]) +# if path != "" and path != "()": +# try: +# ComboUninstallPath.set(path) +# write_txt(get_home() + "/.config/uengine-runner/FindUninstallApk.json", json.dumps({"path": os.path.dirname(path)})) # 写入配置文件 +# except: +# pass # 卸载按钮事件 def ButtonClick8(): - if ComboUninstallPath.get() is "": + if ComboInstallPath.get() is "": messagebox.showerror(title="提示", message="信息没有填写完整,无法继续卸载 APK") return DisabledAndEnbled(True) - if os.path.exists(ComboUninstallPath.get()): - path = GetApkPackageName(ComboUninstallPath.get()) + if os.path.exists(ComboInstallPath.get()): + path = GetApkPackageName(ComboInstallPath.get()) else: - path = ComboUninstallPath.get() - UninstallProgram(path) - messagebox.showinfo(message="操作执行完毕!", title="提示") - DisabledAndEnbled(False) + path = ComboInstallPath.get() + threading.Thread(target=UninstallProgram, args=[path]).start() # 浏览窗口 # temp strs @@ -136,14 +139,16 @@ def DisabledAndEnbled(choose: "启动或者禁用")->"禁用或启动所有控 userChoose = {True: tk.DISABLED, False: tk.NORMAL} a = userChoose[choose] ComboInstallPath.configure(state=a) - ComboUninstallPath.configure(state=a) + #ComboUninstallPath.configure(state=a) BtnFindApk.configure(state=a) BtnInstall.configure(state=a) BtnShowUengineApp.configure(state=a) - BtnUninstallApkBrowser.configure(state=a) + #BtnUninstallApkBrowser.configure(state=a) BtnUninstall.configure(state=a) Btngeticon.configure(state=a) BtnSaveApk.configure(state=a) + BtnApkInformation.configure(state=a) + LabApkPath.configure(state=a) # 需引入 subprocess # 运行系统命令并获取返回值 @@ -157,27 +162,27 @@ def Button5Click(): # 打开“uengine 所有程序列表” def OpenUengineProgramList()->"打开“uengine 所有程序列表”": - os.system("/usr/bin/uengine-launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity") + os.system("uengine launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity") # 显示“关于这个程序”窗口 -def about_this_program()->"显示“关于这个程序”窗口": - global about - global title - global iconPath - mess = tk.Toplevel() - message = ttk.Frame(mess) - mess.resizable(0, 0) - mess.title("关于 {}".format(title)) - #mess.iconphoto(False, tk.PhotoImage(file=iconPath)) - img = ImageTk.PhotoImage(Image.open(iconPath)) - LabApkPath = ttk.Label(message, image=img) - label2 = ttk.Label(message, text=about) - button1 = ttk.Button(message, text="确定", command=mess.withdraw) - LabApkPath.pack() - label2.pack() - button1.pack(side="bottom") - message.pack() - mess.mainloop() +#def about_this_program()->"显示“关于这个程序”窗口": +# global about +# global title +# global iconPath +# mess = tk.Toplevel() +# message = ttk.Frame(mess) +# mess.resizable(0, 0) +# mess.title("关于 {}".format(title)) +# #mess.iconphoto(False, tk.PhotoImage(file=iconPath)) +# img = ImageTk.PhotoImage(Image.open(iconPath)) +# LabApkPath = ttk.Label(message, image=img) +# label2 = ttk.Label(message, text=about) +# button1 = ttk.Button(message, text="确定", command=mess.withdraw) +# LabApkPath.pack() +# label2.pack() +# button1.pack(side="bottom") +# message.pack() +# mess.mainloop() # 显示“提示”窗口 def helps()->"显示“提示”窗口": @@ -324,7 +329,7 @@ def BuildUengineDesktop(packageName: "软件包名", activityName: "activity", s things = '''[Desktop Entry] Categories=app; Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package={} --component={} +Exec=uengine launch --action=android.intent.action.MAIN --package={} --component={} GenericName={} Icon={} MimeType= @@ -545,7 +550,7 @@ def AdbCPUAndRAWShowInTer(): threading.Thread(target=os.system, args=["deepin-terminal -w ~ -e 'adb -s 192.168.250.2:5555 shell top'"]).start() def UengineSettingShow(): - threading.Thread(target=os.system, args=["/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package=com.android.settings --component=com.android.settings.Settings"]).start() + threading.Thread(target=os.system, args=["/usr/bin/uengine launch --action=android.intent.action.MAIN --package=com.android.settings --component=com.android.settings.Settings"]).start() # 杀死 adb 进程 def AdbKillAdbProgress(): @@ -594,6 +599,67 @@ def AdbAndroidInstallAppList(): subprocess.getoutput("adb -s 192.168.250.2:5555 shell pm list package -3"), subprocess.getoutput("adb -s 192.168.250.2:5555 shell pm list packages -f"))) +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 + +class ApkInformation(): + def ShowWindows(): + global fullInformation + global path + global tab1 + path = ComboInstallPath.get() + + message = tk.Toplevel() + + tab = ttk.Notebook(message) + + tab1 = ttk.Frame(message) + tab2 = ttk.Frame(message) + + fullInformation = tk.Text(tab2) + + tab.add(tab1, text="简化版") + tab.add(tab2, text="完整版") + + fullInformation.pack(expand="yes", fill="both") + + tab.pack(expand="yes", fill="both") + + threading.Thread(target=ApkInformation.GetInformation).start() + + message.mainloop() + + def GetInformation(): + # 获取详细信息 + fullInformation.configure(state=tk.NORMAL) + fullInformation.insert("1.0", GetApkInformation(path)) + fullInformation.configure(state=tk.DISABLED) + # 获取图标 + SaveApkIcon(path, "/tmp/uengine-runner-android-app-icon.png") + # 读取图标 + image = Image.open("/tmp/uengine-runner-android-app-icon.png") + if image.size[0] + image.size[1] <= 512: + ttk.Label(tab1, image=ImageTk.PhotoImage(image)).pack() + else: + ttk.Label(tab1, image=ImageTk.PhotoImage(image.resize((256, 256), Image.ANTIALIAS))).pack() + info = '''包名:{} +中文名:{} +Activity:{} +版本:{}'''.format(GetApkPackageName(path), GetApkChineseLabel(path), GetApkActivityName(path), GetApkVersion(path)) + ttk.Label(tab1, text=info).pack() + + class AdbChangeUengineDisplaySize(): def ShowWindows(): global displayX @@ -817,7 +883,7 @@ class AddNewUengineDesktopLink(): # 打开测试 def TestOpen(): - threading.Thread(target=os.system, args=["/usr/bin/uengine-launch.sh --package={} --component={}".format(packageName.get(), activityName.get())]).start() + threading.Thread(target=os.system, args=["/usr/bin/uengine launch --package={} --component={}".format(packageName.get(), activityName.get())]).start() AddNewUengineDesktopLink.SaveHistory() # 浏览文件 @@ -826,7 +892,7 @@ class AddNewUengineDesktopLink(): if path == "" or path == (): return packageName.set(GetApkPackageName(path)) - activityName.set(GetApkActivityName(path)) + activityName.set(str(GetApkActivityName(path))) write_txt(get_home() + "/.config/uengine-runner/FindApkName.json", json.dumps({"path": os.path.dirname(path)})) # 写入配置文件 def UseProgram(): @@ -1036,18 +1102,19 @@ win.geometry(""+"+{:.0f}+{:.0f}".format(x, y)) # 创建控件 FrmInstall = ttk.Frame(window) -FrmUninstall = ttk.Frame(window) +#FrmUninstall = ttk.Frame(window) LabApkPath = ttk.Label(window, text=langFile[lang]["Main"]["MainWindow"]["LabApkPath"]) -LabUninstallPath = ttk.Label(window, text=langFile[lang]["Main"]["MainWindow"]["LabUninstallPath"]) +#LabUninstallPath = ttk.Label(window, text=langFile[lang]["Main"]["MainWindow"]["LabUninstallPath"]) ComboInstallPath = ttk.Combobox(window, width=50) -ComboUninstallPath = ttk.Combobox(window, width=50) +#ComboUninstallPath = ttk.Combobox(window, width=50) BtnFindApk = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnFindApk"], command=FindApk) BtnInstall = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnInstall"], command=Button3Install) BtnShowUengineApp = ttk.Button(window, text=langFile[lang]["Main"]["MainWindow"]["BtnShowUengineApp"], command=Button5Click) -BtnUninstallApkBrowser = ttk.Button(FrmUninstall, text=langFile[lang]["Main"]["MainWindow"]["BtnUninstallApkBrowser"], command=BtnFindUninstallApkClk) -BtnUninstall = ttk.Button(FrmUninstall, text=langFile[lang]["Main"]["MainWindow"]["BtnUninstall"], command=ButtonClick8) +#BtnUninstallApkBrowser = ttk.Button(FrmUninstall, text=langFile[lang]["Main"]["MainWindow"]["BtnUninstallApkBrowser"], command=BtnFindUninstallApkClk) +BtnUninstall = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnUninstall"], command=ButtonClick8) Btngeticon = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["Btngeticon"], command=SaveIconToOtherPath) BtnSaveApk = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnSaveApk"], command=SaveInstallUengineApp) +BtnApkInformation = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnApkInformation"], command=ApkInformation.ShowWindows) # 设置菜单栏 menu = tk.Menu(window, background="white") @@ -1103,8 +1170,8 @@ help.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][0 help.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][1], command=showhelp) # 设置“关于这个程序”项 uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0], command=StartUengine) -uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0], command=StopUengine) -uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0], command=UengineRestart) +uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][1], command=StopUengine) +uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][2], command=UengineRestart) uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][0], command=UengineBridgeStart) uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][1], command=UengineBridgeStop) @@ -1141,14 +1208,15 @@ uengineUseAdb.configure(activebackground="dodgerblue") uengineData.configure(activebackground="dodgerblue") # 设置控件 -ComboUninstallPath['value'] = fineUninstallApkHistory +#ComboUninstallPath['value'] = fineUninstallApkHistory ComboInstallPath['value'] = findApkHistory try: if sys.argv[1] == "-i": ComboInstallPath.set(sys.argv[2]) print("Install Path: " + sys.argv[2]) elif sys.argv[1] == "-u": - ComboUninstallPath.set(sys.argv[2]) + #ComboUninstallPath.set(sys.argv[2]) + ComboInstallPath.set(sys.argv[2]) print("Unstall Path: " + sys.argv[2]) else: print("Command Format Error") @@ -1159,25 +1227,26 @@ win.config(menu=menu) # 显示菜单栏 -LabApkPath.grid(row=1, column=0,sticky= tk.W,padx=3) -ComboInstallPath.grid(row=2, column=0,padx=3) +LabApkPath.grid(row=0, column=0,sticky= tk.W,padx=3) +ComboInstallPath.grid(row=1, column=0,padx=3) -FrmInstall.grid(row=2, column=1,padx=3, rowspan=2) +FrmInstall.grid(row=0, column=1,padx=3, rowspan=3) BtnFindApk.grid(row=0, column=0) BtnInstall.grid(row=0, column=1) -LabUninstallPath.grid(row=4, column=0,sticky= tk.W,padx=3) -ComboUninstallPath.grid(row=5, column=0,padx=3) +#LabUninstallPath.grid(row=4, column=0,sticky= tk.W,padx=3) +#ComboUninstallPath.grid(row=5, column=0,padx=3) -FrmUninstall.grid(row=5, column=1,padx=3) -BtnUninstallApkBrowser.grid(row=0, column=0) -BtnUninstall.grid(row=0, column=1) +#FrmUninstall.grid(row=5, column=1,padx=3) +#BtnUninstallApkBrowser.grid(row=0, column=0) +BtnUninstall.grid(row=1, column=0) -BtnShowUengineApp.grid(row=6, column=0,sticky= tk.W,padx=3,pady=2) +BtnShowUengineApp.grid(row=2, column=0,sticky= tk.W,padx=3,pady=2) -Btngeticon.grid(row=1, column=0,sticky= tk.W,padx=3,pady=2) -BtnSaveApk.grid(row=1, column=1,sticky= tk.W,padx=3,pady=2) +BtnApkInformation.grid(row=2, column=1,sticky= tk.W,padx=3,pady=2) +Btngeticon.grid(row=1, column=1,sticky= tk.W,padx=3,pady=2) +BtnSaveApk.grid(row=2, column=0,sticky= tk.W,padx=3,pady=2) window.pack() diff --git a/build/opt/apps/uengine-runner/uengine-runner-launch.sh b/build/opt/apps/uengine-runner/uengine-runner-launch.sh new file mode 100755 index 0000000..3e09ebd --- /dev/null +++ b/build/opt/apps/uengine-runner/uengine-runner-launch.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# 忽略社区版检测 + +pkgRunCnt=`ps -ef |grep "uengine launch" |grep -v grep |grep "$pkg" |wc -l` +if [ $pkgRunCnt -ge 1 ]; then + #防止短时间内多次打开同一应用,如果应用正在启动中,此次忽略 + exit 0 +fi + +#等Session服务启动完全 +wscont=0 +isReady=`busctl --user get-property org.anbox /org/anbox org.anbox.ApplicationManager Ready` +if [ "$isReady" != "b true" ] ;then + sleep 2 +fi +while [ "$isReady" = "b false" -a $wscont -lt 10 ] +do + sleep 1 + isReady=`busctl --user get-property org.anbox /org/anbox org.anbox.ApplicationManager Ready` + let wscont++ +done + +uengine launch $* diff --git a/build/opt/apps/uengine-runner/uengine_logo.svg b/build/opt/apps/uengine-runner/uengine_logo.svg new file mode 100644 index 0000000..c77d1fe --- /dev/null +++ b/build/opt/apps/uengine-runner/uengine_logo.svg @@ -0,0 +1,153 @@ + + + APPS_安卓容器_bonund256pt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build/usr/bin/uengine-runner-launch.sh b/build/usr/bin/uengine-runner-launch.sh new file mode 120000 index 0000000..4439cb3 --- /dev/null +++ b/build/usr/bin/uengine-runner-launch.sh @@ -0,0 +1 @@ +/opt/apps/uengine-runner/uengine-runner-launch.sh \ No newline at end of file diff --git a/build/usr/share/applications/UengineAndroidProgramList.desktop b/build/usr/share/applications/UengineAndroidProgramList.desktop index 8ff03ad..79d71dc 100644 --- a/build/usr/share/applications/UengineAndroidProgramList.desktop +++ b/build/usr/share/applications/UengineAndroidProgramList.desktop @@ -3,7 +3,7 @@ Categories=System; Comment=UEngine App List Comment[zh]=UEngine 程序菜单 Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity +Exec=/usr/bin/uengine launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Icon=/opt/apps/uengine-runner/icon.png MimeType= Name=UEngine App List diff --git a/build/usr/share/applications/UengineAndroidSetting.desktop b/build/usr/share/applications/UengineAndroidSetting.desktop index 1ffa7b9..3d9253c 100644 --- a/build/usr/share/applications/UengineAndroidSetting.desktop +++ b/build/usr/share/applications/UengineAndroidSetting.desktop @@ -2,7 +2,7 @@ Categories=System; Comment=UEngine 系统设置 Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package=com.android.settings --component=com.android.settings.Settings +Exec=/usr/bin/uengine launch --action=android.intent.action.MAIN --package=com.android.settings --component=com.android.settings.Settings Icon=/opt/apps/uengine-runner/icon.png MimeType= Name=UEngine System Control Panel diff --git a/build/usr/share/applications/spark-uengine-install.desktop b/build/usr/share/applications/spark-uengine-install.desktop index 6107ff1..a854ea8 100644 --- a/build/usr/share/applications/spark-uengine-install.desktop +++ b/build/usr/share/applications/spark-uengine-install.desktop @@ -5,10 +5,10 @@ Categories=System; Terminal=false Exec=/usr/bin/uengine-runner -i %F Icon=/opt/apps/uengine-runner/icon.png -Name=Install APK(UEngine runner) -Comment=Install APK(UEngine runner) -Comment[zh]=安装 APK(UEngine 运行器) -Name[zh]=安装 APK(UEngine 运行器) +Name=Install Or Uninstall APK(UEngine runner) +Comment=Install Or Uninstall APK(UEngine runner) +Comment[zh]=安装/卸载 APK(UEngine 运行器) +Name[zh]=安装/卸载 APK(UEngine 运行器) StartupNotify=true Hidden=false NoDisplay=true diff --git a/build/usr/share/applications/spark-uengine-uninstall.desktop b/build/usr/share/applications/spark-uengine-uninstall.desktop deleted file mode 100644 index c5e1c4c..0000000 --- a/build/usr/share/applications/spark-uengine-uninstall.desktop +++ /dev/null @@ -1,15 +0,0 @@ -[Desktop Entry] -Type=Application -Encoding=UTF-8 -Categories=System; -Terminal=false -Exec=/usr/bin/uengine-runner -u %F -Icon=/opt/apps/uengine-runner/icon.png -Name=Uninstall APK(UEngine runner) -Comment=Uninstall APK(UEngine runner) -Comment[zh]=卸载 APK(UEngine 运行器) -Name[zh]=卸载 APK(UEngine 运行器) -StartupNotify=true -Hidden=false -NoDisplay=true -MimeType=application/vnd.android.package-archive \ No newline at end of file diff --git a/build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-bridge.policy b/build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-bridge.policy index 7c0ca86..2a140e4 100644 --- a/build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-bridge.policy +++ b/build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-bridge.policy @@ -8,7 +8,7 @@ Authentication is required to Setting UEngine Internet Bridge 设置 UEngine 桥接需要输入密码 - kbox + /usr/share/uengine/ui/uengine_logo.svg no no diff --git a/build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-session-launch-helper.policy b/build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-session-launch-helper.policy index 70d8f15..2b57ffe 100644 --- a/build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-session-launch-helper.policy +++ b/build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-session-launch-helper.policy @@ -8,7 +8,7 @@ Authentication is required to Change UEngine 设置 UEngine 需要输入密码 - kbox + /usr/share/uengine/ui/uengine_logo.svg no no diff --git a/com.gitee.uengine.runner.spark.deb b/com.gitee.uengine.runner.spark.deb index 72e4ee2..c031819 100755 Binary files a/com.gitee.uengine.runner.spark.deb and b/com.gitee.uengine.runner.spark.deb differ diff --git a/information.json b/information.json index 9bbd05c..e9a5b16 100755 --- a/information.json +++ b/information.json @@ -3,7 +3,7 @@ "https://gitee.com/gfdgd-xi/uengine-runner", "https://github.com/gfdgd-xi/uengine-runner" ], - "Version": "1.5.0", + "Version": "1.5.1", "System": "Linux(deepin/UOS)", "Tips": [ "更多可见:https://gitee.com/gfdgd-xi/uengine-runner/wikis", diff --git a/main.py b/main.py index eba3de2..221cf8d 100755 --- a/main.py +++ b/main.py @@ -3,7 +3,7 @@ ########################################################################################### # 作者:gfdgd xi<3025613752@qq.com> # 版本:1.4.3 -# 更新时间:2021年9月20日(中秋了) +# 更新时间:2021年10月03日(国庆了) # 感谢:anbox、deepin 和 UOS # 基于 Python3 的 tkinter 构建 # 更新:gfdgd xi<3025613752@qq.com>、actionchen<917981399@qq.com> @@ -156,13 +156,19 @@ def GetCommandReturn(cmd: "命令")->"运行系统命令并获取返回值": # cmd 是要获取输出的命令 return subprocess.getoutput(cmd) +def GetSystemVersion(): + systemInformation = readtxt("/etc/os-release") + for systemInformation in systemInformation.split('\n'): + if "PRETTY_NAME=" in systemInformation: + return systemInformation.replace("PRETTY_NAME=", "").replace('"', '') + # 打开所有窗口事件 def Button5Click(): threading.Thread(target=OpenUengineProgramList).start() # 打开“uengine 所有程序列表” def OpenUengineProgramList()->"打开“uengine 所有程序列表”": - os.system("/usr/bin/uengine-launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity") + os.system("uengine launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity") # 显示“关于这个程序”窗口 #def about_this_program()->"显示“关于这个程序”窗口": @@ -329,7 +335,7 @@ def BuildUengineDesktop(packageName: "软件包名", activityName: "activity", s things = '''[Desktop Entry] Categories=app; Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package={} --component={} +Exec=uengine launch --action=android.intent.action.MAIN --package={} --component={} GenericName={} Icon={} MimeType= @@ -550,7 +556,7 @@ def AdbCPUAndRAWShowInTer(): threading.Thread(target=os.system, args=["deepin-terminal -w ~ -e 'adb -s 192.168.250.2:5555 shell top'"]).start() def UengineSettingShow(): - threading.Thread(target=os.system, args=["/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package=com.android.settings --component=com.android.settings.Settings"]).start() + threading.Thread(target=os.system, args=["/usr/bin/uengine launch --action=android.intent.action.MAIN --package=com.android.settings --component=com.android.settings.Settings"]).start() # 杀死 adb 进程 def AdbKillAdbProgress(): @@ -648,7 +654,11 @@ class ApkInformation(): # 获取图标 SaveApkIcon(path, "/tmp/uengine-runner-android-app-icon.png") # 读取图标 - ttk.Label(tab1, image=ImageTk.PhotoImage(Image.open("/tmp/uengine-runner-android-app-icon.png").resize((256, 256), Image.ANTIALIAS))).pack() + image = Image.open("/tmp/uengine-runner-android-app-icon.png") + if image.size[0] + image.size[1] <= 512: + ttk.Label(tab1, image=ImageTk.PhotoImage(image)).pack() + else: + ttk.Label(tab1, image=ImageTk.PhotoImage(image.resize((256, 256), Image.ANTIALIAS))).pack() info = '''包名:{} 中文名:{} Activity:{} @@ -879,7 +889,7 @@ class AddNewUengineDesktopLink(): # 打开测试 def TestOpen(): - threading.Thread(target=os.system, args=["/usr/bin/uengine-launch.sh --package={} --component={}".format(packageName.get(), activityName.get())]).start() + threading.Thread(target=os.system, args=["/usr/bin/uengine launch --package={} --component={}".format(packageName.get(), activityName.get())]).start() AddNewUengineDesktopLink.SaveHistory() # 浏览文件 @@ -888,7 +898,7 @@ class AddNewUengineDesktopLink(): if path == "" or path == (): return packageName.set(GetApkPackageName(path)) - activityName.set(GetApkActivityName(path)) + activityName.set(str(GetApkActivityName(path))) write_txt(get_home() + "/.config/uengine-runner/FindApkName.json", json.dumps({"path": os.path.dirname(path)})) # 写入配置文件 def UseProgram(): @@ -925,15 +935,20 @@ programUrl = information["Url"][0] version = information["Version"] goodRunSystem = information["System"] aaptVersion = GetCommandReturn("aapt version") +SystemVersion = GetSystemVersion() about = '''介绍 :一个基于 Python3 的 tkinter 制作的 UEngine 运行器,在新版本Deepin/UOS发布后,可以在应用商店安装部分官方已适配的安卓应用,对爱好者来说,不能自己安装APK软件包始终差点意思,本程序可以为Deepin/UOS上的UEngine安卓运行环境安装自定义APK软件包,并能发送安装的APK包启动菜单到桌面或系统菜单。 版本 :{} 适用平台 :{} +Tk 版本 :{} + 程序官网 :{} -©2021-{}'''.format(version, goodRunSystem, tk.TkVersion, programUrl, time.strftime("%Y")) +系统版本 :{} + +©2021-{}'''.format(version, goodRunSystem, tk.TkVersion, programUrl, SystemVersion, time.strftime("%Y")) tips = "\n".join(information["Tips"]) updateThingsString = "\n".join(information["Update"]) title = "{} {}".format(langFile[lang]["Main"]["MainWindow"]["Title"], version) diff --git a/new-deb-build/DEBIAN/control b/new-deb-build/DEBIAN/control index 9820607..903680b 100644 --- a/new-deb-build/DEBIAN/control +++ b/new-deb-build/DEBIAN/control @@ -1,6 +1,6 @@ Package: com.gitee.uengine.runner.spark Source: com.gitee.uengine.runner.spark -Version: 1.5.0 +Version: 1.5.1 Architecture: all Maintainer: gfdgd xi <3025613752@qq.com>, actionchen<917981399@qq.com> Depends: deepin-elf-verify (>= 0.0.16.7-1), python3, python3-tk, python3-pip, aapt, adb, python3-pil, python3-setuptools, uengine, deepin-terminal, curl diff --git a/new-deb-build/DEBIAN/postinst b/new-deb-build/DEBIAN/postinst index 5fe504e..c14b9ee 100755 --- a/new-deb-build/DEBIAN/postinst +++ b/new-deb-build/DEBIAN/postinst @@ -5,13 +5,14 @@ python3 -m pip install --upgrade requests python3 -m pip install --upgrade pyautogui python3 -m pip install --upgrade keyboard # 建立软链接 -ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner /usr/bin/uengine-runner -ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder /usr/bin/uengine-apk-builder -ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-app-uninstall /usr/bin/uengine-app-uninstall -ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-app-install /usr/bin/uengine-app-install -ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-clean /usr/bin/uengine-clean -ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-about /usr/bin/uengine-runner-about -ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-keyboard /usr/bin/uengine-keyboard -ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-useadb /usr/bin/uengine-useadb +ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner /usr/bin/uengine-runner +ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-apk-builder /usr/bin/uengine-apk-builder +ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-app-uninstall /usr/bin/uengine-app-uninstall +ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-app-install /usr/bin/uengine-app-install +ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-clean /usr/bin/uengine-clean +ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-about /usr/bin/uengine-runner-about +ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-keyboard /usr/bin/uengine-keyboard +ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-useadb /usr/bin/uengine-useadb +ln -s /opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-launch.sh /usr/bin/uengine-runner-launch.sh # 向服务器返回安装数加1(不显示内容且忽略错误) curl http://gfdgdxi.qicp.vip/uengine/Install.php -s > /dev/null | true \ No newline at end of file diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidProgramList.desktop b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidProgramList.desktop index 7d2fc05..a19b595 100644 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidProgramList.desktop +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidProgramList.desktop @@ -2,7 +2,7 @@ Categories=System; Comment=UEngine 程序菜单 Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity +Exec=/usr/bin/uengine launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity Icon=/opt/apps/com.gitee.uengine.runner.spark/files/icon.png MimeType= Name=UEngine App List diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidSetting.desktop b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidSetting.desktop index 17c8c12..956e612 100644 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidSetting.desktop +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/UengineAndroidSetting.desktop @@ -3,7 +3,7 @@ Categories=System; Comment=UEngine System Control Panel Comment[zh]=UEngine 系统设置 Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package=com.android.settings --component=com.android.settings.Settings +Exec=/usr/bin/uengine launch --action=android.intent.action.MAIN --package=com.android.settings --component=com.android.settings.Settings Icon=/opt/apps/com.gitee.uengine.runner.spark/files/icon.png MimeType= Name=UEngine System Control Panel diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/spark-uengine-install.desktop b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/spark-uengine-install.desktop index 69a0c51..90f8f1f 100644 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/spark-uengine-install.desktop +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/spark-uengine-install.desktop @@ -5,10 +5,10 @@ Categories=System; Terminal=false Exec=/usr/bin/uengine-runner -i %F Icon=/opt/apps/com.gitee.uengine.runner.spark/files/icon.png -Name=Install APK(uengine runner) -Comment=Install APK(UEngine runner) -Comment[zh]=安装 APK(UEngine 运行器) -Name[zh]=安装 APK(UEngine 运行器) +Name=Install Or Uninstall APK(uengine runner) +Comment=Install Or Uninstall APK(UEngine runner) +Comment[zh]=安装/卸载 APK(UEngine 运行器) +Name[zh]=安装/卸载 APK(UEngine 运行器) StartupNotify=true Hidden=false NoDisplay=true diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/spark-uengine-uninstall.desktop b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/spark-uengine-uninstall.desktop deleted file mode 100644 index 258c81e..0000000 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/entries/applications/spark-uengine-uninstall.desktop +++ /dev/null @@ -1,15 +0,0 @@ -[Desktop Entry] -Type=Application -Encoding=UTF-8 -Categories=System; -Terminal=false -Exec=/usr/bin/uengine-runner -u %F -Icon=/opt/apps/com.gitee.uengine.runner.spark/files/icon.png -Name=Uninstall APK(UEngine runner) -Comment=Uninstall APK(UEngine runner) -Comment[zh]=卸载 APK(UEngine 运行器) -Name[zh]=卸载 APK(UEngine 运行器) -StartupNotify=true -Hidden=false -NoDisplay=true -MimeType=application/vnd.android.package-archive \ No newline at end of file diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/Language.json b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/Language.json index 8fa00f2..5e4a2e7 100644 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/Language.json +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/Language.json @@ -3,7 +3,7 @@ "Main": { "MainWindow": { "Title": "UEngine 运行器", - "LabApkPath": "安装 APK:", + "LabApkPath": "安装/卸载 APK:", "LabUninstallPath": "卸载 Apk:", "BtnFindApk": "浏览", "BtnInstall": "安装", @@ -12,6 +12,7 @@ "BtnUninstall": "卸载", "Btngeticon": "保存图标", "BtnSaveApk": "保存Apk", + "BtnApkInformation": "Apk 信息", "Menu": [ { "Name": "程序", @@ -125,8 +126,7 @@ "Main": { "MainWindow": { "Title": "UEngine Runner", - "LabApkPath": "Install Apk:", - "LabUninstallPath": "Uninstall Apk", + "LabApkPath": "Install Or Uninstall Apk:", "BtnFindApk": "Find", "BtnInstall": "Install", "BtnShowUengineApp": "Open UEngine App List", @@ -134,6 +134,7 @@ "BtnUninstall": "Uninstall", "Btngeticon": "Save Apk Icon", "BtnSaveApk": "Saving Installed App Apk", + "BtnApkInformation": "Apk Information", "Menu": [ { "Name": "Program", diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/UengineAndroidProgramList.desktop b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/UengineAndroidProgramList.desktop index c130e1d..110309e 100755 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/UengineAndroidProgramList.desktop +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/UengineAndroidProgramList.desktop @@ -2,8 +2,8 @@ Categories=System; Comment=UEngine 程序菜单 Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity -Icon=/opt/apps/com.gitee.uengine.runner.spark/files/icon.png +Exec=/usr/bin/uengine launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity +Icon=/opt/apps/uengine-runner/icon.png MimeType= Name=UEngine 程序菜单 StartupWMClass=UEngine 程序菜单 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 9bbd05c..e9a5b16 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 @@ -3,7 +3,7 @@ "https://gitee.com/gfdgd-xi/uengine-runner", "https://github.com/gfdgd-xi/uengine-runner" ], - "Version": "1.5.0", + "Version": "1.5.1", "System": "Linux(deepin/UOS)", "Tips": [ "更多可见:https://gitee.com/gfdgd-xi/uengine-runner/wikis", diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/setting.json b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/setting.json index cc22f18..5edfd97 100755 --- a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/setting.json +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/setting.json @@ -1,6 +1,6 @@ { "Package": "com.gitee.uengine.runner.spark", "Update": true, - "Version": "1.5.0", + "Version": "1.5.1", "Url": "https://gfdgd-xi.github.io/update-program/data/UpdateInformation.json" } \ No newline at end of file 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 d78a287..fbbf991 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 @@ -148,7 +148,7 @@ done exit 0'''.format(apkPackageName) desktopFile = '''[Desktop Entry] Categories=Other; -Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package={} --component={} +Exec=uengine launch --action=android.intent.action.MAIN --package={} --component={} Icon=/usr/share/uengine/icons/{}.png Terminal=false Type=Application @@ -294,7 +294,7 @@ def BuildUengineDesktop(packageName, activityName, showName, iconPath, savePath) [Desktop Entry] Categories=app; Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package={} --component={} +Exec=/usr/bin/uengine launch.sh --action=android.intent.action.MAIN --package={} --component={} GenericName={} Icon={} MimeType= @@ -313,16 +313,16 @@ def GetApkChineseLabel(apkFilePath): line = line.replace("'", "") return line -def GetApkIconInApk(apkFilePath): - info = GetApkInformation(apkFilePath) - for line in info.split('\n'): - if "application:" in line: - line = line[line.index("icon='"): -1] - line = line.replace("icon='", "") - if "'" in line: - line = line[0: line.index("'")] - return line - return line +#def GetApkIconInApk(apkFilePath): +# info = GetApkInformation(apkFilePath) +# for line in info.split('\n'): +# if "application:" in line: +# line = line[line.index("icon='"): -1] +# line = line.replace("icon='", "") +# if "'" in line: +# line = line[0: line.index("'")] +# return line +# return line #合并两个函数到一起 def SaveApkIcon(apkFilePath, iconSavePath)->"获取 apk 文件的图标": diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-install (1).desktop b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-install (1).desktop new file mode 100755 index 0000000..e386dfa --- /dev/null +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-install (1).desktop @@ -0,0 +1,16 @@ +[Desktop Entry] +Categories=system;Utility; +Encoding=UTF-8 +Exec=uengine-runner -ci %F +GenericName=APK Install(UEngine) +GenericName[zh_CN]=APK 安装(UEngine) +Icon=/opt/apps/uengine-runner/icon.png +MimeType=application/apk; +Name=APK Install(UEngine) +Name[zh_CN]=APK 安装(UEngine) +NoDisplay=true +OnlyShowIn=Unity; +StartupNotify=false +StartupWMClass=APK 安装(UEngine) +Terminal=false +Type=Application 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 5a05069..50ff1c7 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 @@ -22,6 +22,8 @@ import threading import ttkthemes import webbrowser import subprocess +import PIL.Image as Image +import PIL.ImageTk as ImageTk import tkinter as tk import tkinter.ttk as ttk import tkinter.messagebox as messagebox @@ -39,37 +41,38 @@ def UninstallProgram(package: "apk 包名")->"卸载程序": os.remove("{}/.local/share/applications/{}.desktop".format(get_home(), package)) if os.path.exists("{}/{}.desktop".format(get_desktop_path(), package)): os.remove("{}/{}.desktop".format(get_desktop_path(), package)) - fineUninstallApkHistory.append(ComboUninstallPath.get()) - ComboUninstallPath['value'] = fineUninstallApkHistory - write_txt(get_home() + "/.config/uengine-runner/FindUninstallApkHistory.json", str(json.dumps(ListToDictionary(fineUninstallApkHistory)))) # 将历史记录的数组转换为字典并写入 + findApkHistory.append(ComboInstallPath.get()) + ComboInstallPath['value'] = findApkHistory + write_txt(get_home() + "/.config/uengine-runner/FindApkHistory.json", str(json.dumps(ListToDictionary(findApkHistory)))) # 将历史记录的数组转换为字典并写入 + messagebox.showinfo(message="操作执行完毕!", title="提示") + DisabledAndEnbled(False) return Return except: traceback.print_exc() messagebox.showerror(title="错误", message=traceback.format_exc()) + DisabledAndEnbled(False) # 卸载文本框的浏览按钮事件 -def BtnFindUninstallApkClk(): - path = filedialog.askopenfilename(title="选择 Apk", filetypes=[("APK 文件", "*.apk"), ("所有文件", "*.*")], initialdir=json.loads(readtxt(get_home() + "/.config/uengine-runner/FindUninstallApk.json"))["path"]) - if path != "" and path != "()": - try: - ComboUninstallPath.set(path) - write_txt(get_home() + "/.config/uengine-runner/FindUninstallApk.json", json.dumps({"path": os.path.dirname(path)})) # 写入配置文件 - except: - pass +#def BtnFindUninstallApkClk(): +# path = filedialog.askopenfilename(title="选择 Apk", filetypes=[("APK 文件", "*.apk"), ("所有文件", "*.*")], initialdir=json.loads(readtxt(get_home() + "/.config/uengine-runner/FindUninstallApk.json"))["path"]) +# if path != "" and path != "()": +# try: +# ComboUninstallPath.set(path) +# write_txt(get_home() + "/.config/uengine-runner/FindUninstallApk.json", json.dumps({"path": os.path.dirname(path)})) # 写入配置文件 +# except: +# pass # 卸载按钮事件 def ButtonClick8(): - if ComboUninstallPath.get() is "": + if ComboInstallPath.get() is "": messagebox.showerror(title="提示", message="信息没有填写完整,无法继续卸载 APK") return DisabledAndEnbled(True) - if os.path.exists(ComboUninstallPath.get()): - path = GetApkPackageName(ComboUninstallPath.get()) + if os.path.exists(ComboInstallPath.get()): + path = GetApkPackageName(ComboInstallPath.get()) else: - path = ComboUninstallPath.get() - UninstallProgram(path) - messagebox.showinfo(message="操作执行完毕!", title="提示") - DisabledAndEnbled(False) + path = ComboInstallPath.get() + threading.Thread(target=UninstallProgram, args=[path]).start() # 浏览窗口 # temp strs @@ -136,14 +139,16 @@ def DisabledAndEnbled(choose: "启动或者禁用")->"禁用或启动所有控 userChoose = {True: tk.DISABLED, False: tk.NORMAL} a = userChoose[choose] ComboInstallPath.configure(state=a) - ComboUninstallPath.configure(state=a) + #ComboUninstallPath.configure(state=a) BtnFindApk.configure(state=a) BtnInstall.configure(state=a) BtnShowUengineApp.configure(state=a) - BtnUninstallApkBrowser.configure(state=a) + #BtnUninstallApkBrowser.configure(state=a) BtnUninstall.configure(state=a) Btngeticon.configure(state=a) BtnSaveApk.configure(state=a) + BtnApkInformation.configure(state=a) + LabApkPath.configure(state=a) # 需引入 subprocess # 运行系统命令并获取返回值 @@ -157,27 +162,27 @@ def Button5Click(): # 打开“uengine 所有程序列表” def OpenUengineProgramList()->"打开“uengine 所有程序列表”": - os.system("/usr/bin/uengine-launch.sh --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity") + os.system("uengine launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity") # 显示“关于这个程序”窗口 -def about_this_program()->"显示“关于这个程序”窗口": - global about - global title - global iconPath - mess = tk.Toplevel() - message = ttk.Frame(mess) - mess.resizable(0, 0) - mess.title("关于 {}".format(title)) - #mess.iconphoto(False, tk.PhotoImage(file=iconPath)) - img = ImageTk.PhotoImage(Image.open(iconPath)) - LabApkPath = ttk.Label(message, image=img) - label2 = ttk.Label(message, text=about) - button1 = ttk.Button(message, text="确定", command=mess.withdraw) - LabApkPath.pack() - label2.pack() - button1.pack(side="bottom") - message.pack() - mess.mainloop() +#def about_this_program()->"显示“关于这个程序”窗口": +# global about +# global title +# global iconPath +# mess = tk.Toplevel() +# message = ttk.Frame(mess) +# mess.resizable(0, 0) +# mess.title("关于 {}".format(title)) +# #mess.iconphoto(False, tk.PhotoImage(file=iconPath)) +# img = ImageTk.PhotoImage(Image.open(iconPath)) +# LabApkPath = ttk.Label(message, image=img) +# label2 = ttk.Label(message, text=about) +# button1 = ttk.Button(message, text="确定", command=mess.withdraw) +# LabApkPath.pack() +# label2.pack() +# button1.pack(side="bottom") +# message.pack() +# mess.mainloop() # 显示“提示”窗口 def helps()->"显示“提示”窗口": @@ -324,7 +329,7 @@ def BuildUengineDesktop(packageName: "软件包名", activityName: "activity", s things = '''[Desktop Entry] Categories=app; Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package={} --component={} +Exec=uengine launch --action=android.intent.action.MAIN --package={} --component={} GenericName={} Icon={} MimeType= @@ -545,7 +550,7 @@ def AdbCPUAndRAWShowInTer(): threading.Thread(target=os.system, args=["deepin-terminal -w ~ -e 'adb -s 192.168.250.2:5555 shell top'"]).start() def UengineSettingShow(): - threading.Thread(target=os.system, args=["/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package=com.android.settings --component=com.android.settings.Settings"]).start() + threading.Thread(target=os.system, args=["/usr/bin/uengine launch --action=android.intent.action.MAIN --package=com.android.settings --component=com.android.settings.Settings"]).start() # 杀死 adb 进程 def AdbKillAdbProgress(): @@ -594,6 +599,67 @@ def AdbAndroidInstallAppList(): subprocess.getoutput("adb -s 192.168.250.2:5555 shell pm list package -3"), subprocess.getoutput("adb -s 192.168.250.2:5555 shell pm list packages -f"))) +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 + +class ApkInformation(): + def ShowWindows(): + global fullInformation + global path + global tab1 + path = ComboInstallPath.get() + + message = tk.Toplevel() + + tab = ttk.Notebook(message) + + tab1 = ttk.Frame(message) + tab2 = ttk.Frame(message) + + fullInformation = tk.Text(tab2) + + tab.add(tab1, text="简化版") + tab.add(tab2, text="完整版") + + fullInformation.pack(expand="yes", fill="both") + + tab.pack(expand="yes", fill="both") + + threading.Thread(target=ApkInformation.GetInformation).start() + + message.mainloop() + + def GetInformation(): + # 获取详细信息 + fullInformation.configure(state=tk.NORMAL) + fullInformation.insert("1.0", GetApkInformation(path)) + fullInformation.configure(state=tk.DISABLED) + # 获取图标 + SaveApkIcon(path, "/tmp/uengine-runner-android-app-icon.png") + # 读取图标 + image = Image.open("/tmp/uengine-runner-android-app-icon.png") + if image.size[0] + image.size[1] <= 512: + ttk.Label(tab1, image=ImageTk.PhotoImage(image)).pack() + else: + ttk.Label(tab1, image=ImageTk.PhotoImage(image.resize((256, 256), Image.ANTIALIAS))).pack() + info = '''包名:{} +中文名:{} +Activity:{} +版本:{}'''.format(GetApkPackageName(path), GetApkChineseLabel(path), GetApkActivityName(path), GetApkVersion(path)) + ttk.Label(tab1, text=info).pack() + + class AdbChangeUengineDisplaySize(): def ShowWindows(): global displayX @@ -817,7 +883,7 @@ class AddNewUengineDesktopLink(): # 打开测试 def TestOpen(): - threading.Thread(target=os.system, args=["/usr/bin/uengine-launch.sh --package={} --component={}".format(packageName.get(), activityName.get())]).start() + threading.Thread(target=os.system, args=["/usr/bin/uengine launch --package={} --component={}".format(packageName.get(), activityName.get())]).start() AddNewUengineDesktopLink.SaveHistory() # 浏览文件 @@ -826,7 +892,7 @@ class AddNewUengineDesktopLink(): if path == "" or path == (): return packageName.set(GetApkPackageName(path)) - activityName.set(GetApkActivityName(path)) + activityName.set(str(GetApkActivityName(path))) write_txt(get_home() + "/.config/uengine-runner/FindApkName.json", json.dumps({"path": os.path.dirname(path)})) # 写入配置文件 def UseProgram(): @@ -1036,18 +1102,19 @@ win.geometry(""+"+{:.0f}+{:.0f}".format(x, y)) # 创建控件 FrmInstall = ttk.Frame(window) -FrmUninstall = ttk.Frame(window) +#FrmUninstall = ttk.Frame(window) LabApkPath = ttk.Label(window, text=langFile[lang]["Main"]["MainWindow"]["LabApkPath"]) -LabUninstallPath = ttk.Label(window, text=langFile[lang]["Main"]["MainWindow"]["LabUninstallPath"]) +#LabUninstallPath = ttk.Label(window, text=langFile[lang]["Main"]["MainWindow"]["LabUninstallPath"]) ComboInstallPath = ttk.Combobox(window, width=50) -ComboUninstallPath = ttk.Combobox(window, width=50) +#ComboUninstallPath = ttk.Combobox(window, width=50) BtnFindApk = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnFindApk"], command=FindApk) BtnInstall = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnInstall"], command=Button3Install) BtnShowUengineApp = ttk.Button(window, text=langFile[lang]["Main"]["MainWindow"]["BtnShowUengineApp"], command=Button5Click) -BtnUninstallApkBrowser = ttk.Button(FrmUninstall, text=langFile[lang]["Main"]["MainWindow"]["BtnUninstallApkBrowser"], command=BtnFindUninstallApkClk) -BtnUninstall = ttk.Button(FrmUninstall, text=langFile[lang]["Main"]["MainWindow"]["BtnUninstall"], command=ButtonClick8) +#BtnUninstallApkBrowser = ttk.Button(FrmUninstall, text=langFile[lang]["Main"]["MainWindow"]["BtnUninstallApkBrowser"], command=BtnFindUninstallApkClk) +BtnUninstall = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnUninstall"], command=ButtonClick8) Btngeticon = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["Btngeticon"], command=SaveIconToOtherPath) BtnSaveApk = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnSaveApk"], command=SaveInstallUengineApp) +BtnApkInformation = ttk.Button(FrmInstall, text=langFile[lang]["Main"]["MainWindow"]["BtnApkInformation"], command=ApkInformation.ShowWindows) # 设置菜单栏 menu = tk.Menu(window, background="white") @@ -1103,8 +1170,8 @@ help.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][0 help.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][3]["Menu"][1], command=showhelp) # 设置“关于这个程序”项 uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0], command=StartUengine) -uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0], command=StopUengine) -uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][0], command=UengineRestart) +uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][1], command=StopUengine) +uengineService.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][2]["Menu"][2], command=UengineRestart) uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][0], command=UengineBridgeStart) uengineInternet.add_command(label=langFile[lang]["Main"]["MainWindow"]["Menu"][2]["Menu"][3]["Menu"][1], command=UengineBridgeStop) @@ -1141,14 +1208,15 @@ uengineUseAdb.configure(activebackground="dodgerblue") uengineData.configure(activebackground="dodgerblue") # 设置控件 -ComboUninstallPath['value'] = fineUninstallApkHistory +#ComboUninstallPath['value'] = fineUninstallApkHistory ComboInstallPath['value'] = findApkHistory try: if sys.argv[1] == "-i": ComboInstallPath.set(sys.argv[2]) print("Install Path: " + sys.argv[2]) elif sys.argv[1] == "-u": - ComboUninstallPath.set(sys.argv[2]) + #ComboUninstallPath.set(sys.argv[2]) + ComboInstallPath.set(sys.argv[2]) print("Unstall Path: " + sys.argv[2]) else: print("Command Format Error") @@ -1159,25 +1227,26 @@ win.config(menu=menu) # 显示菜单栏 -LabApkPath.grid(row=1, column=0,sticky= tk.W,padx=3) -ComboInstallPath.grid(row=2, column=0,padx=3) +LabApkPath.grid(row=0, column=0,sticky= tk.W,padx=3) +ComboInstallPath.grid(row=1, column=0,padx=3) -FrmInstall.grid(row=2, column=1,padx=3, rowspan=2) +FrmInstall.grid(row=0, column=1,padx=3, rowspan=3) BtnFindApk.grid(row=0, column=0) BtnInstall.grid(row=0, column=1) -LabUninstallPath.grid(row=4, column=0,sticky= tk.W,padx=3) -ComboUninstallPath.grid(row=5, column=0,padx=3) +#LabUninstallPath.grid(row=4, column=0,sticky= tk.W,padx=3) +#ComboUninstallPath.grid(row=5, column=0,padx=3) -FrmUninstall.grid(row=5, column=1,padx=3) -BtnUninstallApkBrowser.grid(row=0, column=0) -BtnUninstall.grid(row=0, column=1) +#FrmUninstall.grid(row=5, column=1,padx=3) +#BtnUninstallApkBrowser.grid(row=0, column=0) +BtnUninstall.grid(row=1, column=0) -BtnShowUengineApp.grid(row=6, column=0,sticky= tk.W,padx=3,pady=2) +BtnShowUengineApp.grid(row=2, column=0,sticky= tk.W,padx=3,pady=2) -Btngeticon.grid(row=1, column=0,sticky= tk.W,padx=3,pady=2) -BtnSaveApk.grid(row=1, column=1,sticky= tk.W,padx=3,pady=2) +BtnApkInformation.grid(row=2, column=1,sticky= tk.W,padx=3,pady=2) +Btngeticon.grid(row=1, column=1,sticky= tk.W,padx=3,pady=2) +BtnSaveApk.grid(row=2, column=0,sticky= tk.W,padx=3,pady=2) window.pack() diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-launch.sh b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-launch.sh new file mode 100755 index 0000000..3e09ebd --- /dev/null +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine-runner-launch.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# 忽略社区版检测 + +pkgRunCnt=`ps -ef |grep "uengine launch" |grep -v grep |grep "$pkg" |wc -l` +if [ $pkgRunCnt -ge 1 ]; then + #防止短时间内多次打开同一应用,如果应用正在启动中,此次忽略 + exit 0 +fi + +#等Session服务启动完全 +wscont=0 +isReady=`busctl --user get-property org.anbox /org/anbox org.anbox.ApplicationManager Ready` +if [ "$isReady" != "b true" ] ;then + sleep 2 +fi +while [ "$isReady" = "b false" -a $wscont -lt 10 ] +do + sleep 1 + isReady=`busctl --user get-property org.anbox /org/anbox org.anbox.ApplicationManager Ready` + let wscont++ +done + +uengine launch $* diff --git a/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine_logo.svg b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine_logo.svg new file mode 100644 index 0000000..c77d1fe --- /dev/null +++ b/new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/uengine_logo.svg @@ -0,0 +1,153 @@ + + + APPS_安卓容器_bonund256pt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/new-deb-build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-bridge.policy b/new-deb-build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-bridge.policy index 7c0ca86..2a140e4 100644 --- a/new-deb-build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-bridge.policy +++ b/new-deb-build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-bridge.policy @@ -8,7 +8,7 @@ Authentication is required to Setting UEngine Internet Bridge 设置 UEngine 桥接需要输入密码 - kbox + /usr/share/uengine/ui/uengine_logo.svg no no diff --git a/new-deb-build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-session-launch-helper.policy b/new-deb-build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-session-launch-helper.policy index 70d8f15..2b57ffe 100644 --- a/new-deb-build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-session-launch-helper.policy +++ b/new-deb-build/usr/share/polkit-1/actions/com.deepin.pkexec.uengine-session-launch-helper.policy @@ -8,7 +8,7 @@ Authentication is required to Change UEngine 设置 UEngine 需要输入密码 - kbox + /usr/share/uengine/ui/uengine_logo.svg no no diff --git a/setting-new.json b/setting-new.json index cc22f18..5edfd97 100755 --- a/setting-new.json +++ b/setting-new.json @@ -1,6 +1,6 @@ { "Package": "com.gitee.uengine.runner.spark", "Update": true, - "Version": "1.5.0", + "Version": "1.5.1", "Url": "https://gfdgd-xi.github.io/update-program/data/UpdateInformation.json" } \ No newline at end of file diff --git a/setting.json b/setting.json index be23244..d4f0364 100755 --- a/setting.json +++ b/setting.json @@ -1,7 +1,7 @@ { "Package": "spark-uengine-runner", "Update": true, - "Version": "1.5.0", + "Version": "1.5.1", "Url": "https://gfdgd-xi.github.io/update-program/data/UpdateInformation.json" } \ No newline at end of file diff --git a/spark-uengine-runner.deb b/spark-uengine-runner.deb index 1566d23..bc1a239 100755 Binary files a/spark-uengine-runner.deb and b/spark-uengine-runner.deb differ diff --git a/uengine-apk-builder b/uengine-apk-builder index 28f5453..fbbf991 100755 --- a/uengine-apk-builder +++ b/uengine-apk-builder @@ -148,7 +148,7 @@ done exit 0'''.format(apkPackageName) desktopFile = '''[Desktop Entry] Categories=Other; -Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package={} --component={} +Exec=uengine launch --action=android.intent.action.MAIN --package={} --component={} Icon=/usr/share/uengine/icons/{}.png Terminal=false Type=Application @@ -294,7 +294,7 @@ def BuildUengineDesktop(packageName, activityName, showName, iconPath, savePath) [Desktop Entry] Categories=app; Encoding=UTF-8 -Exec=/usr/bin/uengine-launch.sh --action=android.intent.action.MAIN --package={} --component={} +Exec=/usr/bin/uengine launch.sh --action=android.intent.action.MAIN --package={} --component={} GenericName={} Icon={} MimeType= diff --git a/uengine-runner-launch.sh b/uengine-runner-launch.sh new file mode 100755 index 0000000..3e09ebd --- /dev/null +++ b/uengine-runner-launch.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# 忽略社区版检测 + +pkgRunCnt=`ps -ef |grep "uengine launch" |grep -v grep |grep "$pkg" |wc -l` +if [ $pkgRunCnt -ge 1 ]; then + #防止短时间内多次打开同一应用,如果应用正在启动中,此次忽略 + exit 0 +fi + +#等Session服务启动完全 +wscont=0 +isReady=`busctl --user get-property org.anbox /org/anbox org.anbox.ApplicationManager Ready` +if [ "$isReady" != "b true" ] ;then + sleep 2 +fi +while [ "$isReady" = "b false" -a $wscont -lt 10 ] +do + sleep 1 + isReady=`busctl --user get-property org.anbox /org/anbox org.anbox.ApplicationManager Ready` + let wscont++ +done + +uengine launch $* diff --git a/uengine_logo.svg b/uengine_logo.svg new file mode 100644 index 0000000..c77d1fe --- /dev/null +++ b/uengine_logo.svg @@ -0,0 +1,153 @@ + + + APPS_安卓容器_bonund256pt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file