Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d01423853a | |||
| d486fa55d8 | |||
|
|
73d1e3b484 | ||
| ce52b8579a | |||
| fcc37f707e | |||
| 908177b69d | |||
| 89702f681e |
53
README.md
53
README.md
@@ -1,13 +1,18 @@
|
|||||||
# uengine 运行器 1.3.0
|
# uengine 运行器 1.3.1
|
||||||
|
|
||||||
### 介绍
|
### 介绍
|
||||||
新版本Deepin/UOS发布后,可以在应用商店安装部分官方已适配的安卓应用,对爱好者来说,不能自己安装APK软件包始终差点意思,本程序可以为Deepin/UOS上的Uengine安卓运行环境安装自定义APK软件包,并能发送安装的APK包启动菜单到桌面或系统菜单。
|
新版本Deepin/UOS发布后,可以在应用商店安装部分官方已适配的安卓应用,对爱好者来说,不能自己安装APK软件包始终差点意思,本程序可以为Deepin/UOS上的Uengine安卓运行环境安装自定义APK软件包,并能发送安装的APK包启动菜单到桌面或系统菜单。
|
||||||

|

|
||||||
(测试平台:UOS 家庭版,deepin 20.2.2)
|
(测试平台:UOS 家庭版,deepin 20.2.2,UOS 专业版 1040)
|
||||||
(自己美术功底太差,图标直接用 anbox 的了)
|
(自己美术功底太差,图标直接用 anbox 的了)
|
||||||
|
|
||||||
### 更新内容
|
### 更新内容
|
||||||
|
|
||||||
|
#### V1.3.1:
|
||||||
|
**※1、修复打包问题,防止部分用户安装出错的问题;**
|
||||||
|
**※2、修复了程序无法提取图标时可以提取默认图标使用;**
|
||||||
|

|
||||||
|
|
||||||
#### V1.3.0:
|
#### V1.3.0:
|
||||||
**※1、修改了界面布局;**
|
**※1、修改了界面布局;**
|
||||||
**※2、修复大多数新安装普通用户的路图标及启动菜单文件路径不存在导致安装APK报错的bugs;**
|
**※2、修复大多数新安装普通用户的路图标及启动菜单文件路径不存在导致安装APK报错的bugs;**
|
||||||
@@ -41,7 +46,7 @@
|
|||||||

|

|
||||||
|
|
||||||
### 源码安装教程
|
### 源码安装教程
|
||||||
|
按下 <kbd>Ctrl</kbd>+<kbd>Alt</kbd>+<kbd>T</kbd> 打开终端,按以下内容操作:
|
||||||
1. 安装所需依赖
|
1. 安装所需依赖
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -76,16 +81,27 @@ pip3 uninstall ttkthemes
|
|||||||
|
|
||||||
### 使用说明
|
### 使用说明
|
||||||
1、需要你有使用 root 权限的能力;
|
1、需要你有使用 root 权限的能力;
|
||||||
2、需要安装 uengine 才能使用;
|
2、需要安装 uengine 才能使用,UOS建议在商店安装一个安卓应用,让系统自动安装uengine及相关的依赖包;
|
||||||
3、提取 apk 图标的 apk 路径以“安装 apk”那栏为准;
|
3、提取 apk 图标的 apk 路径以“安装 apk”那栏为准;
|
||||||
4、如果报错是有关产生 .deksotp 文件有关,一般可以打开程序列表运行。如果想要连接其他手机,请使用 1.2.0 以前的版本,可以使用 adb 连接。
|
4、如果报错是有关产生 .deksotp 文件有关,一般可以打开程序列表运行。如果想要连接其他手机,请使用 1.2.0 以前的版本,可以使用 adb 连接。
|
||||||
|
|
||||||
### 故障排除
|
### 故障排除
|
||||||
提 isscue 最好,当然有些问题自己无法解决,请大佬 push 一下
|
提 issue 最好,当然有些问题自己无法解决,请大佬 push 一下
|
||||||
如果出现故障,尝试终端运行,如果是可以自行解决的问题,就**自行解决**,如果可以就**提 issues 并提供解决方案**,不行就**提 isscue 并提供程序和终端报错以及程序版本**
|
如果出现故障,尝试终端运行,如果是可以自行解决的问题,就**自行解决**,如果可以就**提 issues 并提供解决方案**,不行就**提 isscue 并提供程序和终端报错以及程序版本**
|
||||||
|
|
||||||
### 已知问题
|
### 已知问题
|
||||||
暂未发现
|

|
||||||
|
部分 app 无法读取出图片,已知:
|
||||||
|
| 程序 | 下载链接 |
|
||||||
|
| :-: | :-: |
|
||||||
|
| Firefox For Android | https://www.firefox.com.cn/download/ |
|
||||||
|
| 网易云音乐 For Android | https://music.163.com/#/download |
|
||||||
|
| 抖音 | https://www.wandoujia.com/apps/7461948 |
|
||||||
|
| 360 手机浏览器 | https://mse.360.cn/ |
|
||||||
|
| E-Go | 忘了 |
|
||||||
|
| 其他待测试…… | 其他待测试…… |
|
||||||
|
**注意:提取不出图标不代表未安装成功!**
|
||||||
|
|
||||||
|
|
||||||
### 贡献
|
### 贡献
|
||||||
我非常欢迎大家的贡献
|
我非常欢迎大家的贡献
|
||||||
@@ -100,3 +116,26 @@ pip3 uninstall ttkthemes
|
|||||||
| :-: | :-:|
|
| :-: | :-:|
|
||||||
| uengine-installer | https://gitee.com/Maicss/uengine-installer |
|
| uengine-installer | https://gitee.com/Maicss/uengine-installer |
|
||||||
| uengine APK 打包器 | https://gitee.com/gfdgd-xi/uengine-apk-builder |
|
| uengine APK 打包器 | https://gitee.com/gfdgd-xi/uengine-apk-builder |
|
||||||
|
|
||||||
|
### 附测试生成图标无问题列表:
|
||||||
|
**至于能不能用就不测试了,这暂时不是重点**
|
||||||
|
| 程序 | 下载链接 |
|
||||||
|
|:-:|:-:|
|
||||||
|
| QQ 全家桶(完整版、极速版、Android Pad 版) | https://im.qq.com |
|
||||||
|
| TIM | 忘了 |
|
||||||
|
| 微信 | https://weixin.qq.com |
|
||||||
|
| 百度翻译 | 忘了 |
|
||||||
|
| 百度网盘 | https://pan.baidu.com |
|
||||||
|
| 腾讯课堂 | 忘了 |
|
||||||
|
| 抖音极速版 | 忘了 |
|
||||||
|
| 豌豆荚 | 忘了 |
|
||||||
|
| 小猿口算 | 忘了 |
|
||||||
|
| Hyperbowl | 忘了 |
|
||||||
|
| bilibili | https://d.bilibili.com/download_app.html?bsource=app_bili |
|
||||||
|
| 蓝奏云 | https://up.woozooo.com/lanzouh5.apk |
|
||||||
|
| QQ 音乐(完整版、Android Pad 版、TV 版、车载版) | https://y.qq.com/download/index.html |
|
||||||
|
| 360 手机卫士(完整版、极速版) | https://shouji.360.cn/v6/index.html |
|
||||||
|
| 360 清理大师(稳定版、尝鲜版) | http://shouji.360.cn/360cleandroid/ |
|
||||||
|
| 360 手机助手 | http://sj.360.cn/index.html |
|
||||||
|
| WPS Office For Android | https://www.wps.cn/ |
|
||||||
|
| 钉钉 for android | https://page.dingtalk.com/wow/dingtalk/act/download?spm=a3140.8196062.0.0.6f4c5c3dWBhYUM |
|
||||||
Binary file not shown.
@@ -1,9 +1,9 @@
|
|||||||
Package: spark-uengine-runner
|
Package: spark-uengine-runner
|
||||||
Version: 1.3.0
|
Version: 1.3.1
|
||||||
Maintainer: gfdgd xi <3025613752@qq.com>
|
Maintainer: gfdgd xi <3025613752@qq.com>, actionchen<917981399@qq.com>
|
||||||
Homepage: https://gitee.com/gfdgd-xi/uengine-runner
|
Homepage: https://gitee.com/gfdgd-xi/uengine-runner
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Depends: python3, python3-tk, python3-pip, aapt, uengine
|
Depends: python3, python3-tk, python3-pip, aapt, uengine, python3-pil, python3-setuptools
|
||||||
Description: gfdgd xi make's uengine runner
|
Description: gfdgd xi make's uengine runner
|
||||||
|
|
||||||
|
|||||||
BIN
build/opt/apps/uengine-runner/defult.png
Executable file
BIN
build/opt/apps/uengine-runner/defult.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 312 KiB |
@@ -341,19 +341,24 @@ def GetApkChineseLabel(apkFilePath)->"获取软件的中文名称":
|
|||||||
|
|
||||||
#合并两个函数到一起
|
#合并两个函数到一起
|
||||||
def SaveApkIcon(apkFilePath, iconSavePath)->"获取 apk 文件的图标":
|
def SaveApkIcon(apkFilePath, iconSavePath)->"获取 apk 文件的图标":
|
||||||
info = GetApkInformation(apkFilePath)
|
try:
|
||||||
for line in info.split('\n'):
|
info = GetApkInformation(apkFilePath)
|
||||||
if "application:" in line:
|
for line in info.split('\n'):
|
||||||
xmlpath = line.split(":")[-1].split()[-1].split("=")[-1].replace("'","")
|
if "application:" in line:
|
||||||
if xmlpath.endswith('.xml'):
|
xmlpath = line.split(":")[-1].split()[-1].split("=")[-1].replace("'","")
|
||||||
xmlsave = getsavexml()
|
if xmlpath.endswith('.xml'):
|
||||||
print(xmlpath)
|
xmlsave = getsavexml()
|
||||||
xmlsave.savexml(apkFilePath,xmlpath,iconSavePath)
|
print(xmlpath)
|
||||||
else:
|
xmlsave.savexml(apkFilePath,xmlpath,iconSavePath)
|
||||||
zip = zipfile.ZipFile(apkFilePath)
|
else:
|
||||||
iconData = zip.read(xmlpath)
|
zip = zipfile.ZipFile(apkFilePath)
|
||||||
with open(iconSavePath, 'w+b') as saveIconFile:
|
iconData = zip.read(xmlpath)
|
||||||
saveIconFile.write(iconData)
|
with open(iconSavePath, 'w+b') as saveIconFile:
|
||||||
|
saveIconFile.write(iconData)
|
||||||
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
print("Error, show defult icon")
|
||||||
|
shutil.copy(programPath + "/defult.png", iconSavePath)
|
||||||
|
|
||||||
def saveicon():
|
def saveicon():
|
||||||
global temppath
|
global temppath
|
||||||
@@ -412,7 +417,7 @@ def get_home()->"获取用户主目录":
|
|||||||
# 程序信息
|
# 程序信息
|
||||||
###########################
|
###########################
|
||||||
programUrl = "https://gitee.com/gfdgd-xi/uengine-runner"
|
programUrl = "https://gitee.com/gfdgd-xi/uengine-runner"
|
||||||
version = "1.3.0"
|
version = "1.3.1"
|
||||||
goodRunSystem = "Linux(deepin/UOS)"
|
goodRunSystem = "Linux(deepin/UOS)"
|
||||||
aaptVersion = GetCommandReturn("aapt version")
|
aaptVersion = GetCommandReturn("aapt version")
|
||||||
about = ''' 一个基于 Python3 的 tkinter 制作的 uengine APK 安装器
|
about = ''' 一个基于 Python3 的 tkinter 制作的 uengine APK 安装器
|
||||||
@@ -449,7 +454,11 @@ tips = ''' 新版本Deepin/UOS发布后,可以在应用商店安装部分
|
|||||||
4、如果报错是有关产生 .deksotp 文件有关,一般可以打开程序列表运行。如果想要连接其他手机,请使用 1.2.0 以前的版本,可以使用 adb 连接。
|
4、如果报错是有关产生 .deksotp 文件有关,一般可以打开程序列表运行。如果想要连接其他手机,请使用 1.2.0 以前的版本,可以使用 adb 连接。
|
||||||
|
|
||||||
'''
|
'''
|
||||||
updateThingsString = '''V1.3.0:
|
updateThingsString = '''V1.3.1:
|
||||||
|
※1、修复打包问题,防止部分用户安装出错的问题;
|
||||||
|
※2、修复了程序无法提取图标时可以提取默认图标使用;
|
||||||
|
|
||||||
|
V1.3.0:
|
||||||
※1、修改了界面布局;
|
※1、修改了界面布局;
|
||||||
※2、修复大多数新安装普通用户的路图标及启动菜单文件路径不存在导致安装APK报错的bugs;
|
※2、修复大多数新安装普通用户的路图标及启动菜单文件路径不存在导致安装APK报错的bugs;
|
||||||
3、删除少量冗余代码,调整代码顺序;
|
3、删除少量冗余代码,调整代码顺序;
|
||||||
@@ -468,16 +477,11 @@ V1.2.1:
|
|||||||
※1、进行了安装方式的修改(不使用 adb),修复原无法安装和卸载的问题;
|
※1、进行了安装方式的修改(不使用 adb),修复原无法安装和卸载的问题;
|
||||||
2、进行了部分优化;
|
2、进行了部分优化;
|
||||||
3、进行了功能缩水;
|
3、进行了功能缩水;
|
||||||
4、修复 deb 打包错误。
|
4、修复 deb 打包错误。'''
|
||||||
|
|
||||||
V1.2.0:
|
|
||||||
1、支持安装自动添加快捷方式、卸载删除快捷方式;
|
|
||||||
2、支持使用包名或 APK 文件卸载程序;
|
|
||||||
3、支持查看安装的所有包名;
|
|
||||||
4、进行了部分优化'''
|
|
||||||
title = "uengine 安装器 {}".format(version)
|
title = "uengine 安装器 {}".format(version)
|
||||||
updateTime = "2021年08月08日"
|
updateTime = "2021年08月08日"
|
||||||
updateThings = "{} 更新内容:\n{}\n更新时间:{}".format(version, updateThingsString, updateTime, time.strftime("%Y"))
|
updateThings = "{} 更新内容:\n{}\n更新时间:{}".format(version, updateThingsString, updateTime, time.strftime("%Y"))
|
||||||
|
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||||
iconPath = "{}/icon.png".format(os.path.split(os.path.realpath(__file__))[0])
|
iconPath = "{}/icon.png".format(os.path.split(os.path.realpath(__file__))[0])
|
||||||
desktop = "/opt/apps/uengine-runner/UengineAndroidProgramList.desktop"
|
desktop = "/opt/apps/uengine-runner/UengineAndroidProgramList.desktop"
|
||||||
desktopName = "UengineAndroidProgramList.desktop"
|
desktopName = "UengineAndroidProgramList.desktop"
|
||||||
|
|||||||
BIN
defult.png
Executable file
BIN
defult.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 312 KiB |
@@ -50,13 +50,16 @@ class getsavexml():
|
|||||||
#获取所有带前后图片ID的图片路径(相同背景或者前景的图片ID但分辨率不一样)
|
#获取所有带前后图片ID的图片路径(相同背景或者前景的图片ID但分辨率不一样)
|
||||||
backimgs = Findpicpath(resourcelines,backimgid)
|
backimgs = Findpicpath(resourcelines,backimgid)
|
||||||
foreimgs = Findpicpath(resourcelines,foreimgid)
|
foreimgs = Findpicpath(resourcelines,foreimgid)
|
||||||
|
print(backimgs)
|
||||||
|
print(foreimgs)
|
||||||
#获取分辨率最高的图片路径
|
#获取分辨率最高的图片路径
|
||||||
def getmaxsize(imgs):
|
def getmaxsize(imgs):
|
||||||
j = 0
|
j = 0
|
||||||
size=(0,0)
|
size=(0,0)
|
||||||
zipapk = zipfile.ZipFile(apkFilePath)
|
zipapk = zipfile.ZipFile(apkFilePath)
|
||||||
|
imgpath = ""
|
||||||
while j < len(imgs):
|
while j < len(imgs):
|
||||||
|
print(imgs[j])
|
||||||
img = Image.open(zipapk.open(imgs[j]))
|
img = Image.open(zipapk.open(imgs[j]))
|
||||||
print(imgs[j])
|
print(imgs[j])
|
||||||
print(img.size)
|
print(img.size)
|
||||||
|
|||||||
48
main.py
48
main.py
@@ -341,19 +341,24 @@ def GetApkChineseLabel(apkFilePath)->"获取软件的中文名称":
|
|||||||
|
|
||||||
#合并两个函数到一起
|
#合并两个函数到一起
|
||||||
def SaveApkIcon(apkFilePath, iconSavePath)->"获取 apk 文件的图标":
|
def SaveApkIcon(apkFilePath, iconSavePath)->"获取 apk 文件的图标":
|
||||||
info = GetApkInformation(apkFilePath)
|
try:
|
||||||
for line in info.split('\n'):
|
info = GetApkInformation(apkFilePath)
|
||||||
if "application:" in line:
|
for line in info.split('\n'):
|
||||||
xmlpath = line.split(":")[-1].split()[-1].split("=")[-1].replace("'","")
|
if "application:" in line:
|
||||||
if xmlpath.endswith('.xml'):
|
xmlpath = line.split(":")[-1].split()[-1].split("=")[-1].replace("'","")
|
||||||
xmlsave = getsavexml()
|
if xmlpath.endswith('.xml'):
|
||||||
print(xmlpath)
|
xmlsave = getsavexml()
|
||||||
xmlsave.savexml(apkFilePath,xmlpath,iconSavePath)
|
print(xmlpath)
|
||||||
else:
|
xmlsave.savexml(apkFilePath,xmlpath,iconSavePath)
|
||||||
zip = zipfile.ZipFile(apkFilePath)
|
else:
|
||||||
iconData = zip.read(xmlpath)
|
zip = zipfile.ZipFile(apkFilePath)
|
||||||
with open(iconSavePath, 'w+b') as saveIconFile:
|
iconData = zip.read(xmlpath)
|
||||||
saveIconFile.write(iconData)
|
with open(iconSavePath, 'w+b') as saveIconFile:
|
||||||
|
saveIconFile.write(iconData)
|
||||||
|
except:
|
||||||
|
traceback.print_exc()
|
||||||
|
print("Error, show defult icon")
|
||||||
|
shutil.copy(programPath + "/defult.png", iconSavePath)
|
||||||
|
|
||||||
def saveicon():
|
def saveicon():
|
||||||
global temppath
|
global temppath
|
||||||
@@ -412,7 +417,7 @@ def get_home()->"获取用户主目录":
|
|||||||
# 程序信息
|
# 程序信息
|
||||||
###########################
|
###########################
|
||||||
programUrl = "https://gitee.com/gfdgd-xi/uengine-runner"
|
programUrl = "https://gitee.com/gfdgd-xi/uengine-runner"
|
||||||
version = "1.3.0"
|
version = "1.3.1"
|
||||||
goodRunSystem = "Linux(deepin/UOS)"
|
goodRunSystem = "Linux(deepin/UOS)"
|
||||||
aaptVersion = GetCommandReturn("aapt version")
|
aaptVersion = GetCommandReturn("aapt version")
|
||||||
about = ''' 一个基于 Python3 的 tkinter 制作的 uengine APK 安装器
|
about = ''' 一个基于 Python3 的 tkinter 制作的 uengine APK 安装器
|
||||||
@@ -449,7 +454,11 @@ tips = ''' 新版本Deepin/UOS发布后,可以在应用商店安装部分
|
|||||||
4、如果报错是有关产生 .deksotp 文件有关,一般可以打开程序列表运行。如果想要连接其他手机,请使用 1.2.0 以前的版本,可以使用 adb 连接。
|
4、如果报错是有关产生 .deksotp 文件有关,一般可以打开程序列表运行。如果想要连接其他手机,请使用 1.2.0 以前的版本,可以使用 adb 连接。
|
||||||
|
|
||||||
'''
|
'''
|
||||||
updateThingsString = '''V1.3.0:
|
updateThingsString = '''V1.3.1:
|
||||||
|
※1、修复打包问题,防止部分用户安装出错的问题;
|
||||||
|
※2、修复了程序无法提取图标时可以提取默认图标使用;
|
||||||
|
|
||||||
|
V1.3.0:
|
||||||
※1、修改了界面布局;
|
※1、修改了界面布局;
|
||||||
※2、修复大多数新安装普通用户的路图标及启动菜单文件路径不存在导致安装APK报错的bugs;
|
※2、修复大多数新安装普通用户的路图标及启动菜单文件路径不存在导致安装APK报错的bugs;
|
||||||
3、删除少量冗余代码,调整代码顺序;
|
3、删除少量冗余代码,调整代码顺序;
|
||||||
@@ -468,16 +477,11 @@ V1.2.1:
|
|||||||
※1、进行了安装方式的修改(不使用 adb),修复原无法安装和卸载的问题;
|
※1、进行了安装方式的修改(不使用 adb),修复原无法安装和卸载的问题;
|
||||||
2、进行了部分优化;
|
2、进行了部分优化;
|
||||||
3、进行了功能缩水;
|
3、进行了功能缩水;
|
||||||
4、修复 deb 打包错误。
|
4、修复 deb 打包错误。'''
|
||||||
|
|
||||||
V1.2.0:
|
|
||||||
1、支持安装自动添加快捷方式、卸载删除快捷方式;
|
|
||||||
2、支持使用包名或 APK 文件卸载程序;
|
|
||||||
3、支持查看安装的所有包名;
|
|
||||||
4、进行了部分优化'''
|
|
||||||
title = "uengine 安装器 {}".format(version)
|
title = "uengine 安装器 {}".format(version)
|
||||||
updateTime = "2021年08月08日"
|
updateTime = "2021年08月08日"
|
||||||
updateThings = "{} 更新内容:\n{}\n更新时间:{}".format(version, updateThingsString, updateTime, time.strftime("%Y"))
|
updateThings = "{} 更新内容:\n{}\n更新时间:{}".format(version, updateThingsString, updateTime, time.strftime("%Y"))
|
||||||
|
programPath = os.path.split(os.path.realpath(__file__))[0] # 返回 string
|
||||||
iconPath = "{}/icon.png".format(os.path.split(os.path.realpath(__file__))[0])
|
iconPath = "{}/icon.png".format(os.path.split(os.path.realpath(__file__))[0])
|
||||||
desktop = "/opt/apps/uengine-runner/UengineAndroidProgramList.desktop"
|
desktop = "/opt/apps/uengine-runner/UengineAndroidProgramList.desktop"
|
||||||
desktopName = "UengineAndroidProgramList.desktop"
|
desktopName = "UengineAndroidProgramList.desktop"
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user