mirror of
https://github.com/ayasa520/redroid-script.git
synced 2026-02-24 16:35:08 +08:00
Merge pull request #37 from rote66/patch
fix houdini with namespace error in redroid
This commit is contained in:
18
redroid.py
18
redroid.py
@@ -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,18 @@ 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 ["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"
|
||||
|
||||
@@ -10,27 +10,52 @@ 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"
|
||||
"""
|
||||
dl_links = {
|
||||
# 8.1.0 from cros R79 Android N not working
|
||||
# "8.1.0":[
|
||||
# "https://github.com/rote66/vendor_intel_proprietary_houdini/archive/9246014ddf22d5e34f294d726dc48ca446b0e20e.zip",
|
||||
# "b0a9ddc0d817d290a15b132091a37f36"],
|
||||
"8.1.0":[
|
||||
"https://github.com/rote66/vendor_intel_proprietary_houdini/archive/46682f423b8497db3f96222f2669d770eff764c3.zip",
|
||||
"cd4dd2891aa18e7699d33dcc3fe3ffd4"],
|
||||
"9.0.0":[
|
||||
"https://github.com/rote66/vendor_intel_proprietary_houdini/archive/46682f423b8497db3f96222f2669d770eff764c3.zip",
|
||||
"cd4dd2891aa18e7699d33dcc3fe3ffd4"],
|
||||
"11.0.0": [
|
||||
"https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/81f2a51ef539a35aead396ab7fce2adf89f46e88.zip",
|
||||
"fbff756612b4144797fbc99eadcb6653"],
|
||||
"12.0.0": [
|
||||
"https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/0e0164611d5fe5595229854759c30a9b5c1199a5.zip",
|
||||
"9709701b44b6ab7fc311c7dc95945bd0"],
|
||||
# 13.0.0 from wsa-13 not working
|
||||
# "13.0.0": [
|
||||
# "https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/5460519aa63a23201ba0f3d45cfc382b2e9b30a0.zip",
|
||||
# "08d8d8ed9c4b00eba3fa21ecd527eb87"],
|
||||
"13.0.0": [
|
||||
"https://github.com/supremegamers/vendor_intel_proprietary_houdini/archive/978d8cba061a08837b7e520cd03b635af643ba08.zip",
|
||||
"1e139054c05034648fae58a1810573b4"
|
||||
],
|
||||
# "9.0.0":[],
|
||||
# "8.1.0":[]
|
||||
"https://github.com/rote66/vendor_intel_proprietary_houdini/archive/740353bf4391969902bc80ee2a9258db18481b45.zip",
|
||||
"d4824c0c00e8fa9611e1db5124ec61f9"],
|
||||
"14.0.0": [
|
||||
"https://github.com/rote66/vendor_intel_proprietary_houdini/archive/740353bf4391969902bc80ee2a9258db18481b45.zip",
|
||||
"d4824c0c00e8fa9611e1db5124ec61f9"]
|
||||
# "15.0.0": [
|
||||
# "https://github.com/rote66/vendor_intel_proprietary_houdini/archive/740353bf4391969902bc80ee2a9258db18481b45.zip",
|
||||
# "d4824c0c00e8fa9611e1db5124ec61f9"]
|
||||
}
|
||||
dl_file_name = os.path.join(download_loc, "libhoudini.zip")
|
||||
extract_to = "/tmp/houdiniunpack"
|
||||
|
||||
33
stuff/houdini_hack.py
Normal file
33
stuff/houdini_hack.py
Normal file
@@ -0,0 +1,33 @@
|
||||
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/a2194c5e294cbbfdfe87e51eb9eddb4c3621d8c3.zip"
|
||||
self.act_md5 = "8f71a58f3e54eca879a2f7de64dbed58"
|
||||
|
||||
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)
|
||||
|
||||
if not self.version == "9.0.0":
|
||||
init_path = os.path.join(self.copy_dir, "system", "etc", "init", "hw", "init.rc")
|
||||
os.chmod(init_path, 0o644)
|
||||
Reference in New Issue
Block a user