This repository has been archived by the owner on Feb 15, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 34
/
Copy pathRelease.py
135 lines (128 loc) · 6.4 KB
/
Release.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
import os
import Config
from NikGapps.Config.NikGappsConfig import NikGappsConfig
from NikGapps.Helper import Logs
from Build import Build
from NikGapps.Web.Upload import Upload
from NikGappsPackages import NikGappsPackages
from NikGapps.Helper.Export import Export
from NikGapps.Helper.C import C
from NikGapps.Helper.Cmd import Cmd
from NikGapps.Helper.AppSet import AppSet
from NikGapps.Helper.Package import Package
class Release:
@staticmethod
def zip(build_package_list, upload: Upload = None):
for pkg_type in build_package_list:
print("Currently Working on " + pkg_type)
os.environ['pkg_type'] = str(pkg_type)
if str(pkg_type).__contains__("addons"):
for app_set in NikGappsPackages.get_packages(pkg_type):
print("Building for " + str(app_set.title))
Release.zip_package(C.release_directory + C.dir_sep + str(
"addons") + C.dir_sep + "NikGapps-Addon-"
+ C.android_version_folder + "-" + app_set.title + "-" + str(
Logs.get_current_time()) + ".zip", [app_set], upload=upload)
elif str(pkg_type).lower() == "debloater":
file_name = C.release_directory + C.dir_sep + "Debloater-" + str(
Logs.get_current_time()) + ".zip"
z = Export(file_name)
config_obj = NikGappsConfig()
result = z.zip(app_set_list=config_obj.config_package_list,
config_string=config_obj.get_nikgapps_config())
if result[1] and Config.UPLOAD_FILES:
u = upload if upload is not None else Upload()
print("Uploading " + str(result[0]))
execution_status = u.upload(result[0])
print("Done")
return execution_status
else:
print("Failed to create zip!")
else:
if pkg_type in Config.BUILD_PACKAGE_LIST:
file_name = C.release_directory
file_name = file_name + C.dir_sep + Logs.get_file_name(pkg_type.lower(),
str(Config.TARGET_ANDROID_VERSION))
# Build the packages from the directory
print("Building for " + str(pkg_type))
Release.zip_package(file_name,
NikGappsPackages.get_packages(pkg_type), upload=upload)
else:
for app_set in NikGappsPackages.get_packages(pkg_type):
if app_set is None:
print("AppSet/Package Does not Exists: " + str(pkg_type))
else:
print("Building for " + str(app_set.title))
Release.zip_package(C.release_directory
+ C.dir_sep + "addons" + C.dir_sep + "NikGapps-Addon-"
+ C.android_version_folder + "-" + app_set.title + "-"
+ str(Logs.get_current_time()) + ".zip", [app_set], upload=upload)
os.environ['pkg_type'] = ''
@staticmethod
def zip_package(package_name, app_set_list, config_obj: NikGappsConfig = None, upload: Upload = None):
if config_obj is not None:
config_obj: NikGappsConfig
if config_obj.config_package_list.__len__() > 0:
app_set_list = config_obj.config_package_list
else:
config_obj = NikGappsConfig()
if app_set_list is not None and app_set_list.__len__() > 0:
file_name = package_name
config_obj.config_package_list = Build.build_from_directory(app_set_list)
print("Exporting " + str(file_name))
z = Export(file_name)
result = z.zip(app_set_list=config_obj.config_package_list, config_string=config_obj.get_nikgapps_config())
if result[1] and Config.UPLOAD_FILES:
u = upload if upload is not None else Upload()
print("Uploading " + str(result[0]))
execution_status = u.upload(result[0])
print("Done")
return execution_status
else:
print("Package List Empty!")
return False
@staticmethod
def package(fetch_package):
cmd = Cmd()
if fetch_package.lower() == "all":
fetch_package = "full"
if Config.ADB_ROOT_ENABLED:
if cmd.established_device_connection_as_root():
Config.ADB_ROOT_ENABLED = True
else:
print("Device not found! or failed to acquire Root permissions")
return []
return Release.fetch_packages(fetch_package)
@staticmethod
def fetch_packages(fetch_package):
# Get the list of packages that we want to pull from connected device
app_set_list = NikGappsPackages.get_packages(fetch_package)
# Fetch all the packages from the device
# We will check for errors here (need to make sure we pulled all the files we were looking for
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if app_set_list is None or app_set_list[0] is None:
return []
updated_pkg_list = []
failure_summary = ""
for app_set in app_set_list:
app_set: AppSet
message = "--> Working on " + app_set.title
print(message)
for pkg in app_set.package_list:
pkg: Package
pkg.validate()
failure_summary += pkg.failure_logs
message = pkg.package_title + " Ready to be fetched"
print(message)
if pkg.primary_app_location is not None or pkg.package_name is None \
or pkg.predefined_file_list.__len__() > 0:
pkg.pull_package_files(app_set.title)
failure_summary += pkg.failure_logs
message = pkg.package_title + " Successfully Fetched!"
print(message)
updated_pkg_list.append(pkg)
if not str(failure_summary).__eq__(""):
print("")
print("Failure Summary:")
print(failure_summary)
return updated_pkg_list