Reformat and clean up code, fix typos

This commit is contained in:
Kazevic
2024-07-01 01:24:49 -03:00
parent 8a94de00be
commit 5bf33e6415
19 changed files with 190 additions and 127 deletions
+1 -1
View File
@@ -146,7 +146,7 @@ This is a temporary hack to combat against the apps permission issue on Android
always enable a property (persist.sys.nodataperm) to make it execute a script to grant the data full permissions (777). always enable a property (persist.sys.nodataperm) to make it execute a script to grant the data full permissions (777).
The **correct** way is to use `sdcardfs` or `esdfs`, both need to recompile the kernel or WayDroid image. The **correct** way is to use `sdcardfs` or `esdfs`, both need to recompile the kernel or WayDroid image.
Arknights, PUNISHING: GRAY RAVEN and other games won't freeze on the black screen. Arknights, PUNISHING: GRAY RAVEN, and other games won't freeze on the black screen.
![](assets/6.png) ![](assets/6.png)
+12 -15
View File
@@ -1,11 +1,14 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from InquirerPy import inquirer
from InquirerPy.base.control import Choice
from InquirerPy.separator import Separator
import argparse import argparse
import os import os
from typing import List from typing import List
from InquirerPy import inquirer
from InquirerPy.base.control import Choice
import tools.helper as helper
from stuff.android_id import AndroidId from stuff.android_id import AndroidId
from stuff.fdroidpriv import FDroidPriv
from stuff.gapps import Gapps from stuff.gapps import Gapps
from stuff.general import General from stuff.general import General
from stuff.hidestatusbar import HideStatusBar from stuff.hidestatusbar import HideStatusBar
@@ -17,13 +20,8 @@ from stuff.ndk import Ndk
from stuff.nodataperm import Nodataperm from stuff.nodataperm import Nodataperm
from stuff.smartdock import Smartdock from stuff.smartdock import Smartdock
from stuff.widevine import Widevine from stuff.widevine import Widevine
from stuff.fdroidpriv import FDroidPriv
import tools.helper as helper
from tools import container from tools import container
from tools import images from tools import images
import argparse
from tools.logger import Logger from tools.logger import Logger
@@ -280,9 +278,8 @@ def interact():
def main(): def main():
parser = argparse.ArgumentParser(description=''' parser = argparse.ArgumentParser(description='''Does stuff like installing Aapps, installing Magisk, installing
Does stuff like installing Gapps, installing Magisk, installing NDK Translation and getting Android ID for device registration. NDK Translation, and getting Android ID for device registration. Use -h flag for help!''')
Use -h flag for help!''')
subparsers = parser.add_subparsers(title="coomand", dest='command') subparsers = parser.add_subparsers(title="coomand", dest='command')
parser.add_argument('-a', '--android-version', parser.add_argument('-a', '--android-version',
@@ -311,10 +308,10 @@ def main():
install_help = """ install_help = """
gapps: Install Open GApps (Android 11) or MindTheGapps (Android 13) gapps: Install Open GApps (Android 11) or MindTheGapps (Android 13)
microg: Add microG, Aurora Store and Aurora Droid to WayDriod microg: Add microG, Aurora Store, and Aurora Droid to WayDroid
libndk: Add libndk arm translation, better for AMD CPUs libndk: Add libndk ARM translation, better for AMD CPUs
libhoudini: Add libhoudini arm translation, better for Intel CPUs libhoudini: Add libhoudini ARM translation, better for Intel CPUs
magisk: Install Magisk Delta to WayDroid magisk: Install Magisk Delta to Waydroid
mitm -c CA_CERT_FILE: Install root CA cert into system trust store mitm -c CA_CERT_FILE: Install root CA cert into system trust store
smartdock: A desktop mode launcher for Android smartdock: A desktop mode launcher for Android
widevine: Add support for widevine DRM L3 widevine: Add support for widevine DRM L3
+2 -1
View File
@@ -1,5 +1,6 @@
import os import os
import shutil import shutil
from stuff.general import General from stuff.general import General
@@ -24,6 +25,7 @@ class FDroidPriv(General):
"F-Droid.apk": "app/F-Droid/F-Droid.apk", "F-Droid.apk": "app/F-Droid/F-Droid.apk",
"F-DroidPrivilegedExtension.apk": "priv-app/F-DroidPrivilegedExtension/F-DroidPrivilegedExtension.apk", "F-DroidPrivilegedExtension.apk": "priv-app/F-DroidPrivilegedExtension/F-DroidPrivilegedExtension.apk",
} }
def __init__(self, android_version="11") -> None: def __init__(self, android_version="11") -> None:
super().__init__() super().__init__()
self.dl_link = self.dl_links[android_version][0] self.dl_link = self.dl_links[android_version][0]
@@ -37,4 +39,3 @@ class FDroidPriv(General):
if not os.path.exists(rro_dir): if not os.path.exists(rro_dir):
os.makedirs(rro_dir) os.makedirs(rro_dir)
shutil.copyfile(os.path.join(self.extract_to, f), rro_file) shutil.copyfile(os.path.join(self.extract_to, f), rro_file)
+31 -11
View File
@@ -1,5 +1,6 @@
import os import os
import shutil import shutil
from stuff.general import General from stuff.general import General
from tools.helper import run from tools.helper import run
@@ -9,16 +10,32 @@ class Gapps(General):
partition = "system" partition = "system"
dl_links = { dl_links = {
"11": { "11": {
"x86_64": ["https://sourceforge.net/projects/opengapps/files/x86_64/20220503/open_gapps-x86_64-11.0-pico-20220503.zip", "5a6d242be34ad1acf92899c7732afa1b"], "x86_64": [
"x86": ["https://sourceforge.net/projects/opengapps/files/x86/20220503/open_gapps-x86-11.0-pico-20220503.zip", "efda4943076016d00b40e0874b12ddd3"], "https://sourceforge.net/projects/opengapps/files/x86_64/20220503/open_gapps-x86_64-11.0-pico-20220503.zip",
"arm64-v8a": ["https://sourceforge.net/projects/opengapps/files/arm64/20220503/open_gapps-arm64-11.0-pico-20220503.zip", "7790055d34bbfc6fe610b0cd263a7add"], "5a6d242be34ad1acf92899c7732afa1b"],
"armeabi-v7a": ["https://sourceforge.net/projects/opengapps/files/arm/20220215/open_gapps-arm-11.0-pico-20220215.zip", "8719519fa32ae83a62621c6056d32814"] "x86": [
"https://sourceforge.net/projects/opengapps/files/x86/20220503/open_gapps-x86-11.0-pico-20220503.zip",
"efda4943076016d00b40e0874b12ddd3"],
"arm64-v8a": [
"https://sourceforge.net/projects/opengapps/files/arm64/20220503/open_gapps-arm64-11.0-pico-20220503.zip",
"7790055d34bbfc6fe610b0cd263a7add"],
"armeabi-v7a": [
"https://sourceforge.net/projects/opengapps/files/arm/20220215/open_gapps-arm-11.0-pico-20220215.zip",
"8719519fa32ae83a62621c6056d32814"]
}, },
"13": { "13": {
"x86_64": ["https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-x86_64-20231028.zip", "63ccebbf93d45c384f58d7c40049d398"], "x86_64": [
"x86": ["https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-x86-20231028.zip", "f12b6a8ed14eedbb4b5b3c932a865956"], "https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-x86_64-20231028.zip",
"arm64-v8a": ["https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-arm64-20231028.zip", "11180da0a5d9f2ed2863882c30a8d556"], "63ccebbf93d45c384f58d7c40049d398"],
"armeabi-v7a": ["https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-arm-20231028.zip", "d525c980bac427844aa4cb01628f8a8f"] "x86": [
"https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-x86-20231028.zip",
"f12b6a8ed14eedbb4b5b3c932a865956"],
"arm64-v8a": [
"https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-arm64-20231028.zip",
"11180da0a5d9f2ed2863882c30a8d556"],
"armeabi-v7a": [
"https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-arm-20231028.zip",
"d525c980bac427844aa4cb01628f8a8f"]
} }
} }
android_version = ... android_version = ...
@@ -124,7 +141,8 @@ class Gapps(General):
print(" Processing app package : " + print(" Processing app package : " +
os.path.join(self.extract_to, "Core", lz_file)) os.path.join(self.extract_to, "Core", lz_file))
run(["tar", "--lzip", "-xvf", os.path.join(self.extract_to, "Core", run(["tar", "--lzip", "-xvf", os.path.join(self.extract_to, "Core",
lz_file), "-C", os.path.join(self.extract_to, "appunpack")]) lz_file), "-C",
os.path.join(self.extract_to, "appunpack")])
app_name = os.listdir(os.path.join( app_name = os.listdir(os.path.join(
self.extract_to, "appunpack"))[0] self.extract_to, "appunpack"))[0]
xx_dpi = os.listdir(os.path.join( xx_dpi = os.listdir(os.path.join(
@@ -145,13 +163,15 @@ class Gapps(General):
print(" Processing extra package : " + print(" Processing extra package : " +
os.path.join(self.extract_to, "Core", lz_file)) os.path.join(self.extract_to, "Core", lz_file))
run(["tar", "--lzip", "-xvf", os.path.join(self.extract_to, "Core", run(["tar", "--lzip", "-xvf", os.path.join(self.extract_to, "Core",
lz_file), "-C", os.path.join(self.extract_to, "appunpack")]) lz_file), "-C",
os.path.join(self.extract_to, "appunpack")])
app_name = os.listdir(os.path.join( app_name = os.listdir(os.path.join(
self.extract_to, "appunpack"))[0] self.extract_to, "appunpack"))[0]
common_content_dirs = os.listdir(os.path.join( common_content_dirs = os.listdir(os.path.join(
self.extract_to, "appunpack", app_name, "common")) self.extract_to, "appunpack", app_name, "common"))
for ccdir in common_content_dirs: for ccdir in common_content_dirs:
shutil.copytree(os.path.join(self.extract_to, "appunpack", app_name, "common", ccdir), os.path.join( shutil.copytree(os.path.join(self.extract_to, "appunpack", app_name, "common", ccdir),
os.path.join(
self.copy_dir, self.partition, ccdir), dirs_exist_ok=True) self.copy_dir, self.partition, ccdir), dirs_exist_ok=True)
def copy_13(self): def copy_13(self):
+3 -2
View File
@@ -1,11 +1,12 @@
import configparser import configparser
import glob import glob
import hashlib
import os import os
import shutil import shutil
import zipfile import zipfile
import hashlib
from tools.helper import download_file, get_download_dir, host
from tools import container from tools import container
from tools.helper import download_file, get_download_dir, host
from tools.logger import Logger from tools.logger import Logger
+2
View File
@@ -1,5 +1,6 @@
import os import os
import shutil import shutil
from stuff.general import General from stuff.general import General
@@ -14,6 +15,7 @@ class HideStatusBar(General):
files = [ files = [
"product/overlay/" + dl_file_name "product/overlay/" + dl_file_name
] ]
def __init__(self, android_version="11") -> None: def __init__(self, android_version="11") -> None:
super().__init__() super().__init__()
self.dl_link = self.dl_links[android_version][0] self.dl_link = self.dl_links[android_version][0]
+4 -1
View File
@@ -1,6 +1,7 @@
import os import os
import re import re
import shutil import shutil
from stuff.general import General from stuff.general import General
from tools.logger import Logger from tools.logger import Logger
@@ -9,7 +10,9 @@ class Houdini(General):
id = "libhoudini" id = "libhoudini"
partition = "system" partition = "system"
dl_links = { dl_links = {
"11": ["https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/81f2a51ef539a35aead396ab7fce2adf89f46e88.zip", "fbff756612b4144797fbc99eadcb6653"], "11": [
"https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/81f2a51ef539a35aead396ab7fce2adf89f46e88.zip",
"fbff756612b4144797fbc99eadcb6653"],
# "13": ["https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/978d8cba061a08837b7e520cd03b635af643ba08.zip", "1e139054c05034648fae58a1810573b4"] # "13": ["https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/978d8cba061a08837b7e520cd03b635af643ba08.zip", "1e139054c05034648fae58a1810573b4"]
} }
act_md5 = ... act_md5 = ...
+7 -4
View File
@@ -1,11 +1,13 @@
import gzip import gzip
import os import os
import shutil
import re import re
import shutil
from stuff.general import General from stuff.general import General
from tools.helper import download_file, get_data_dir, host
from tools.logger import Logger
from tools import container from tools import container
from tools.helper import download_file, get_data_dir
from tools.logger import Logger
class Magisk(General): class Magisk(General):
id = "magisk delta" id = "magisk delta"
@@ -84,7 +86,8 @@ on property:init.svc.zygote=stopped
n_path = os.path.join(magisk_absolute_dir, filename.group(1)) n_path = os.path.join(magisk_absolute_dir, filename.group(1))
shutil.copyfile(o_path, n_path) shutil.copyfile(o_path, n_path)
shutil.copyfile(self.download_loc, os.path.join(magisk_absolute_dir, "magisk.apk")) shutil.copyfile(self.download_loc, os.path.join(magisk_absolute_dir, "magisk.apk"))
shutil.copytree(os.path.join(self.extract_to, "assets", "chromeos"), os.path.join(magisk_absolute_dir, "chromeos"), dirs_exist_ok=True) shutil.copytree(os.path.join(self.extract_to, "assets", "chromeos"),
os.path.join(magisk_absolute_dir, "chromeos"), dirs_exist_ok=True)
assets_files = [ assets_files = [
"addon.d.sh", "addon.d.sh",
"boot_patch.sh", "boot_patch.sh",
+3 -1
View File
@@ -1,5 +1,6 @@
import os import os
import shutil import shutil
from stuff.general import General from stuff.general import General
from tools.logger import Logger from tools.logger import Logger
@@ -135,7 +136,8 @@ service microg_service /system/bin/sh /system/bin/npem
sdks.append(i) sdks.append(i)
elif i: elif i:
archs.append(i) archs.append(i)
if len(archs) != 0 and arch not in archs and sub_arch not in archs or len(sdks) != 0 and str(self.sdk) not in sdks: if len(archs) != 0 and arch not in archs and sub_arch not in archs or len(sdks) != 0 and str(
self.sdk) not in sdks:
continue continue
else: else:
flag = True flag = True
+2
View File
@@ -1,9 +1,11 @@
import os import os
import shutil import shutil
from stuff.general import General from stuff.general import General
from tools.helper import run from tools.helper import run
from tools.logger import Logger from tools.logger import Logger
class Mitm(General): class Mitm(General):
id = "mitm" id = "mitm"
partition = "system" partition = "system"
+8 -2
View File
@@ -1,15 +1,21 @@
import os import os
import re import re
import shutil import shutil
from stuff.general import General from stuff.general import General
from tools.logger import Logger from tools.logger import Logger
class Ndk(General): class Ndk(General):
id = "libndk" id = "libndk"
partition = "system" partition = "system"
dl_links = { dl_links = {
"11": ["https://github.com/supremegamers/vendor_google_proprietary_ndk_translation-prebuilt/archive/9324a8914b649b885dad6f2bfd14a67e5d1520bf.zip", "c9572672d1045594448068079b34c350"], "11": [
"13": ["https://github.com/supremegamers/vendor_google_proprietary_ndk_translation-prebuilt/archive/a090003c60df53a9eadb2df09bd4fd2fa86ea629.zip", "e6f0d9fc28ebc427b59a3942a9a4ffc0"] "https://github.com/supremegamers/vendor_google_proprietary_ndk_translation-prebuilt/archive/9324a8914b649b885dad6f2bfd14a67e5d1520bf.zip",
"c9572672d1045594448068079b34c350"],
"13": [
"https://github.com/supremegamers/vendor_google_proprietary_ndk_translation-prebuilt/archive/a090003c60df53a9eadb2df09bd4fd2fa86ea629.zip",
"e6f0d9fc28ebc427b59a3942a9a4ffc0"]
} }
dl_file_name = "libndktranslation.zip" dl_file_name = "libndktranslation.zip"
extract_to = "/tmp/libndkunpack" extract_to = "/tmp/libndkunpack"
+2 -1
View File
@@ -1,10 +1,11 @@
import os import os
import re import re
import shutil import shutil
from stuff.general import General from stuff.general import General
from tools import container
from tools.helper import backup, restore from tools.helper import backup, restore
from tools.logger import Logger from tools.logger import Logger
from tools import container
class Nodataperm(General): class Nodataperm(General):
+5 -1
View File
@@ -1,7 +1,9 @@
import os import os
import shutil import shutil
from stuff.general import General from stuff.general import General
class Smartdock(General): class Smartdock(General):
id = "smartdock" id = "smartdock"
dl_link = "https://f-droid.org/repo/cu.axel.smartdock_1100.apk" dl_link = "https://f-droid.org/repo/cu.axel.smartdock_1100.apk"
@@ -56,7 +58,9 @@ service set_home_activity /system/bin/sh -c "cmd package set-home-activity cu.ax
shutil.copyfile(os.path.join(self.download_loc), shutil.copyfile(os.path.join(self.download_loc),
os.path.join(self.copy_dir, self.partition, "priv-app/SmartDock/smartdock.apk")) os.path.join(self.copy_dir, self.partition, "priv-app/SmartDock/smartdock.apk"))
with open(os.path.join(self.copy_dir, self.partition, "etc", "permissions", "permissions_cu.axel.smartdock.xml"), "w") as f: with open(
os.path.join(self.copy_dir, self.partition, "etc", "permissions", "permissions_cu.axel.smartdock.xml"),
"w") as f:
f.write(self.permissions) f.write(self.permissions)
rc_dir = os.path.join(self.copy_dir, self.partition, "etc/init/smartdock.rc") rc_dir = os.path.join(self.copy_dir, self.partition, "etc/init/smartdock.rc")
+7 -3
View File
@@ -1,6 +1,7 @@
import os import os
import re import re
import shutil import shutil
from stuff.general import General from stuff.general import General
from tools.logger import Logger from tools.logger import Logger
@@ -11,14 +12,17 @@ class Widevine(General):
dl_links = { dl_links = {
# "x86": ["https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt/archive/94c9ee172e3d78fecc81863f50a59e3646f7a2bd.zip", "a31f325453c5d239c21ecab8cfdbd878"], # "x86": ["https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt/archive/94c9ee172e3d78fecc81863f50a59e3646f7a2bd.zip", "a31f325453c5d239c21ecab8cfdbd878"],
"x86_64": { "x86_64": {
"11": ["https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt/archive/48d1076a570837be6cdce8252d5d143363e37cc1.zip", "11": [
"https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt/archive/48d1076a570837be6cdce8252d5d143363e37cc1.zip",
"f587b8859f9071da4bca6cea1b9bed6a"], "f587b8859f9071da4bca6cea1b9bed6a"],
"13": ["https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt/archive/a8524d608431573ef1c9313822d271f78728f9a6.zip", "13": [
"https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt/archive/a8524d608431573ef1c9313822d271f78728f9a6.zip",
"5c55df61da5c012b4e43746547ab730f"] "5c55df61da5c012b4e43746547ab730f"]
}, },
# "armeabi-v7a": ["https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt/archive/a1a19361d36311bee042da8cf4ced798d2c76d98.zip", "fed6898b5cfd2a908cb134df97802554"], # "armeabi-v7a": ["https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt/archive/a1a19361d36311bee042da8cf4ced798d2c76d98.zip", "fed6898b5cfd2a908cb134df97802554"],
"arm64-v8a": { "arm64-v8a": {
"11": ["https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt/archive/a1a19361d36311bee042da8cf4ced798d2c76d98.zip", "11": [
"https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt/archive/a1a19361d36311bee042da8cf4ced798d2c76d98.zip",
"fed6898b5cfd2a908cb134df97802554"] "fed6898b5cfd2a908cb134df97802554"]
} }
} }
+3
View File
@@ -1,10 +1,12 @@
import configparser import configparser
import os import os
import sys import sys
# import dbus # import dbus
from tools.helper import run from tools.helper import run
from tools.logger import Logger from tools.logger import Logger
# def DBusContainerService(object_path="/ContainerManager", intf="id.waydro.ContainerManager"): # def DBusContainerService(object_path="/ContainerManager", intf="id.waydro.ContainerManager"):
# return dbus.Interface(dbus.SystemBus().get_object("id.waydro.Container", object_path), intf) # return dbus.Interface(dbus.SystemBus().get_object("id.waydro.Container", object_path), intf)
@@ -49,5 +51,6 @@ def stop():
def is_running(): def is_running():
return "Session:\tRUNNING" in run(["waydroid", "status"]).stdout.decode() return "Session:\tRUNNING" in run(["waydroid", "status"]).stdout.decode()
def upgrade(): def upgrade():
run(["waydroid", "upgrade", "-o"], ignore=r"\[.*\] Stopping container\n\[.*\] Starting container") run(["waydroid", "upgrade", "-o"], ignore=r"\[.*\] Stopping container\n\[.*\] Starting container")
+17 -7
View File
@@ -1,16 +1,17 @@
import gzip import gzip
import hashlib
import os import os
import re
import platform import platform
import re import re
import subprocess import subprocess
import sys import sys
import requests
from tools.logger import Logger
from tqdm import tqdm
import hashlib
from typing import Optional from typing import Optional
import requests
from tqdm import tqdm
from tools.logger import Logger
def get_download_dir(): def get_download_dir():
download_loc = "" download_loc = ""
@@ -26,9 +27,12 @@ def get_download_dir():
os.makedirs(download_loc) os.makedirs(download_loc)
return download_loc return download_loc
# not good # not good
def get_data_dir(): def get_data_dir():
return os.path.join('/', "home", os.environ.get("SUDO_USER", os.environ["USER"]), ".local", "share", "waydroid", "data") return os.path.join('/', "home", os.environ.get("SUDO_USER", os.environ["USER"]), ".local", "share", "waydroid",
"data")
# execute on host # execute on host
def run(args: list, env: Optional[str] = None, ignore: Optional[str] = None): def run(args: list, env: Optional[str] = None, ignore: Optional[str] = None):
@@ -52,6 +56,7 @@ def run(args: list, env: Optional[str] = None, ignore: Optional[str] = None):
) )
return result return result
# execute on waydroid shell # execute on waydroid shell
def shell(arg: str, env: Optional[str] = None): def shell(arg: str, env: Optional[str] = None):
a = subprocess.Popen( a = subprocess.Popen(
@@ -61,7 +66,8 @@ def shell(arg: str, env: Optional[str] = None):
stderr=subprocess.PIPE stderr=subprocess.PIPE
) )
subprocess.Popen( subprocess.Popen(
args=["echo", "export BOOTCLASSPATH=/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/core-icu4j.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/framework-atb-backward-compatibility.jar:/apex/com.android.conscrypt/javalib/conscrypt.jar:/apex/com.android.media/javalib/updatable-media.jar:/apex/com.android.mediaprovider/javalib/framework-mediaprovider.jar:/apex/com.android.os.statsd/javalib/framework-statsd.jar:/apex/com.android.permission/javalib/framework-permission.jar:/apex/com.android.sdkext/javalib/framework-sdkextensions.jar:/apex/com.android.wifi/javalib/framework-wifi.jar:/apex/com.android.tethering/javalib/framework-tethering.jar"], args=["echo",
"export BOOTCLASSPATH=/apex/com.android.art/javalib/core-oj.jar:/apex/com.android.art/javalib/core-libart.jar:/apex/com.android.art/javalib/core-icu4j.jar:/apex/com.android.art/javalib/okhttp.jar:/apex/com.android.art/javalib/bouncycastle.jar:/apex/com.android.art/javalib/apache-xml.jar:/system/framework/framework.jar:/system/framework/ext.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/ims-common.jar:/system/framework/framework-atb-backward-compatibility.jar:/apex/com.android.conscrypt/javalib/conscrypt.jar:/apex/com.android.media/javalib/updatable-media.jar:/apex/com.android.mediaprovider/javalib/framework-mediaprovider.jar:/apex/com.android.os.statsd/javalib/framework-statsd.jar:/apex/com.android.permission/javalib/framework-permission.jar:/apex/com.android.sdkext/javalib/framework-sdkextensions.jar:/apex/com.android.wifi/javalib/framework-wifi.jar:/apex/com.android.tethering/javalib/framework-tethering.jar"],
stdout=a.stdin, stdout=a.stdin,
stdin=subprocess.PIPE stdin=subprocess.PIPE
).communicate() ).communicate()
@@ -89,6 +95,7 @@ def shell(arg: str, env: Optional[str] = None):
) )
return a.stdout.read().decode("utf-8") return a.stdout.read().decode("utf-8")
def download_file(url, f_name): def download_file(url, f_name):
md5 = "" md5 = ""
response = requests.get(url, stream=True) response = requests.get(url, stream=True)
@@ -107,6 +114,7 @@ def download_file(url, f_name):
raise ValueError("Something went wrong while downloading") raise ValueError("Something went wrong while downloading")
return md5 return md5
def host(): def host():
machine = platform.machine() machine = platform.machine()
@@ -133,12 +141,14 @@ def check_root():
Logger.error("This script must be run as root. Aborting.") Logger.error("This script must be run as root. Aborting.")
sys.exit(1) sys.exit(1)
def backup(path): def backup(path):
gz_filename = path + ".gz" gz_filename = path + ".gz"
with gzip.open(gz_filename, 'wb') as f_gz: with gzip.open(gz_filename, 'wb') as f_gz:
with open(path, "rb") as f: with open(path, "rb") as f:
f_gz.write(f.read()) f_gz.write(f.read())
def restore(path): def restore(path):
gz_filename = path + ".gz" gz_filename = path + ".gz"
with gzip.GzipFile(gz_filename) as f_gz: with gzip.GzipFile(gz_filename) as f_gz:
+5 -1
View File
@@ -1,16 +1,18 @@
import configparser import configparser
import os import os
import subprocess
import sys import sys
from tools.helper import run from tools.helper import run
from tools.logger import Logger from tools.logger import Logger
def mount(image, mount_point): def mount(image, mount_point):
umount(mount_point, False) umount(mount_point, False)
if not os.path.exists(mount_point): if not os.path.exists(mount_point):
os.makedirs(mount_point) os.makedirs(mount_point)
run(["mount", "-o", "rw", image, mount_point]) run(["mount", "-o", "rw", image, mount_point])
def umount(mount_point, exists=True): def umount(mount_point, exists=True):
if not os.path.exists(mount_point): if not os.path.exists(mount_point):
if not exists: if not exists:
@@ -23,10 +25,12 @@ def umount(mount_point, exists=True):
Logger.warning("{} is not a mount point".format( Logger.warning("{} is not a mount point".format(
mount_point)) mount_point))
def resize(img_file, size): def resize(img_file, size):
run(["sudo", "e2fsck", "-y", "-f", img_file], ignore="^e2fsck \d+\.\d+\.\d (.+)\n$") run(["sudo", "e2fsck", "-y", "-f", img_file], ignore="^e2fsck \d+\.\d+\.\d (.+)\n$")
run(["sudo", "resize2fs", img_file, size], ignore="^resize2fs \d+\.\d+\.\d (.+)\n$") run(["sudo", "resize2fs", img_file, size], ignore="^resize2fs \d+\.\d+\.\d (.+)\n$")
def get_image_dir(): def get_image_dir():
# Read waydroid config to get image location # Read waydroid config to get image location
cfg = configparser.ConfigParser() cfg = configparser.ConfigParser()