houdini:update rc and use hack file to pass namespace error

redroid:enable houdini with args

dl link:
android11 -> wsa
android12 -> wsa12.1
android13 -> wsa13
android14/15 -> chromeos volteer
This commit is contained in:
rote66
2024-12-10 00:55:47 +08:00
parent 1be5944213
commit 0026c7996a
3 changed files with 67 additions and 5 deletions

View File

@@ -6,6 +6,8 @@ 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
@@ -33,6 +35,10 @@ def main():
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',
@@ -79,6 +85,17 @@ 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:
if args.android in ["11.0.0", "12.0.0", "13.0.0", "14.0.0", "15.0.0"]:
arch = helper.host()[0]
if arch == "x86" or arch == "x86_64":
Houdini(args.android).install()
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"

View File

@@ -10,10 +10,18 @@ class Houdini(General):
copy_dir = "./houdini"
init_rc_component = """
on early-init
mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
mount binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
on property:ro.enable.native.bridge.exec=1
exec -- /system/bin/sh -c "echo ':arm_exe:M::\\\\x7f\\\\x45\\\\x4c\\\\x46\\\\x01\\\\x01\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x28::/system/bin/houdini:P' > /proc/sys/fs/binfmt_misc/register"
copy /system/etc/binfmt_misc/arm_exe /proc/sys/fs/binfmt_misc/register
copy /system/etc/binfmt_misc/arm_dyn /proc/sys/fs/binfmt_misc/register
on property:ro.enable.native.bridge.exec64=1
copy /system/etc/binfmt_misc/arm64_exe /proc/sys/fs/binfmt_misc/register
copy /system/etc/binfmt_misc/arm64_dyn /proc/sys/fs/binfmt_misc/register
on property:sys.boot_completed=1
exec -- /system/bin/sh -c "echo ':arm_exe:M::\\\\x7f\\\\x45\\\\x4c\\\\x46\\\\x01\\\\x01\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\x28::/system/bin/houdini:P' >> /proc/sys/fs/binfmt_misc/register"
exec -- /system/bin/sh -c "echo ':arm_dyn:M::\\\\x7f\\\\x45\\\\x4c\\\\x46\\\\x01\\\\x01\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x03\\\\x00\\\\x28::/system/bin/houdini:P' >> /proc/sys/fs/binfmt_misc/register"
exec -- /system/bin/sh -c "echo ':arm64_exe:M::\\\\x7f\\\\x45\\\\x4c\\\\x46\\\\x02\\\\x01\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x02\\\\x00\\\\xb7::/system/bin/houdini64:P' >> /proc/sys/fs/binfmt_misc/register"
exec -- /system/bin/sh -c "echo ':arm64_dyn:M::\\\\x7f\\\\x45\\\\x4c\\\\x46\\\\x02\\\\x01\\\\x01\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x03\\\\x00\\\\xb7::/system/bin/houdini64:P' >> /proc/sys/fs/binfmt_misc/register"
@@ -26,9 +34,14 @@ on property:ro.enable.native.bridge.exec=1
"https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/0e0164611d5fe5595229854759c30a9b5c1199a5.zip",
"9709701b44b6ab7fc311c7dc95945bd0"],
"13.0.0": [
"https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/978d8cba061a08837b7e520cd03b635af643ba08.zip",
"1e139054c05034648fae58a1810573b4"
],
"https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/5460519aa63a23201ba0f3d45cfc382b2e9b30a0.zip",
"08d8d8ed9c4b00eba3fa21ecd527eb87"],
"14.0.0": [
"https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/01865e24451008840c4b3a72a2fdd0bfd67f7f93.zip",
"2b6279b93dbd375f80d79bc95a9e7d85"],
"15.0.0": [
"https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/01865e24451008840c4b3a72a2fdd0bfd67f7f93.zip",
"2b6279b93dbd375f80d79bc95a9e7d85"]
# "9.0.0":[],
# "8.1.0":[]
}

32
stuff/houdini_hack.py Normal file
View File

@@ -0,0 +1,32 @@
import os
import re
import shutil
from stuff.general import General
from tools.helper import bcolors, get_download_dir, print_color, run
class Houdini_Hack(General):
download_loc = get_download_dir()
copy_dir = "./houdini"
dl_file_name = os.path.join(download_loc, "libhoudini_hack.zip")
extract_to = "/tmp/houdinihackunpack"
def __init__(self, version):
self.version = version
self.dl_link = "https://github.com/rote66/redroid_libhoudini_hack/archive/07712bdd32c1ac487d89bf3d03b2b258d0d47fc0.zip"
self.act_md5 = "873c8b01165506b8def921d9f7b7dc89"
def download(self):
print_color("Downloading libhoudini_hack now .....", bcolors.GREEN)
super().download()
def copy(self):
run(["chmod", "+x", self.extract_to, "-R"])
print_color("Copying libhoudini hack files ...", bcolors.GREEN)
name = re.findall("([a-zA-Z0-9]+)\.zip", self.dl_link)[0]
shutil.copytree(os.path.join(self.extract_to, "redroid_libhoudini_hack-" + name,
self.version), os.path.join(self.copy_dir, "system"), dirs_exist_ok=True)
init_path = os.path.join(self.copy_dir, "system", "etc", "init", "hw", "init.rc")
os.chmod(init_path, 0o644)