mirror of
https://github.com/ayasa520/redroid-script.git
synced 2026-02-24 16:35:08 +08:00
119 lines
4.8 KiB
Python
119 lines
4.8 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import argparse
|
|
from stuff.gapps import Gapps
|
|
from stuff.litegapps import LiteGapps
|
|
from stuff.magisk import Magisk
|
|
from stuff.mindthegapps import MindTheGapps
|
|
from stuff.ndk import Ndk
|
|
from stuff.houdini import Houdini
|
|
from stuff.houdini_hack import Houdini_Hack
|
|
from stuff.widevine import Widevine
|
|
import tools.helper as helper
|
|
import subprocess
|
|
|
|
|
|
def main():
|
|
dockerfile = ""
|
|
tags = []
|
|
parser = argparse.ArgumentParser(
|
|
formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
parser.add_argument('-a', '--android-version',
|
|
dest='android',
|
|
help='Specify the Android version to build',
|
|
default='11.0.0',
|
|
choices=['14.0.0', '13.0.0', '12.0.0', '12.0.0_64only', '11.0.0', '10.0.0', '9.0.0', '8.1.0'])
|
|
parser.add_argument('-g', '--install-gapps',
|
|
dest='gapps',
|
|
help='Install OpenGapps to ReDroid',
|
|
action='store_true')
|
|
parser.add_argument('-lg', '--install-litegapps',
|
|
dest='litegapps',
|
|
help='Install LiteGapps to ReDroid',
|
|
action='store_true')
|
|
parser.add_argument('-n', '--install-ndk-translation',
|
|
dest='ndk',
|
|
help='Install libndk translation files',
|
|
action='store_true')
|
|
parser.add_argument('-i', '--install-houdini',
|
|
dest='houdini',
|
|
help='Install houdini files',
|
|
action='store_true')
|
|
parser.add_argument('-mtg', '--install-mindthegapps',
|
|
dest='mindthegapps',
|
|
help='Install MindTheGapps to ReDroid',
|
|
action='store_true')
|
|
parser.add_argument('-m', '--install-magisk', dest='magisk',
|
|
help='Install Magisk ( Bootless )',
|
|
action='store_true')
|
|
parser.add_argument('-w', '--install-widevine', dest='widevine',
|
|
help='Integrate Widevine DRM (L3)',
|
|
action='store_true')
|
|
parser.add_argument('-c', '--container',
|
|
dest='container',
|
|
default='docker',
|
|
help='Specify container type',
|
|
choices=['docker', 'podman'])
|
|
|
|
args = parser.parse_args()
|
|
dockerfile = dockerfile + \
|
|
"FROM redroid/redroid:{}-latest\n".format(
|
|
args.android)
|
|
tags.append(args.android)
|
|
if args.gapps:
|
|
if args.android in ["11.0.0"]:
|
|
Gapps().install()
|
|
dockerfile = dockerfile + "COPY gapps /\n"
|
|
tags.append("gapps")
|
|
else:
|
|
helper.print_color( "WARNING: OpenGapps only supports 11.0.0", helper.bcolors.YELLOW)
|
|
if args.litegapps:
|
|
LiteGapps(args.android).install()
|
|
dockerfile = dockerfile + "COPY litegapps /\n"
|
|
tags.append("litegapps")
|
|
if args.mindthegapps:
|
|
MindTheGapps(args.android).install()
|
|
dockerfile = dockerfile + "COPY mindthegapps /\n"
|
|
tags.append("mindthegapps")
|
|
if args.ndk:
|
|
if args.android in ["11.0.0", "12.0.0", "12.0.0_64only"]:
|
|
arch = helper.host()[0]
|
|
if arch == "x86" or arch == "x86_64":
|
|
Ndk().install()
|
|
dockerfile = dockerfile+"COPY ndk /\n"
|
|
tags.append("ndk")
|
|
else:
|
|
helper.print_color(
|
|
"WARNING: Libndk seems to work only on redroid:11.0.0 or redroid:12.0.0", helper.bcolors.YELLOW)
|
|
if args.houdini:
|
|
if args.android in ["8.1.0", "9.0.0", "11.0.0", "12.0.0", "13.0.0", "14.0.0"]:
|
|
arch = helper.host()[0]
|
|
if arch == "x86" or arch == "x86_64":
|
|
Houdini(args.android).install()
|
|
if not args.android == "8.1.0":
|
|
Houdini_Hack(args.android).install()
|
|
dockerfile = dockerfile+"COPY houdini /\n"
|
|
tags.append("houdini")
|
|
else:
|
|
helper.print_color(
|
|
"WARNING: Houdini seems to work only above redroid:11.0.0", helper.bcolors.YELLOW)
|
|
if args.magisk:
|
|
Magisk().install()
|
|
dockerfile = dockerfile+"COPY magisk /\n"
|
|
tags.append("magisk")
|
|
if args.widevine:
|
|
Widevine(args.android).install()
|
|
dockerfile = dockerfile+"COPY widevine /\n"
|
|
tags.append("widevine")
|
|
print("\nDockerfile\n"+dockerfile)
|
|
with open("./Dockerfile", "w") as f:
|
|
f.write(dockerfile)
|
|
new_image_name = "redroid/redroid:"+"_".join(tags)
|
|
subprocess.run([args.container, "build", "-t", new_image_name, "."])
|
|
helper.print_color("Successfully built {}".format(
|
|
new_image_name), helper.bcolors.GREEN)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|