From 35db9dc361e0cd89d164a8841894012552ff031f Mon Sep 17 00:00:00 2001 From: gfdgd xi <3025613752@qq.com> Date: Wed, 7 Jul 2021 15:46:35 +0800 Subject: [PATCH] 1.2.2 test --- build/DEBIAN/control | 2 +- build/opt/apps/uengine-runner/uengine-runner | 108 +------------------ spark-uengine-runner.deb | Bin 17468 -> 16780 bytes 3 files changed, 5 insertions(+), 105 deletions(-) diff --git a/build/DEBIAN/control b/build/DEBIAN/control index 75fb7d0..c51662b 100644 --- a/build/DEBIAN/control +++ b/build/DEBIAN/control @@ -1,5 +1,5 @@ Package: spark-uengine-runner -Version: 1.2.1 +Version: 1.2.2test Maintainer: gfdgd xi <3025613752@qq.com> Homepage: https://gitee.com/gfdgd-xi/uengine-runner Architecture: all diff --git a/build/opt/apps/uengine-runner/uengine-runner b/build/opt/apps/uengine-runner/uengine-runner index 5b0f596..7c1d3d9 100755 --- a/build/opt/apps/uengine-runner/uengine-runner +++ b/build/opt/apps/uengine-runner/uengine-runner @@ -30,9 +30,7 @@ import PIL.ImageTk as ImageTk def UninstallProgram(package): global fineUninstallApkHistory - #setting = {True: "", False: "-k"} Return = GetCommandReturn("pkexec /usr/bin/uengine-session-launch-helper -- uengine uninstall --pkg='{}'".format(package)) - #Return = GetCommandReturn("adb shell pm uninstall {} {}".format(setting[cleanData], package)) if os.path.exists("{}/.local/share/applications/{}.desktop".format(get_home(), package)): os.remove("{}/.local/share/applications/{}.desktop".format(get_home(), package)) if os.path.exists("{}/{}.desktop".format(get_desktop_path(), package)): @@ -82,13 +80,6 @@ def Button3Install(): def InstallApk(path, quit = False): global findApkHistory - '''if not AdbRun(): - if quit: - return - messagebox.showinfo(title="提示", message="你没有使用 adb 连接任何设备") - DisabledAndEnbled(False) - return''' - #commandReturn = GetCommandReturn("adb install '{}'".format(path)) commandReturn = GetCommandReturn("pkexec /usr/bin/uengine-session-launch-helper -- uengine install --apk='{}'".format(path)) iconSavePath = "{}/.local/share/icons/hicolor/256x256/apps/{}.desktop".format(get_home(), GetApkPackageName(path)) SaveApkIcon(path, iconSavePath) @@ -109,15 +100,10 @@ def DisabledAndEnbled(choose): userChoose = {True: tk.DISABLED, False: tk.NORMAL} a = userChoose[choose] combobox1.configure(state=a) - #combobox2.configure(state=a) combobox3.configure(state=a) - #checkButton1.configure(state=a) - #button1.configure(state=a) button2.configure(state=a) button3.configure(state=a) - #button4.configure(state=a) button5.configure(state=a) - #button6.configure(state=a) button7.configure(state=a) button8.configure(state=a) @@ -324,7 +310,8 @@ def GetApkIconInApk(apkFilePath): if "application:" in line: line = line[line.index("icon='"): -1] line = line.replace("icon='", "") - line = line.replace("'", "") + if "'" in line: + line = line[0: line.index("'")] return line def SaveApkIcon(apkFilePath, iconSavePath): @@ -351,12 +338,11 @@ def get_desktop_path(): # 获取用户主目录 def get_home(): return os.path.expanduser('~') - ########################### # 程序信息 ########################### programUrl = "https://gitee.com/gfdgd-xi/uengine-runner" -version = "1.2.1" +version = "1.2.2(test)" goodRunSystem = "Linux" about = '''一个基于 Python3 的 tkinter 制作的 uengine APK 安装器 版本:{} @@ -428,20 +414,14 @@ frame1 = ttk.Frame(window) frame2 = ttk.Frame(window) frame3 = ttk.Frame(window) label1 = ttk.Label(window, text="要安装的 apk 路径:") -#label2 = ttk.Label(window, text="要连接的设备的 IP(默认 IP 为 192.168.250.2):") label3 = ttk.Label(window, text="要卸载的包名或程序对应的 APK 文件:") combobox1 = ttk.Combobox(window, width=100) -#combobox2 = ttk.Combobox(window, width=100) combobox3 = ttk.Combobox(window, width=100) -#button1 = ttk.Button(frame1, text="连接设备", command=ConnectPhoneIp) button2 = ttk.Button(window, text="浏览", command=FindApk) button3 = ttk.Button(frame2, text="安装", command=Button3Install) -#button4 = ttk.Button(frame1, text="关闭 adb 软件进程", command=KillAdbProgress) button5 = ttk.Button(frame2, text="打开 uengine 应用列表", command=Button5Click) -#button6 = ttk.Button(frame1, text="连接默认 IP", command=ConnectPhoneIpDefult) button7 = ttk.Button(window, text="浏览", command=ButtonClick7) button8 = ttk.Button(frame3, text="卸载", command=ButtonClick8) -#checkButton1 = ttk.Checkbutton(frame3, text="保留软件数据", variable=checkButtonBool1) menu = tk.Menu(window, background="white") # 设置菜单栏 programmenu = tk.Menu(menu, tearoff=0, background="white") # 设置“程序”菜单栏 #adb = tk.Menu(menu, tearoff=0, background="white") @@ -454,8 +434,6 @@ menu.add_cascade(label="帮助", menu=help) programmenu.add_command(label="清空软件历史记录", command=CleanProgramHistory) programmenu.add_separator() # 设置分界线 programmenu.add_command(label="退出程序", command=window.quit) # 设置“退出程序”项 -#adb.add_command(label="adb 连接的设备", command=ShowAdbConnect) -#adb.add_command(label="adb 连接的设备的所有软件包", command=ShowAdbInstallPackage) uengine.add_command(label="发送 uengine 应用列表到桌面", command=SendUengineAndroidListForDesktop) uengine.add_command(label="发送 uengine 应用列表到启动器", command=SendUengineAndroidListForLauncher) help.add_command(label="程序官网", command=OpenProgramURL) # 设置“程序官网”项 @@ -463,31 +441,23 @@ help.add_separator() help.add_command(label="小提示", command=helps) # 设置“小提示”项 help.add_command(label="更新内容", command=UpdateThings) # 设置“更新内容”项 help.add_command(label="这个程序使用的程序列表(部分)", command=ShowUseProgram) # 设置“更新内容”项 -#help.add_command(label="关于 adb", command=AboutAdb) # 设置“关于这个程序”项 help.add_command(label="关于这个程序", command=about_this_program) # 设置“关于这个程序”项 menu.configure(activebackground="white") help.configure(activebackground="white") uengine.configure(activebackground="white") -#adb.configure(activebackground="white") programmenu.configure(activebackground="white") # 设置控件 combobox3['value'] = fineUninstallApkHistory -#combobox2['value'] = phoneIp combobox1['value'] = findApkHistory # win.config(menu=menu) # 显示菜单栏 label1.grid(row=2, column=0) -#label2.grid(row=0, column=0) label3.grid(row=4, column=0) combobox1.grid(row=2, column=1) -#combobox2.grid(row=0, column=1) combobox3.grid(row=4, column=1) -#button1.grid(column=0, row=0) button2.grid(row=2, column=2) button3.grid(row=0, column=0) -#button4.grid(column=1, row=0) button5.grid(row=0, column=1) -#button6.grid(row=0, column=3) button7.grid(row=4, column=2) button8.grid(row=0, column=1) #checkButton1.grid(row=0, column=0) @@ -495,74 +465,4 @@ frame1.grid(row=1, columnspa=3) frame2.grid(row=3, columnspa=3) frame3.grid(row=5, columnspa=3) window.pack() -win.mainloop() - -######################################### -# 废弃的代码 -######################################### -'''def KillAdbProgress(): - DisabledAndEnbled(True) - Return = GetCommandReturn("killall adb") - if Return is "": - Return = "进程已经杀死!" - messagebox.showinfo(title="tips", message=Return) - DisabledAndEnbled(False)''' - -'''def Button1Click(): - if combobox2.get() is "": - messagebox.showerror(title="提示", message="信息没有填写完整,无法继续连接 IP") - return - DisabledAndEnbled(True) - threading.Thread(target=ConnectPhoneIp).start()''' - -'''def ConnectPhoneIp(): - global phoneIp - messagebox.showinfo(title="提示", message=GetCommandReturn("adb connect '{}'".format(combobox2.get()))) - phoneIp.append(combobox2.get()) - combobox2['value'] = phoneIp - write_txt(get_home() + "/.config/uengine-runner/PhoneIp.json", str(json.dumps(ListToDictionary(phoneIp)))) # 将历史记录的数组转换为字典并写入 - DisabledAndEnbled(False)''' - -'''def ConnectPhoneIpDefult(quit = False): - global phoneIp - Return = GetCommandReturn("adb connect '192.168.250.2'") - if quit: - print(Return) - return - messagebox.showinfo(title="提示", message=Return) - phoneIp.append("192.168.250.2") - combobox2['value'] = phoneIp - write_txt(get_home() + "/.config/uengine-runner/PhoneIp.json", str(json.dumps(ListToDictionary(phoneIp)))) # 将历史记录的数组转换为字典并写入 - DisabledAndEnbled(False)''' - -'''def AdbRun(): - Return = GetCommandReturn("adb devices").replace("\n", "").replace("List of devices attached", "").replace("* daemon not running; starting now at tcp:5037", "").replace("* daemon started successfully", "") - if Return is "": - return False - return True''' - -'''def AdbConnect(): - return GetCommandReturn("adb devices")''' - -'''def ShowAdbConnect(): - messagebox.showinfo(title="提示", message=AdbConnect())''' - -'''def AboutAdb(): - messagebox.showinfo(message=GetCommandReturn("adb version"), title="关于 adb")''' - -'''def GetAllPackageName(): - return GetCommandReturn("adb shell pm list packages")''' - -'''def ShowAdbInstallPackage(): - mess = tk.Toplevel() - message = ttk.Frame(mess) - mess.resizable(0, 0) - mess.title("所有软件包") - textbox1 = tk.Text(message, width=100) - button1 = ttk.Button(message, text="确定", command=mess.withdraw) - textbox1.insert("0.0", GetAllPackageName()) - textbox1.configure(state=tk.DISABLED) - textbox1.pack() - button1.pack(side="bottom") - message.pack() - mess.mainloop()''' \ No newline at end of file +win.mainloop() \ No newline at end of file diff --git a/spark-uengine-runner.deb b/spark-uengine-runner.deb index 0c3494f98d6112138122317662faf5b8263fd55e..b4b3d108286e2b198c3e5430e3aef2c3d718de47 100644 GIT binary patch delta 16631 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 D8A;AH