Repository: natsumerinchan/libhoudini-package
Branch: Android11-x86_64
Commit: 4ff59840c873
Files: 28
Total size: 23.9 KB
Directory structure:
gitextract_3jb9armb/
├── .github/
│ ├── bin/
│ │ └── garca
│ ├── build
│ └── workflows/
│ └── build.yml
├── .gitignore
├── LICENSE
├── README.md
├── README_zh_cn.md
└── src/
├── !zygote.sh
├── gearlock/
│ └── gearboot/
│ ├── boot-comp.sh
│ └── post-fs-data.sh
├── install.sh
├── system/
│ ├── bin/
│ │ ├── arm/
│ │ │ └── linker
│ │ ├── arm64/
│ │ │ └── linker64
│ │ ├── houdini
│ │ └── houdini64
│ ├── lib/
│ │ └── arm/
│ │ ├── cpuinfo
│ │ ├── cpuinfo.pure32
│ │ ├── libclcore.bc
│ │ ├── libclcore_debug.bc
│ │ ├── libclcore_debug_g.bc
│ │ ├── libclcore_g.bc
│ │ └── libclcore_neon.bc
│ └── lib64/
│ └── arm64/
│ ├── cpuinfo
│ ├── libclcore.bc
│ ├── libclcore_debug.bc
│ ├── libclcore_debug_g.bc
│ └── libclcore_g.bc
└── uninstall.sh
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/build
================================================
#!/usr/bin/env bash
# Check Android env
if test -z "$GEARLOCK_VER"; then
BD="$(dirname "$(readlink -f "$0")")"
export GTMP="$BD/cache"
mkdir -p "$GTMP"
WORKDIR="$BD/workdir"
GEARLOCK_NAME="gearlock"
PATH="$BD/bin:$PATH"
! chmod -R 777 "$BD/bin" && echo -e "Failed to get execution permissions on 'bin/garca'" && exit 1
fi
# Define Vars
_self="${0##*/}"
CompRatio="-mx=${3:-10}"
CompMethod="-m0=${2:-zstd}"
GETT="$WORKDIR"/'!zygote.sh'
PS3="$(echo -e "\nEnter a number >> ")"
# Locate garca
GARC_PATH="$(command -v garca)" || GARC_PATH="${_self}/bin/garca"
# Check if zygote exist
test ! -e "$GETT" && echo -e "No package was set-up, run ./configure first." && exit 1
# Colors
RC='\033[0m' RED='\033[0;31m' BRED='\033[1;31m' GRAY='\033[1;30m' BLUE='\033[0;34m' BBLUE='\033[1;34m' CYAN='\033[0;34m' BCYAN='\033[1;34m' WHITE='\033[1;37m' GREEN='\033[0;32m' BGREEN='\033[1;32m' YELLOW='\033[1;33m' PURPLE='\033[0;35m' BPURPLE='\033[1;35m' ORANGE='\033[0;33m'
# Define functions
function geco() {
echo -e "$@"
}
function get_value() {
sed -n "s/^$1=//p" "$GETT" | sed -e "s|\"||g" -e "s| #.*||" 2>/dev/null
}
function update_value() {
sed -i "s|\b$1=\".*\"|$1=\"$2\"|g" "$GETT"
}
function set_type(){
test -f "$WORKDIR/$GEARLOCK_NAME/extension.sh" && TTYPE="Extension"
update_value TYPE "${TTYPE:="Package"}"
}
function show_zygote_header(){
cat << EOF
______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______
/_____/ /_____/ /_____/ /_____/ /_____/ /_____/ /_____/ /_____/ /_____/ /_____/ /_____/ /_____/
._. ___
| | / / *Name: $NAME
|_| \ \ *Version: $VERSION
|-| < < *Author: $AUTHOR
| | / / *Type: $TYPE
|_| \_\_ *ShortDesc: $SHORTDESC
______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______
/_____/ /_____/ /_____/ /_____/ /_____/ /_____/ /_____/ /_____/ /_____/ /_____/ /_____/ /_____/
EOF
}
function gen_attars(){
local zD="$WORKDIR"/'.!zygote'
local fM="$zD/mode" sP="$zD/.sParent"
local sT="$zD/.sTarget" sL="$zD/link"
mkdir -p "${zD:="$WORKDIR"/'.!zygote'}"
if [ -n "$(find "$WORKDIR" -type l -exec realpath {} + | sed "s|"$WORKDIR"/||" | awk '{print "\""$0"\""}')" ]; then
find "$WORKDIR" -type l -exec realpath {} + | sed "s|"$WORKDIR"/||g" | awk '{print "\""$0"\""}' | sed 's|\"/|\"|g' > "${sP}"
find "$WORKDIR" -type l -printf '"%p"\n' | sed "s|"$WORKDIR"/||g" | sed 's|\"/|\"|g' > "${sT}"
paste -d " " "$sP" "$sT" > "$sL" && rm -f "$sP" "$sT"
else
rm -f "$sL"
fi
find "$WORKDIR" -printf '%#m "%p"\n' | sed -e "s|"$WORKDIR"/||" -e "s|.*"$WORKDIR".*||" | awk 'NF' > "${fM}"
}
# Build process functions
function build_gxp(){
render_header
gen_attars
"$GARC_PATH" a '-x!readme*' ${CompMethod} ${CompRatio} $@ "../${NAME}_${VERSION}_${AUTHOR}.gxp" "$WORKDIR"/* "$WORKDIR"/'.!zygote'; print_success; }
function render_header(){
clear
NAME="$(get_value NAME)"
VERSION="$(get_value VERSION)"
AUTHOR="$(get_value AUTHOR)"
TYPE="$(get_value TYPE)"
SHORTDESC="$(get_value SHORTDESC)"
test "$(get_value DEF_HEADER)" == "yes" && show_zygote_header
}
function print_success(){
if [ $? != 0 ]; then
geco "\nBuild failed ..."
else
geco "\n$TTYPE successfully build as "${NAME}"_"${VERSION}"_"${AUTHOR}".gxp and can be found at the first directory."
test -n "$GEARLOCK_VER" && geco "You can test it through ${YELLOW}GXPM${RC} right now"
chmod -Rf 777 "$GRLOAD" 2>/dev/null
fi
:
}
function show_help(){
geco "
GearLock Development Kit
\$ Command Line Options: ./${_self} <option> <optional-compMethod> <optional-compRatio>
--nowizard Does not use wizard mode
--help, -h Print this help message
\$ Available compMethods: bzip2 bcj2 bcj ppc ia64 arm armt sparc swap2 swap4 copy deflate64 deflate delta lzma2 flzma2 lzma zstd(default) lz4
\$ Default compRatio level: 10 (Max 23)
\$ Note: It is advised not to change the compMethod
"
}
function wizard_run(){
build_gxp
}
if [ -z "$1" ]; then set_type; wizard_run; else
case "$1" in
--nowizard) set_type; build_gxp ;;
--help|-h) show_help ;;
*) geco "${_self}: unknown option: $*" && show_help ;;
esac; fi
================================================
FILE: .github/workflows/build.yml
================================================
name: Build Gearlock Package
on:
push:
branches: [ "Android11-x86_64" ]
paths:
- '.github/**'
- 'src/**'
tags:
- "v*"
pull_request:
branches: [ "Android11-x86_64" ]
paths:
- '.github/**'
- 'src/**'
workflow_dispatch:
inputs:
RELEASE_CONFIG:
description: 'Upload to Releases'
required: true
default: false
type: boolean
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build package
run: |
cd $GITHUB_WORKSPACE
mv $GITHUB_WORKSPACE/src $GITHUB_WORKSPACE/.github/workdir
cd $GITHUB_WORKSPACE/.github
./build
- name: Get current time
uses: josStorer/get-current-time@v2.0.2
id: current-time
with:
format: YYYYMMDD-HHmmss
utcOffset: "+08:00"
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: Libhoudini_Android11_x86_64-${{ steps.current-time.outputs.formattedTime }}
path: |
*.gxp
- name: release
if: github.event.inputs.RELEASE_CONFIG == 'true' || github.ref_type == 'tag'
uses: softprops/action-gh-release@v1
with:
files: |
*.gxp
================================================
FILE: .gitignore
================================================
*.gxp
================================================
FILE: LICENSE
================================================
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <http://unlicense.org>
================================================
FILE: README.md
================================================
# libhoudini-for-x86_64-android11
(Sorry for my poor English)
[ **简体中文** ](README_zh_cn.md) || **English**
#### 1、Description
A Gearlock package for install libhoudini translation on x86_64 Android11,extracted from Windows Subsystem for Android™️ (WSA).
#### 2、Supports Platform
Only supports x86_64 Android11.
#### 3、Environment
- Computer:Lenovo Legion Y7000 2020 (82AV)
- CPU:Intel core i5-10200H
- GPU:
+ Integrated Graphics:Intel(R) UHD Graphics 630
+ Discrete Graphics:Nvidia GeForce GTX 1650
- RAM:16GB DDR4 (8GB+8GB)
- OS: [AOSP11-stock](https://sourceforge.net/projects/blissos-dev/files/Android-Generic/PC/aosp/stock/11/)
#### 4、Instructions
1. [Install Gearlock on Android x86 ](https://wiki.supreme-gamers.com/gearlock/user-guide/installation-and-updating/).
2. [Download and install this package](https://github.com/natsumerinchan/libhoudini-for-x86_64-android11/releases)
3. Go to Settings and turn on the arm compatibility switch,reboot.
4. Enjoy!
#### 5、Extracts
[You can use this batch file to extract libhoudini files by yourselves.](https://gist.github.com/natsumerinchan/b7a44acadfa66d0e07ead299423695c4)
<details>
<summary>Show all</summary>
1. Arm_32(armeabi,armeabi-v7a)
- /system/bin/houdini
- /system/bin/arm/linker
- /system/lib/libhoudini.so
- /system/lib/arm/*
1. Arm_64(arm64-v8a)
- /system/bin/houdini64
- /system/bin/arm64/linker64
- /system/lib64/libhoudini.so
- /system/lib64/arm64/*
</details>
#### 6、How to build
```
git clone https://github.com/natsumerinchan/libhoudini-package.git
```
```
cd libhoudini-package
```
```
cp -r ./src ./.github/workdir
```
```
cd ./.github && ./build
```
#### 7、Specify app native libraries
`pm install --abi %ARCH% %APK_PATH% `
ARCH:
- armeabi
- armeabi-v7a
- arm64-v8a
- x86
- x86_64
#### 8、Effect
1. AIDA64

2. Desktop

3. PCR

4. Wallpaper Engine

#### 9、Known bugs
1.Blue Archive (Can open the title page, but it crashes on loading.)
Refer to [this issue](https://github.com/waydroid/waydroid/issues/788#issuecomment-2162386712)
Remember to modify the libhoudini.so path.
#### 10、Credits
- [gearlock](https://github.com/axonasif/gearlock)
- [gearlock-dev-kit](https://github.com/axonasif/gearlock-dev-kit)
================================================
FILE: README_zh_cn.md
================================================
# libhoudini-for-x86_64-android11
**简体中文** || [ **English** ](README.md)
#### 1、介绍
给Android11 x86_64 安装libhoudini arm兼容层,提取自Windows Subsystem for Android™️ (WSA)
#### 2、支持平台
仅支持x86_64 Android11
#### 3、测试环境
- Computer:联想拯救者Y7000 2020 (82AV)
- CPU:Intel core i5-10200H
- GPU:
+ 核显:Intel(R) UHD Graphics 630
+ 独显:Nvidia GeForce GTX 1650
- 内存:16GB DDR4 (8GB+8GB)
- 系统: [AOSP11-stock](https://sourceforge.net/projects/blissos-dev/files/Android-Generic/PC/aosp/stock/11/)
#### 4、安装方法
1. [给android x86安装gearlock](https://wiki.supreme-gamers.com/gearlock/user-guide/installation-and-updating/)
2. [下载并安装本拓展](https://github.com/natsumerinchan/libhoudini-for-x86_64-android11/releases)
3. 进入设置打开arm兼容开关,然后重启
4. Enjoy!
#### 5、提取内容
[你可以用这个批处理脚本自行提取libhoudini文件](https://gist.github.com/natsumerinchan/b7a44acadfa66d0e07ead299423695c4)
<details>
<summary>显示全部</summary>
1. Arm_32(armeabi,armeabi-v7a)
- /system/bin/houdini
- /system/bin/arm/linker
- /system/lib/libhoudini.so
- /system/lib/arm/*
1. Arm_64(arm64-v8a)
- /system/bin/houdini64
- /system/bin/arm64/linker64
- /system/lib64/libhoudini.so
- /system/lib64/arm64/*
</details>
#### 6、如何构建
```
git clone https://github.com/natsumerinchan/libhoudini-package.git
```
```
cd libhoudini-package
```
```
cp -r ./src ./.github/workdir
```
```
cd ./.github && ./build
```
#### 7、让应用使用指定的原生库
`pm install --abi $ARCH $APK_PATH `
ARCH:
- armeabi
- armeabi-v7a
- arm64-v8a
- x86
- x86_64
#### 8、效果
1. AIDA64

2. 桌面

3. 公主连结R

4. Wallpaper Engine

#### 9、已知bug
1.Blue Archive (能进入标题页面但加载时会闪退.)
参考[这个issue](https://github.com/waydroid/waydroid/issues/788#issuecomment-2162386712)
务必记得修改脚本里libhoudini.so的路径。
#### 10、Credits
- [gearlock](https://github.com/axonasif/gearlock)
- [gearlock-dev-kit](https://github.com/axonasif/gearlock-dev-kit)
================================================
FILE: src/!zygote.sh
================================================
#######################################################################################################
#####=============================== Package/Extension Information ===============================#####
NAME="Libhoudini" #Package/Extension Name
CODENAME="libhoudini" #An Unique codename
TYPE="Package" #Specify (Package / Extension)
AUTHOR="natsumerinchan" #Your name as the Developer/Owner/Packer
VERSION="v3.0" #Specify the Version of this package/extension
SHORTDESC="Install Android11 Arm translation extracted from WSA.(Only for x86_64)" #Provide a short description about this package/extension
C_EXTNAME="" #For Specifing a custom name for your extension script ($NAME is used if not defined)
#####=============================== Package/Extension Information ===============================#####
#######################################################################################################
#------------------------------------------------------------------------------------------------------
#######################################################################################################
######=============================== Package/Extension Functions ===============================######
REQSYNC="yes" #(Deafult - yes) To make sure all your files are properly written in disk
REQREBOOT="yes, yes" #(Deafult - no, no [BOOTED-MODE, RECOVERY-MODE]) Require user to reboot
GEN_UNINS="yes" #(Deafult - no) If you want GearLock to generate an uninstallation script itself
SHOW_PROG="yes" #(Default - yes) Whether to show extraction progress while loading the pkg/extension
DEF_HEADER="yes" #(Default - yes) Whether to use the default header which print's the info during zygote
INTERACTIVE="no, no" #(Default - no, no [INSTALL, UNINSTALL]) Additional interactivity in GXPM operation
######=============================== Package/Extension Functions ===============================######
#######################################################################################################
#------------------------------------------------------------------------------------------------------
#######################################################################################################
######======================================= CustomHeader ======================================######
#Do not edit this part unless you know what you're doing#
#Set `DEF_HEADER` to `no' if you want to specify a custom zygote header#
#Then you can use `geco` or `cat` to print your custom header below for the zygote stage#
######========================================== Header =========================================######
#######################################################################################################
================================================
FILE: src/gearlock/gearboot/boot-comp.sh
================================================
#!/gearlock/bin/bash
## For proper developer documentation, visit https://wiki.supreme-gamers.com/gearlock/developer-guide
# This script will be executed during boot-comp stage.
# You must delete this if you dont need it.
# Note: You don't need to manually deal with this file, GearLock will take care of it.
regist_libhoudini() {
nsenter --mount=/proc/1/ns/mnt mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
nsenter --mount=/proc/1/ns/mnt 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
nsenter --mount=/proc/1/ns/mnt 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
nsenter --mount=/proc/1/ns/mnt 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
nsenter --mount=/proc/1/ns/mnt 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
}
echo "Hello World!" >> /data/adb/libhoudini/libhoudini.log
regist_libhoudini 2>&1 | tee -a /data/adb/libhoudini/libhoudini.log
================================================
FILE: src/gearlock/gearboot/post-fs-data.sh
================================================
#!/gearlock/bin/bash
## For proper developer documentation, visit https://wiki.supreme-gamers.com/gearlock/developer-guide
# This script will be executed during post-fs-data stage.
# You must delete this if you dont need it.
# Note: You don't need to manually deal with this file, GearLock will take care of it.
# Define your props inside a var in <prop> <value> format
ARM_TRANSLATION="
ro.product.cpu.abilist x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.product.cpu.abilist32 x86,armeabi-v7a,armeabi
ro.product.cpu.abilist64 x86_64,arm64-v8a
ro.vendor.product.cpu.abilist x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.vendor.product.cpu.abilist32 x86,armeabi-v7a,armeabi
ro.vendor.product.cpu.abilist64 x86_64,arm64-v8a
ro.odm.product.cpu.abilist x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.odm.product.cpu.abilist32 x86,armeabi-v7a,armeabi
ro.odm.product.cpu.abilist64 x86_64,arm64-v8a
ro.dalvik.vm.native.bridge libhoudini.so
ro.enable.native.bridge.exec 1
ro.enable.native.bridge.exec64 1
ro.dalvik.vm.isa.arm x86
ro.dalvik.vm.isa.arm64 x86_64
ro.zygote zygote64_32
"
# Now call the var over gearprop with quotes
libhoudini_setprop() {
echo "$ARM_TRANSLATION"
which gearprop
gearprop "$ARM_TRANSLATION"
}
test -d /data/adb/libhoudini || mkdir /data/adb/libhoudini
test -e /data/adb/libhoudini/libhoudini_old.log && rm /data/adb/libhoudini/libhoudini_old.log
test -e /data/adb/libhoudini/libhoudini.log && mv /data/adb/libhoudini/libhoudini.log /data/adb/libhoudini/libhoudini_old.log
libhoudini_setprop 2>&1 | tee /data/adb/libhoudini/libhoudini.log
================================================
FILE: src/install.sh
================================================
#!/gearlock/bin/bash
## For proper developer documentation, visit https://wiki.supreme-gamers.com/gearlock/developer-guide
# Check `!zygote.sh` to configure your package functions or gearlock can also guide you during the build process
#####--- Import Functions ---#####
get_base_dir # Returns execution directory path in $BD variable
# get_net_stat
check_compat 7.2.22
HOUDINI_ARCH=x86_64
HOUDINI_API=30
#####--- Import Functions ---#####
# Ensure compatible GearLock version
if test "$COMPAT" != "yes"; then
geco "\n[!!!] Please update GearLock to install this package" && exit 101
fi
# Ensure Recovery mode
if test "$RECOVERY" != "yes"; then
geco "\n[!!!] Please use Recovery mode to install this package" && exit 101
fi
# Check if /system is writable
mount -o remount,rw /
mount -o remount,rw /system
! touch -c "$SYSTEM_DIR/lib" >/dev/null 2>&1 && geco "[!!!] $SYSTEM_DIR is not writable, did you ${PINK}SuperCharge${RC} it yet ?" && exit 101
# Show sdk version and device architecture
if test -d "$SYSTEM_DIR/lib64/hw"; then
SYSTEM_ARCH=x86_64
else
SYSTEM_ARCH=x86
fi
geco "[INFO] -API_Level: $SDK"
geco "[INFO] -Platform: $SYSTEM_ARCH"
# Ensure Android version
if test "$SDK" -lt "$HOUDINI_API"; then
geco "\n[!!!] API_Level could not lower than $HOUDINI_API." && exit 101
fi
# Ensure Device Architecture
if test "$SYSTEM_ARCH" != "$HOUDINI_ARCH"; then
geco "\n[!!!] This package only supports $HOUDINI_ARCH devices!" && exit 101
fi
# Before installation
read -rn1 -p "$(geco "++++ Do you want to continue? ? [y/${GREEN}N${RC}]") " c
test "${c,,}" != 'y' && exit 101 #(exit-code ref: https://wiki.supreme-gamers.com/gearlock/developer-guide/#install-sh-exit-code)
# Remove Built-in Arm Translation
# Delete the original libhoudini
nout rm -rf "$SYSTEM_DIR/etc/binfmt_misc/*"
nout rm -rf "$SYSTEM_DIR/vendor/etc/binfmt_misc/*"
# 32 bit
nout rm -rf "$SYSTEM_DIR/bin/houdini"
nout rm -rf "$SYSTEM_DIR/bin/arm"
nout rm -rf "$SYSTEM_DIR/vendor/bin/houdini"
nout rm -rf "$SYSTEM_DIR/vendor/bin/arm"
nout rm -rf "$SYSTEM_DIR/lib/libhoudini.so"
nout rm -rf "$SYSTEM_DIR/lib/arm"
nout rm -rf "$SYSTEM_DIR/vendor/lib/libhoudini.so"
nout rm -rf "$SYSTEM_DIR/vendor/lib/arm"
# 64 bit
nout rm -rf "$SYSTEM_DIR/bin/houdini64"
nout rm -rf "$SYSTEM_DIR/bin/arm64"
nout rm -rf "$SYSTEM_DIR/vendor/bin/houdini64"
nout rm -rf "$SYSTEM_DIR/vendor/bin/arm64"
nout rm -rf "$SYSTEM_DIR/lib64/libhoudini.so"
nout rm -rf "$SYSTEM_DIR/lib64/arm64"
nout rm -rf "$SYSTEM_DIR/vendor/lib64/libhoudini.so"
nout rm -rf "$SYSTEM_DIR/vendor/lib64/arm64"
# Delete libndk_translation
# 32 bit
nout rm -rf "$SYSTEM_DIR/bin/ndk_translation_program_runner_binfmt_misc"
nout rm -rf "$SYSTEM_DIR/bin/arm"
nout rm -rf "$SYSTEM_DIR/etc/ld.config.arm.txt"
nout rm -rf "$SYSTEM_DIR/lib/libndk_translation.so"
nout rm -rf "$SYSTEM_DIR/lib/libndk_translation_proxy_*.so"
nout rm -rf "$SYSTEM_DIR/lib/arm"
# 64 bit
nout rm -rf "$SYSTEM_DIR/bin/ndk_translation_program_runner_binfmt_misc_arm64"
nout rm -rf "$SYSTEM_DIR/bin/arm64"
nout rm -rf "$SYSTEM_DIR/etc/ld.config.arm64.txt"
nout rm -rf "$SYSTEM_DIR/lib64/libndk_translation.so"
nout rm -rf "$SYSTEM_DIR/lib64/libndk_translation_proxy_*.so"
nout rm -rf "$SYSTEM_DIR/lib64/arm64"
# Set permissions
chmod -R -f 777 "$BD/system/"
# Copy files
geco "+ Merging files in your operating-system"
gclone "$BD/system/" "$SYSTEM_DIR" # You must use quotes " " if any of your file-name contains *spaces or special characters
================================================
FILE: src/system/lib/arm/cpuinfo
================================================
Processor : ARMv8 processor rev 1 (aarch64)
processor : 0
model name : ARMv8 Processor rev 1 (v8l)
BogoMIPS : 24.00
Features : neon vfp half thumb fastmult edsp vfpv3 vfpv4 idiva idivt tls aes sha1 sha2 crc32
CPU implementer : 0x4e
CPU architecture: 8
CPU variant : 0x02
CPU part : 0x000
CPU revision : 1
processor : 1
model name : ARMv8 Processor rev 1 (v8l)
BogoMIPS : 24.00
Features : neon vfp half thumb fastmult edsp vfpv3 vfpv4 idiva idivt tls aes sha1 sha2 crc32
CPU implementer : 0x4e
CPU architecture: 8
CPU variant : 0x02
CPU part : 0x000
CPU revision : 1
processor : 2
model name : ARMv8 Processor rev 1 (v8l)
BogoMIPS : 24.00
Features : neon vfp half thumb fastmult edsp vfpv3 vfpv4 idiva idivt tls aes sha1 sha2 crc32
CPU implementer : 0x4e
CPU architecture: 8
CPU variant : 0x02
CPU part : 0x000
CPU revision : 1
processor : 3
model name : ARMv8 Processor rev 1 (v8l)
BogoMIPS : 24.00
Features : neon vfp half thumb fastmult edsp vfpv3 vfpv4 idiva idivt tls aes sha1 sha2 crc32
CPU implementer : 0x4e
CPU architecture: 8
CPU variant : 0x02
CPU part : 0x000
CPU revision : 1
Hardware : placeholder
================================================
FILE: src/system/lib/arm/cpuinfo.pure32
================================================
Processor : ARMv7 processor rev 1 (v7l)
BogoMIPS : 1500.0
Features : neon vfp swp half thumb fastmult edsp vfpv3 vfpv4 idiva idivt
CPU implementer : 0x69
CPU architecture: 7
CPU variant : 0x1
CPU part : 0x001
CPU revision : 1
Hardware : placeholder
Revision : 0001
Serial : 0000000000000001
================================================
FILE: src/system/lib64/arm64/cpuinfo
================================================
Processor : ARMv8 processor rev 1 (aarch64)
processor : 0
BogoMIPS : 24.00
Features : fp asimd aes pmull sha1 sha2 crc32 atomics
CPU implementer : 0x4e
CPU architecture: 8
CPU variant : 0x02
CPU part : 0x000
CPU revision : 1
processor : 1
BogoMIPS : 24.00
Features : fp asimd aes pmull sha1 sha2 crc32 atomics
CPU implementer : 0x4e
CPU architecture: 8
CPU variant : 0x02
CPU part : 0x000
CPU revision : 1
processor : 2
BogoMIPS : 24.00
Features : fp asimd aes pmull sha1 sha2 crc32 atomics
CPU implementer : 0x4e
CPU architecture: 8
CPU variant : 0x02
CPU part : 0x000
CPU revision : 1
processor : 3
BogoMIPS : 24.00
Features : fp asimd aes pmull sha1 sha2 crc32 atomics
CPU implementer : 0x4e
CPU architecture: 8
CPU variant : 0x02
CPU part : 0x000
CPU revision : 1
Hardware : placeholder
================================================
FILE: src/uninstall.sh
================================================
#!/gearlock/bin/bash
## For proper developer documentation, visit https://wiki.supreme-gamers.com/gearlock/developer-guide
##
# GEN_UNINS is disabled by default (auto uninstallation script generation)
# It logs all the files present inside your package `system` & `data` dir
# and merge that as a function with your custom `uninstall.sh`.
#
# You can use different uninstallation combinations, please check the developer documentation to know more.
#
# Note: You don't need to manually deal with this file, GearLock will take care of it.
#
# Use `return` instead of `exit` to stop uninstallation for any error, GearLock will transform this whole file into a bash function.
#
# Tip: $UNINS_SCRIPT variable is provided by GXPM which returns
# full path for the locally prepared uninstallation script.
geco "\n++ Deleting the Arm translation layer"
mount -o remount,rw /
mount -o remount,rw /system
gitextract_3jb9armb/
├── .github/
│ ├── bin/
│ │ └── garca
│ ├── build
│ └── workflows/
│ └── build.yml
├── .gitignore
├── LICENSE
├── README.md
├── README_zh_cn.md
└── src/
├── !zygote.sh
├── gearlock/
│ └── gearboot/
│ ├── boot-comp.sh
│ └── post-fs-data.sh
├── install.sh
├── system/
│ ├── bin/
│ │ ├── arm/
│ │ │ └── linker
│ │ ├── arm64/
│ │ │ └── linker64
│ │ ├── houdini
│ │ └── houdini64
│ ├── lib/
│ │ └── arm/
│ │ ├── cpuinfo
│ │ ├── cpuinfo.pure32
│ │ ├── libclcore.bc
│ │ ├── libclcore_debug.bc
│ │ ├── libclcore_debug_g.bc
│ │ ├── libclcore_g.bc
│ │ └── libclcore_neon.bc
│ └── lib64/
│ └── arm64/
│ ├── cpuinfo
│ ├── libclcore.bc
│ ├── libclcore_debug.bc
│ ├── libclcore_debug_g.bc
│ └── libclcore_g.bc
└── uninstall.sh
Condensed preview — 28 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (27K chars).
[
{
"path": ".github/build",
"chars": 4237,
"preview": "#!/usr/bin/env bash\n\n# Check Android env\nif test -z \"$GEARLOCK_VER\"; then\n\tBD=\"$(dirname \"$(readlink -f \"$0\")\")\"\n\texport"
},
{
"path": ".github/workflows/build.yml",
"chars": 1357,
"preview": "name: Build Gearlock Package\n\n\non:\n push:\n branches: [ \"Android11-x86_64\" ]\n paths:\n - '.github/**'\n - "
},
{
"path": ".gitignore",
"chars": 7,
"preview": "\n*.gxp\n"
},
{
"path": "LICENSE",
"chars": 1210,
"preview": "This is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, c"
},
{
"path": "README.md",
"chars": 2840,
"preview": "# libhoudini-for-x86_64-android11\r\n(Sorry for my poor English)\r\n\r\n[ **简体中文** ](README_zh_cn.md) || **English** \r\n\r\n#### "
},
{
"path": "README_zh_cn.md",
"chars": 2332,
"preview": "# libhoudini-for-x86_64-android11\n\n **简体中文** || [ **English** ](README.md)\n\n#### 1、介绍\n给Android11 x86_64 安装libhoudini arm"
},
{
"path": "src/!zygote.sh",
"chars": 2847,
"preview": "\n#######################################################################################################\n#####=========="
},
{
"path": "src/gearlock/gearboot/boot-comp.sh",
"chars": 1554,
"preview": "#!/gearlock/bin/bash\n## For proper developer documentation, visit https://wiki.supreme-gamers.com/gearlock/developer-gui"
},
{
"path": "src/gearlock/gearboot/post-fs-data.sh",
"chars": 1569,
"preview": "#!/gearlock/bin/bash\n## For proper developer documentation, visit https://wiki.supreme-gamers.com/gearlock/developer-gui"
},
{
"path": "src/install.sh",
"chars": 3448,
"preview": "#!/gearlock/bin/bash\n## For proper developer documentation, visit https://wiki.supreme-gamers.com/gearlock/developer-gui"
},
{
"path": "src/system/lib/arm/cpuinfo",
"chars": 1115,
"preview": "Processor\t: ARMv8 processor rev 1 (aarch64)\nprocessor\t: 0\nmodel name\t: ARMv8 Processor rev 1 (v8l)\nBogoMIPS\t: 24.00\nFeat"
},
{
"path": "src/system/lib/arm/cpuinfo.pure32",
"chars": 293,
"preview": "Processor\t: ARMv7 processor rev 1 (v7l)\nBogoMIPS\t: 1500.0\nFeatures\t: neon vfp swp half thumb fastmult edsp vfpv3 vfpv4 i"
},
{
"path": "src/system/lib64/arm64/cpuinfo",
"chars": 795,
"preview": "Processor\t: ARMv8 processor rev 1 (aarch64)\nprocessor\t: 0\nBogoMIPS\t: 24.00\nFeatures\t: fp asimd aes pmull sha1 sha2 crc32"
},
{
"path": "src/uninstall.sh",
"chars": 901,
"preview": "#!/gearlock/bin/bash\n## For proper developer documentation, visit https://wiki.supreme-gamers.com/gearlock/developer-gui"
}
]
// ... and 14 more files (download for full content)
About this extraction
This page contains the full source code of the natsumerinchan/libhoudini-package GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 28 files (23.9 KB), approximately 8.2k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.