Create redroid-podman.py

replace propriatary docker with podman analogs
the image filename will use podman complaint underscores
This commit is contained in:
Greg Procunier
2023-03-31 18:44:06 -04:00
committed by Rikka
parent c2fc7636b2
commit a25412803b

76
redroid-podman.py Normal file
View File

@@ -0,0 +1,76 @@
#!/usr/bin/env python3
# replace propriatary docker with podman analogs
# the image filename will use podman complaint underscores
from io import BytesIO
import argparse
from stuffs.gapps import Gapps
from stuffs.houdini import Houdini
from stuffs.magisk import Magisk
from stuffs.ndk import Ndk
from stuffs.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=['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('-n', '--install-ndk-translation',
dest='ndk',
help='Install libndk translation files',
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')
args = parser.parse_args()
dockerfile = dockerfile + \
"FROM redroid/redroid:{}-latest\n".format(
args.android)
tags.append(args.android)
if args.gapps:
Gapps().install()
dockerfile = dockerfile + "COPY gapps /\n"
tags.append("gapps")
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.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(["podman", "build", "-t", new_image_name, "."])
helper.print_color("Successfully built {}".format(new_image_name), helper.bcolors.GREEN)
if __name__ == "__main__":
main()