From 263569b7206f3bde6cd6b108343dbe149f433c20 Mon Sep 17 00:00:00 2001 From: Rikka Date: Tue, 4 Apr 2023 15:47:41 +0800 Subject: [PATCH] support podman --- README.md | 10 +++++++ redroid-podman.py | 76 ----------------------------------------------- redroid.py | 33 ++++++++------------ requirements.txt | 1 - 4 files changed, 23 insertions(+), 97 deletions(-) delete mode 100644 redroid-podman.py diff --git a/README.md b/README.md index 4f79183..3335a2a 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,16 @@ If redroid-script doesn't work, please create an issue ## Dependencies - lzip +## Specify container type + +Specify container type. Default is docker + +option: +``` + -c {docker,podman}, --container {docker,podman} +``` + + ## Specify an Android version Use `-a` or `--android-version` to specify the Android version of the image being pulled. The value can be `8.1.0`, `9.0.0`, `10.0.0`, `11.0.0`, `12.0.0` or `13.0.0`. The default is 11.0.0. diff --git a/redroid-podman.py b/redroid-podman.py deleted file mode 100644 index 6fdaffc..0000000 --- a/redroid-podman.py +++ /dev/null @@ -1,76 +0,0 @@ -#!/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() diff --git a/redroid.py b/redroid.py index 6b55dcc..49f5007 100644 --- a/redroid.py +++ b/redroid.py @@ -1,12 +1,12 @@ -from io import BytesIO +#!/usr/bin/env python3 + 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 docker +import subprocess def main(): @@ -30,13 +30,14 @@ def main(): parser.add_argument('-m', '--install-magisk', dest='magisk', help='Install Magisk ( Bootless )', action='store_true') - # Not working - # parser.add_argument('-l', '--install-libhoudini', dest='houdini', - # help='Install libhoudini for arm translation', - # 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 + \ @@ -47,7 +48,6 @@ def main(): Gapps().install() dockerfile = dockerfile + "COPY gapps /\n" tags.append("gapps") - # if args.ndk and not args.houdini: if args.ndk: if args.android in ["11.0.0", "12.0.0", "12.0.0_64only"]: arch = helper.host()[0] @@ -58,12 +58,6 @@ def main(): 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 and not args.ndk: - # arch = helper.host()[0] - # if arch == "x86" or arch == "x86_64": - # tags.append("houdini") - # Houdini(args.android).install() - # dockerfile = dockerfile+"COPY houdini /\n" if args.magisk: Magisk().install() dockerfile = dockerfile+"COPY magisk /\n" @@ -75,12 +69,11 @@ def main(): print("\nDockerfile\n"+dockerfile) with open("./Dockerfile", "w") as f: f.write(dockerfile) - client = docker.DockerClient(base_url='unix://var/run/docker.sock') - new_image_name = "redroid/redroid:"+"-".join(tags) - client.images.build(path=".", - dockerfile="Dockerfile", - tag=new_image_name) - helper.print_color("Successfully built {}".format(new_image_name), helper.bcolors.GREEN) + 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() diff --git a/requirements.txt b/requirements.txt index d50a2c4..3d1b66b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,2 @@ -docker==6.0.1 requests==2.28.1 tqdm==4.64.1 \ No newline at end of file