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).
|
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.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user