修复奇怪问题
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/defult.png
Executable file
BIN
new-deb-build/opt/apps/com.gitee.uengine.runner.spark/files/defult.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 35 KiB |
@@ -1,10 +1,50 @@
|
||||
import PIL.Image as Image
|
||||
import PIL.ImageDraw as ImageDraw
|
||||
import xml.etree.ElementTree as ET
|
||||
import zipfile
|
||||
import subprocess
|
||||
import re
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
'''import xml.etree.ElementTree as ET
|
||||
|
||||
def xml2svg(xml_file):
|
||||
tree = ET.parse(xml_file)
|
||||
root = tree.getroot()
|
||||
svg_str = '<svg>'
|
||||
for child in root:
|
||||
svg_str += '<' + child.tag
|
||||
for attr in child.attrib:
|
||||
svg_str += ' ' + attr + '="' + child.attrib[attr] + '"'
|
||||
svg_str += '>'
|
||||
for sub_child in child:
|
||||
svg_str += '<' + sub_child.tag
|
||||
for attr in sub_child.attrib:
|
||||
svg_str += ' ' + attr + '="' + sub_child.attrib[attr] + '"'
|
||||
svg_str += '/>'
|
||||
svg_str += '</' + child.tag + '>'
|
||||
svg_str += '</svg>'
|
||||
return svg_str'''
|
||||
|
||||
class getsavexml():
|
||||
'''def xml2svg(xml_file):
|
||||
tree = ET.parse(xml_file)
|
||||
root = tree.getroot()
|
||||
svg_str = '<svg>'
|
||||
for child in root:
|
||||
svg_str += '<' + child.tag
|
||||
for attr in child.attrib:
|
||||
svg_str += ' ' + attr + '="' + child.attrib[attr] + '"'
|
||||
svg_str += '>'
|
||||
for sub_child in child:
|
||||
svg_str += '<' + sub_child.tag
|
||||
for attr in sub_child.attrib:
|
||||
svg_str += ' ' + attr + '="' + sub_child.attrib[attr] + '"'
|
||||
svg_str += '/>'
|
||||
svg_str += '</' + child.tag + '>'
|
||||
svg_str += '</svg>'
|
||||
return svg_str'''
|
||||
|
||||
def savexml(self,apkFilePath,xmlpath,iconSavePath):
|
||||
cmddumpid = "aapt dump xmltree "+ apkFilePath + " " + xmlpath
|
||||
@@ -70,18 +110,37 @@ class getsavexml():
|
||||
return imgpath
|
||||
|
||||
# 获取到文件列表后,进行比较分辨率,选取分辨率最高的张图片
|
||||
iconbackpath = getmaxsize(backimgs)
|
||||
iconforepath = getmaxsize(foreimgs)
|
||||
print(iconbackpath + " " + iconforepath)
|
||||
# /home/gfdgd_xi/Downloads/MT2.12.2.apk
|
||||
try:
|
||||
iconbackpath = getmaxsize(backimgs)
|
||||
iconforepath = getmaxsize(foreimgs)
|
||||
except:
|
||||
if len(backimgs):
|
||||
iconbackpath = backimgs[0]
|
||||
else:
|
||||
iconbackpath = ""
|
||||
if len(foreimgs):
|
||||
iconforepath = foreimgs[0]
|
||||
else:
|
||||
iconforepath = ""
|
||||
print(iconbackpath, iconforepath)
|
||||
|
||||
#从APK文件获取最终图片
|
||||
zipapk = zipfile.ZipFile(apkFilePath)
|
||||
iconback = zipapk.open(iconbackpath)
|
||||
iconfore = zipapk.open(iconforepath)
|
||||
|
||||
try:
|
||||
iconback = zipapk.open(iconbackpath)
|
||||
except:
|
||||
iconback = None
|
||||
try:
|
||||
iconfore = zipapk.open(iconforepath)
|
||||
except:
|
||||
iconfore = None
|
||||
|
||||
# 叠加图片,mask 设置前景为蒙版
|
||||
iconbackimg = Image.open(iconback).convert("RGBA")
|
||||
try:
|
||||
iconbackimg = Image.open(iconback).convert("RGBA")
|
||||
except:
|
||||
pass
|
||||
iconforeimg = Image.open(iconfore).convert("RGBA")
|
||||
iconbackimg.paste(iconforeimg,mask=iconforeimg)
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"https://github.com/gfdgd-xi/uengine-runner",
|
||||
"https://gitlink.org.cn/gfdgd_xi/uengine-runner"
|
||||
],
|
||||
"Version": "1.8.2",
|
||||
"Version": "1.8.3",
|
||||
"System": "Linux(deepin/UOS)",
|
||||
"Tips": [
|
||||
"更多可见:https://gitee.com/gfdgd-xi/uengine-runner/wikis 或程序的更多帮助",
|
||||
@@ -23,6 +23,10 @@
|
||||
"5、如果想要使用adb连接UEngine或其他手机,请使用 1.2.0 以前的版本。(如需连接UEngine请安装adb补丁)"
|
||||
],
|
||||
"Update": [
|
||||
"<b>V1.8.3:</b>",
|
||||
"※1、修复安装/打包程序时出现找不到图标的问题;",
|
||||
"※2、修复部分无法正确获取程序中文名和 Activity 的问题",
|
||||
"",
|
||||
"<b>V1.8.2:</b>",
|
||||
"※1、重新恢复 uengine-installer For Ubuntu",
|
||||
"※2、修复 postrm 的问题",
|
||||
|
||||
@@ -293,6 +293,7 @@ def GetApkActivityName(apkFilePath):
|
||||
line = line.replace("label=", "")
|
||||
line = line.replace("icon=", "")
|
||||
return line
|
||||
return f"{GetApkPackageName(apkFilePath)}.Main"
|
||||
|
||||
def GetApkPackageName(apkFilePath, setting):
|
||||
# 提示:此函数有被为此程序适配而调整,如果需要最原始(无调整的)请使用主程序(此为附属组件)里的函数
|
||||
@@ -341,13 +342,20 @@ Type=Application
|
||||
'''.format(packageName, activityName, showName, iconPath, showName, showName)
|
||||
write_txt(savePath, things)
|
||||
|
||||
def GetApkChineseLabel(apkFilePath):
|
||||
# 获取软件的中文名称
|
||||
def GetApkChineseLabel(apkFilePath)->"获取软件的中文名称":
|
||||
info = GetApkInformation(apkFilePath)
|
||||
name = None
|
||||
for line in info.split('\n'):
|
||||
if "application-label-zh:" in line:
|
||||
line = line.replace("application-label-zh:", "")
|
||||
line = line.replace("'", "")
|
||||
return line
|
||||
if "application-label:" in line:
|
||||
line = line.replace("application-label:", "")
|
||||
line = line.replace("'", "")
|
||||
return line
|
||||
name = line
|
||||
return name
|
||||
|
||||
#合并两个函数到一起
|
||||
def SaveApkIcon(apkFilePath, iconSavePath)->"获取 apk 文件的图标":
|
||||
@@ -367,11 +375,11 @@ def SaveApkIcon(apkFilePath, iconSavePath)->"获取 apk 文件的图标":
|
||||
saveIconFile.write(iconData)
|
||||
return
|
||||
print("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 TextboxAddText1(message):
|
||||
global textbox1
|
||||
|
||||
@@ -411,6 +411,7 @@ def GetApkActivityName(apkFilePath: "apk 所在路径")->"获取 apk Activity":
|
||||
line = line.replace("label=", "")
|
||||
line = line.replace("icon=", "")
|
||||
return line
|
||||
return f"{GetApkPackageName(apkFilePath)}.Main"
|
||||
|
||||
# 获取 apk 包名
|
||||
def GetApkPackageName(apkFilePath: "apk 所在路径")->"获取 apk 包名":
|
||||
@@ -483,11 +484,17 @@ Type=Application
|
||||
# 获取软件的中文名称
|
||||
def GetApkChineseLabel(apkFilePath)->"获取软件的中文名称":
|
||||
info = GetApkInformation(apkFilePath)
|
||||
name = None
|
||||
for line in info.split('\n'):
|
||||
if "application-label-zh:" in line:
|
||||
line = line.replace("application-label-zh:", "")
|
||||
line = line.replace("'", "")
|
||||
return line
|
||||
if "application-label:" in line:
|
||||
line = line.replace("application-label:", "")
|
||||
line = line.replace("'", "")
|
||||
return line
|
||||
name = line
|
||||
return name
|
||||
|
||||
# 保存apk图标
|
||||
def SaveApkIcon(apkFilePath, iconSavePath)->"保存 apk 文件的图标":
|
||||
|
||||
Reference in New Issue
Block a user