Reformat and clean up code, fix typos
This commit is contained in:
@@ -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).
|
||||
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.
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
from InquirerPy import inquirer
|
||||
from InquirerPy.base.control import Choice
|
||||
from InquirerPy.separator import Separator
|
||||
import argparse
|
||||
import os
|
||||
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.fdroidpriv import FDroidPriv
|
||||
from stuff.gapps import Gapps
|
||||
from stuff.general import General
|
||||
from stuff.hidestatusbar import HideStatusBar
|
||||
@@ -17,13 +20,8 @@ from stuff.ndk import Ndk
|
||||
from stuff.nodataperm import Nodataperm
|
||||
from stuff.smartdock import Smartdock
|
||||
from stuff.widevine import Widevine
|
||||
from stuff.fdroidpriv import FDroidPriv
|
||||
import tools.helper as helper
|
||||
from tools import container
|
||||
from tools import images
|
||||
|
||||
import argparse
|
||||
|
||||
from tools.logger import Logger
|
||||
|
||||
|
||||
@@ -280,9 +278,8 @@ def interact():
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='''
|
||||
Does stuff like installing Gapps, installing Magisk, installing NDK Translation and getting Android ID for device registration.
|
||||
Use -h flag for help!''')
|
||||
parser = argparse.ArgumentParser(description='''Does stuff like installing Aapps, installing Magisk, installing
|
||||
NDK Translation, and getting Android ID for device registration. Use -h flag for help!''')
|
||||
|
||||
subparsers = parser.add_subparsers(title="coomand", dest='command')
|
||||
parser.add_argument('-a', '--android-version',
|
||||
@@ -311,10 +308,10 @@ def main():
|
||||
|
||||
install_help = """
|
||||
gapps: Install Open GApps (Android 11) or MindTheGapps (Android 13)
|
||||
microg: Add microG, Aurora Store and Aurora Droid to WayDriod
|
||||
libndk: Add libndk arm translation, better for AMD CPUs
|
||||
libhoudini: Add libhoudini arm translation, better for Intel CPUs
|
||||
magisk: Install Magisk Delta to WayDroid
|
||||
microg: Add microG, Aurora Store, and Aurora Droid to WayDroid
|
||||
libndk: Add libndk ARM translation, better for AMD CPUs
|
||||
libhoudini: Add libhoudini ARM translation, better for Intel CPUs
|
||||
magisk: Install Magisk Delta to Waydroid
|
||||
mitm -c CA_CERT_FILE: Install root CA cert into system trust store
|
||||
smartdock: A desktop mode launcher for Android
|
||||
widevine: Add support for widevine DRM L3
|
||||
|
||||
+2
-1
@@ -1,5 +1,6 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from stuff.general import General
|
||||
|
||||
|
||||
@@ -24,6 +25,7 @@ class FDroidPriv(General):
|
||||
"F-Droid.apk": "app/F-Droid/F-Droid.apk",
|
||||
"F-DroidPrivilegedExtension.apk": "priv-app/F-DroidPrivilegedExtension/F-DroidPrivilegedExtension.apk",
|
||||
}
|
||||
|
||||
def __init__(self, android_version="11") -> None:
|
||||
super().__init__()
|
||||
self.dl_link = self.dl_links[android_version][0]
|
||||
@@ -37,4 +39,3 @@ class FDroidPriv(General):
|
||||
if not os.path.exists(rro_dir):
|
||||
os.makedirs(rro_dir)
|
||||
shutil.copyfile(os.path.join(self.extract_to, f), rro_file)
|
||||
|
||||
|
||||
+31
-11
@@ -1,5 +1,6 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from stuff.general import General
|
||||
from tools.helper import run
|
||||
|
||||
@@ -9,16 +10,32 @@ class Gapps(General):
|
||||
partition = "system"
|
||||
dl_links = {
|
||||
"11": {
|
||||
"x86_64": ["https://sourceforge.net/projects/opengapps/files/x86_64/20220503/open_gapps-x86_64-11.0-pico-20220503.zip", "5a6d242be34ad1acf92899c7732afa1b"],
|
||||
"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"]
|
||||
"x86_64": [
|
||||
"https://sourceforge.net/projects/opengapps/files/x86_64/20220503/open_gapps-x86_64-11.0-pico-20220503.zip",
|
||||
"5a6d242be34ad1acf92899c7732afa1b"],
|
||||
"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": {
|
||||
"x86_64": ["https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-x86_64-20231028.zip", "63ccebbf93d45c384f58d7c40049d398"],
|
||||
"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"]
|
||||
"x86_64": [
|
||||
"https://github.com/s1204IT/MindTheGappsBuilder/releases/download/20231028/MindTheGapps-13.0.0-x86_64-20231028.zip",
|
||||
"63ccebbf93d45c384f58d7c40049d398"],
|
||||
"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 = ...
|
||||
@@ -124,7 +141,8 @@ class Gapps(General):
|
||||
print(" Processing app package : " +
|
||||
os.path.join(self.extract_to, "Core", lz_file))
|
||||
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(
|
||||
self.extract_to, "appunpack"))[0]
|
||||
xx_dpi = os.listdir(os.path.join(
|
||||
@@ -145,13 +163,15 @@ class Gapps(General):
|
||||
print(" Processing extra package : " +
|
||||
os.path.join(self.extract_to, "Core", lz_file))
|
||||
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(
|
||||
self.extract_to, "appunpack"))[0]
|
||||
common_content_dirs = os.listdir(os.path.join(
|
||||
self.extract_to, "appunpack", app_name, "common"))
|
||||
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)
|
||||
|
||||
def copy_13(self):
|
||||
|
||||
+3
-2
@@ -1,11 +1,12 @@
|
||||
import configparser
|
||||
import glob
|
||||
import hashlib
|
||||
import os
|
||||
import shutil
|
||||
import zipfile
|
||||
import hashlib
|
||||
from tools.helper import download_file, get_download_dir, host
|
||||
|
||||
from tools import container
|
||||
from tools.helper import download_file, get_download_dir, host
|
||||
from tools.logger import Logger
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from stuff.general import General
|
||||
|
||||
|
||||
@@ -14,6 +15,7 @@ class HideStatusBar(General):
|
||||
files = [
|
||||
"product/overlay/" + dl_file_name
|
||||
]
|
||||
|
||||
def __init__(self, android_version="11") -> None:
|
||||
super().__init__()
|
||||
self.dl_link = self.dl_links[android_version][0]
|
||||
|
||||
+4
-1
@@ -1,6 +1,7 @@
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
|
||||
from stuff.general import General
|
||||
from tools.logger import Logger
|
||||
|
||||
@@ -9,7 +10,9 @@ class Houdini(General):
|
||||
id = "libhoudini"
|
||||
partition = "system"
|
||||
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"]
|
||||
}
|
||||
act_md5 = ...
|
||||
|
||||
+7
-4
@@ -1,11 +1,13 @@
|
||||
import gzip
|
||||
import os
|
||||
import shutil
|
||||
import re
|
||||
import shutil
|
||||
|
||||
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.helper import download_file, get_data_dir
|
||||
from tools.logger import Logger
|
||||
|
||||
|
||||
class Magisk(General):
|
||||
id = "magisk delta"
|
||||
@@ -84,7 +86,8 @@ on property:init.svc.zygote=stopped
|
||||
n_path = os.path.join(magisk_absolute_dir, filename.group(1))
|
||||
shutil.copyfile(o_path, n_path)
|
||||
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 = [
|
||||
"addon.d.sh",
|
||||
"boot_patch.sh",
|
||||
|
||||
+3
-1
@@ -1,5 +1,6 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from stuff.general import General
|
||||
from tools.logger import Logger
|
||||
|
||||
@@ -135,7 +136,8 @@ service microg_service /system/bin/sh /system/bin/npem
|
||||
sdks.append(i)
|
||||
elif 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
|
||||
else:
|
||||
flag = True
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from stuff.general import General
|
||||
from tools.helper import run
|
||||
from tools.logger import Logger
|
||||
|
||||
|
||||
class Mitm(General):
|
||||
id = "mitm"
|
||||
partition = "system"
|
||||
|
||||
+8
-2
@@ -1,15 +1,21 @@
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
|
||||
from stuff.general import General
|
||||
from tools.logger import Logger
|
||||
|
||||
|
||||
class Ndk(General):
|
||||
id = "libndk"
|
||||
partition = "system"
|
||||
dl_links = {
|
||||
"11": ["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"]
|
||||
"11": [
|
||||
"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"
|
||||
extract_to = "/tmp/libndkunpack"
|
||||
|
||||
+2
-1
@@ -1,10 +1,11 @@
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
|
||||
from stuff.general import General
|
||||
from tools import container
|
||||
from tools.helper import backup, restore
|
||||
from tools.logger import Logger
|
||||
from tools import container
|
||||
|
||||
|
||||
class Nodataperm(General):
|
||||
|
||||
+5
-1
@@ -1,7 +1,9 @@
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from stuff.general import General
|
||||
|
||||
|
||||
class Smartdock(General):
|
||||
id = "smartdock"
|
||||
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),
|
||||
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)
|
||||
|
||||
rc_dir = os.path.join(self.copy_dir, self.partition, "etc/init/smartdock.rc")
|
||||
|
||||
+7
-3
@@ -1,6 +1,7 @@
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
|
||||
from stuff.general import General
|
||||
from tools.logger import Logger
|
||||
|
||||
@@ -11,14 +12,17 @@ class Widevine(General):
|
||||
dl_links = {
|
||||
# "x86": ["https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt/archive/94c9ee172e3d78fecc81863f50a59e3646f7a2bd.zip", "a31f325453c5d239c21ecab8cfdbd878"],
|
||||
"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"],
|
||||
"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"]
|
||||
},
|
||||
# "armeabi-v7a": ["https://github.com/supremegamers/vendor_google_proprietary_widevine-prebuilt/archive/a1a19361d36311bee042da8cf4ced798d2c76d98.zip", "fed6898b5cfd2a908cb134df97802554"],
|
||||
"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"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import configparser
|
||||
import os
|
||||
import sys
|
||||
|
||||
# import dbus
|
||||
from tools.helper import run
|
||||
from tools.logger import Logger
|
||||
|
||||
|
||||
# def DBusContainerService(object_path="/ContainerManager", intf="id.waydro.ContainerManager"):
|
||||
# return dbus.Interface(dbus.SystemBus().get_object("id.waydro.Container", object_path), intf)
|
||||
|
||||
@@ -49,5 +51,6 @@ def stop():
|
||||
def is_running():
|
||||
return "Session:\tRUNNING" in run(["waydroid", "status"]).stdout.decode()
|
||||
|
||||
|
||||
def upgrade():
|
||||
run(["waydroid", "upgrade", "-o"], ignore=r"\[.*\] Stopping container\n\[.*\] Starting container")
|
||||
+17
-7
@@ -1,16 +1,17 @@
|
||||
import gzip
|
||||
import hashlib
|
||||
import os
|
||||
import re
|
||||
import platform
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
import requests
|
||||
from tools.logger import Logger
|
||||
from tqdm import tqdm
|
||||
import hashlib
|
||||
from typing import Optional
|
||||
|
||||
import requests
|
||||
from tqdm import tqdm
|
||||
|
||||
from tools.logger import Logger
|
||||
|
||||
|
||||
def get_download_dir():
|
||||
download_loc = ""
|
||||
@@ -26,9 +27,12 @@ def get_download_dir():
|
||||
os.makedirs(download_loc)
|
||||
return download_loc
|
||||
|
||||
|
||||
# not good
|
||||
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
|
||||
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
|
||||
|
||||
|
||||
# execute on waydroid shell
|
||||
def shell(arg: str, env: Optional[str] = None):
|
||||
a = subprocess.Popen(
|
||||
@@ -61,7 +66,8 @@ def shell(arg: str, env: Optional[str] = None):
|
||||
stderr=subprocess.PIPE
|
||||
)
|
||||
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,
|
||||
stdin=subprocess.PIPE
|
||||
).communicate()
|
||||
@@ -89,6 +95,7 @@ def shell(arg: str, env: Optional[str] = None):
|
||||
)
|
||||
return a.stdout.read().decode("utf-8")
|
||||
|
||||
|
||||
def download_file(url, f_name):
|
||||
md5 = ""
|
||||
response = requests.get(url, stream=True)
|
||||
@@ -107,6 +114,7 @@ def download_file(url, f_name):
|
||||
raise ValueError("Something went wrong while downloading")
|
||||
return md5
|
||||
|
||||
|
||||
def host():
|
||||
machine = platform.machine()
|
||||
|
||||
@@ -133,12 +141,14 @@ def check_root():
|
||||
Logger.error("This script must be run as root. Aborting.")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def backup(path):
|
||||
gz_filename = path + ".gz"
|
||||
with gzip.open(gz_filename, 'wb') as f_gz:
|
||||
with open(path, "rb") as f:
|
||||
f_gz.write(f.read())
|
||||
|
||||
|
||||
def restore(path):
|
||||
gz_filename = path + ".gz"
|
||||
with gzip.GzipFile(gz_filename) as f_gz:
|
||||
|
||||
+5
-1
@@ -1,16 +1,18 @@
|
||||
import configparser
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
from tools.helper import run
|
||||
from tools.logger import Logger
|
||||
|
||||
|
||||
def mount(image, mount_point):
|
||||
umount(mount_point, False)
|
||||
if not os.path.exists(mount_point):
|
||||
os.makedirs(mount_point)
|
||||
run(["mount", "-o", "rw", image, mount_point])
|
||||
|
||||
|
||||
def umount(mount_point, exists=True):
|
||||
if not os.path.exists(mount_point):
|
||||
if not exists:
|
||||
@@ -23,10 +25,12 @@ def umount(mount_point, exists=True):
|
||||
Logger.warning("{} is not a mount point".format(
|
||||
mount_point))
|
||||
|
||||
|
||||
def resize(img_file, size):
|
||||
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$")
|
||||
|
||||
|
||||
def get_image_dir():
|
||||
# Read waydroid config to get image location
|
||||
cfg = configparser.ConfigParser()
|
||||
|
||||
Reference in New Issue
Block a user