Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 21 additions & 52 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,45 +21,29 @@
import tools.helper as helper
from tools import container
from tools import images

import argparse

from tools.logger import Logger


def get_certified(args):
def get_certified():
AndroidId().get_id()


def mount(partition, copy_dir):
img = os.path.join(images.get_image_dir(), partition+".img")
mount_point = ""
if partition == "system":
mount_point = os.path.join(copy_dir)
else:
mount_point = os.path.join(copy_dir, partition)
Logger.info("Mounting {} to {}".format(img, mount_point))
img = os.path.join(images.get_image_dir(), f"{partition}.img")
mount_point = os.path.join(copy_dir) if partition == "system" else os.path.join(copy_dir, partition)
Logger.info(f"Mounting {img} to {mount_point}")
images.mount(img, mount_point)


def resize(partition):
img = os.path.join(images.get_image_dir(), partition+".img")
img_size = int(os.path.getsize(img)/(1024*1024))
new_size = "{}M".format(img_size+500)
Logger.info("Resizing {} to {}".format(img, new_size))
img = os.path.join(images.get_image_dir(), f"{partition}.img")
img_size = int(os.path.getsize(img) / (1024 * 1024))
new_size = f"{img_size + 500}M"
Logger.info(f"Resizing {img} to {new_size}")
images.resize(img, new_size)


def umount(partition, copy_dir):
mount_point = ""
if partition == "system":
mount_point = os.path.join(copy_dir)
else:
mount_point = os.path.join(copy_dir, partition)
Logger.info("Umounting {}".format(mount_point))
mount_point = os.path.join(copy_dir) if partition == "system" else os.path.join(copy_dir, partition)
Logger.info(f"Unmounting {mount_point}")
images.umount(mount_point)


def install_app(args):
install_list: List[General] = []
app = args.app
Expand Down Expand Up @@ -118,7 +102,6 @@ def install_app(args):

container.upgrade()


def remove_app(args):
remove_list: List[General] = []
app = args.app
Expand Down Expand Up @@ -158,10 +141,8 @@ def remove_app(args):

container.upgrade()


def hack_option(args):
Logger.warning(
"If these hacks cause any problems, run `sudo python main.py remove <hack_option>` to remove")
Logger.warning("If these hacks cause any problems, run `sudo python main.py remove <hack_option>` to remove")

hack_list: List[General] = []
options = args.option_name
Expand Down Expand Up @@ -198,10 +179,8 @@ def hack_option(args):

container.upgrade()


def interact():
os.system("clear")
args = argparse.Namespace()
android_version = inquirer.select(
message="Select Android version",
instruction="(\u2191\u2193 Select Item)",
Expand All @@ -214,15 +193,12 @@ def interact():
).execute()
if not android_version:
exit()
args.android_version = android_version

args = argparse.Namespace(android_version=android_version, microg_variant="Standard")

action = inquirer.select(
message="Please select an action",
choices=[
"Install",
"Remove",
"Hack",
"Get Google Device ID to Get Certified"
],
choices=["Install", "Remove", "Hack", "Get Google Device ID to Get Certified"],
instruction="([↑↓]: Select Item)",
default=None,
).execute()
Expand All @@ -231,7 +207,7 @@ def interact():

install_choices = ["gapps", "microg", "libndk", "magisk", "smartdock", "fdroidpriv",]
hack_choices = []
if android_version=="11":
if android_version == "11":
install_choices.extend(["libhoudini", "widevine"])
hack_choices.extend(["nodataperm", "hidestatusbar"])

Expand All @@ -243,8 +219,7 @@ def interact():
invalid_message="should be at least 1 selection",
choices=install_choices
).execute()
microg_variants = ["Standard", "NoGoolag",
"UNLP", "Minimal", "MinimalIAP"]
microg_variants = ["Standard", "NoGoolag", "UNLP", "Minimal", "MinimalIAP"]
if "microg" in apps:
microg_variant = inquirer.select(
message="Select MicroG variant",
Expand All @@ -263,7 +238,7 @@ def interact():
choices=[*install_choices, *hack_choices]
).execute()
args.app = apps
args.microg_variant="Standard"
args.microg_variant = "Standard"
remove_app(args)
elif action == "Hack":
apps = inquirer.checkbox(
Expand All @@ -276,15 +251,14 @@ def interact():
args.option_name = apps
hack_option(args)
elif action == "Get Google Device ID to Get Certified":
AndroidId().get_id()

get_certified()

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!''')

subparsers = parser.add_subparsers(title="coomand", dest='command')
subparsers = parser.add_subparsers(title="command", dest='command')
parser.add_argument('-a', '--android-version',
dest='android_version',
help='Specify the Android version',
Expand All @@ -296,8 +270,7 @@ def main():
'certified', help='Get device ID to obtain Play Store certification')
certified.set_defaults(func=get_certified)

install_choices = ["gapps", "microg", "libndk", "libhoudini",
"magisk", "mitm", "smartdock", "widevine"]
install_choices = ["gapps", "microg", "libndk", "libhoudini", "magisk", "mitm", "smartdock", "widevine"]
hack_choices = ["nodataperm", "hidestatusbar"]
micrg_variants = ["Standard", "NoGoolag", "UNLP", "Minimal", "MinimalIAP"]
remove_choices = install_choices
Expand All @@ -306,7 +279,6 @@ def main():
"dest": "app",
"type": str,
"nargs": '+',
# "metavar":"",
}

install_help = """
Expand Down Expand Up @@ -344,15 +316,12 @@ def main():
hack_parser.set_defaults(func=hack_option)

args = parser.parse_args()
args.microg_variant = "Standard"
if hasattr(args, 'func'):
args_dict = vars(args)
helper.check_root()
args.func(args)
else:
helper.check_root()
interact()


if __name__ == "__main__":
main()