[
  {
    "path": ".github/build",
    "content": "#!/usr/bin/env bash\n\n# Check Android env\nif test -z \"$GEARLOCK_VER\"; then\n\tBD=\"$(dirname \"$(readlink -f \"$0\")\")\"\n\texport GTMP=\"$BD/cache\"\n\tmkdir -p \"$GTMP\"\n\tWORKDIR=\"$BD/workdir\"\n\tGEARLOCK_NAME=\"gearlock\"\n\tPATH=\"$BD/bin:$PATH\"\n\t! chmod -R 777 \"$BD/bin\" && echo -e \"Failed to get execution permissions on 'bin/garca'\" && exit 1\nfi\n\n# Define Vars\n_self=\"${0##*/}\"\nCompRatio=\"-mx=${3:-10}\"\nCompMethod=\"-m0=${2:-zstd}\"\nGETT=\"$WORKDIR\"/'!zygote.sh'\nPS3=\"$(echo -e \"\\nEnter a number >> \")\"\n\n# Locate garca\nGARC_PATH=\"$(command -v garca)\" || GARC_PATH=\"${_self}/bin/garca\"\n\n# Check if zygote exist\ntest ! -e \"$GETT\" && echo -e \"No package was set-up, run ./configure first.\" && exit 1\n\n# Colors\nRC='\\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'\n\n# Define functions\nfunction geco() {\n\techo -e \"$@\"\n}\n\nfunction get_value() {\n\tsed -n \"s/^$1=//p\" \"$GETT\" | sed -e \"s|\\\"||g\" -e \"s| #.*||\" 2>/dev/null\n}\n\nfunction update_value() {\n\tsed -i \"s|\\b$1=\\\".*\\\"|$1=\\\"$2\\\"|g\" \"$GETT\"\n}\n\nfunction set_type(){\n\ttest -f \"$WORKDIR/$GEARLOCK_NAME/extension.sh\" && TTYPE=\"Extension\"\n\tupdate_value TYPE \"${TTYPE:=\"Package\"}\"\n}\n\nfunction show_zygote_header(){\n\tcat << EOF\n  ______   ______   ______   ______   ______   ______   ______   ______   ______   ______   ______   ______\n /_____/  /_____/  /_____/  /_____/  /_____/  /_____/  /_____/  /_____/  /_____/  /_____/  /_____/  /_____/\n\n  ._.   ___\n  | |  / /   *Name: $NAME\n  |_|  \\ \\   *Version: $VERSION\n  |-|  < <   *Author: $AUTHOR\n  | |  / /   *Type: $TYPE\n  |_|  \\_\\_  *ShortDesc: $SHORTDESC\n\n  ______   ______   ______   ______   ______   ______   ______   ______   ______   ______   ______   ______\n /_____/  /_____/  /_____/  /_____/  /_____/  /_____/  /_____/  /_____/  /_____/  /_____/  /_____/  /_____/\n\n\n\nEOF\n}\n\nfunction gen_attars(){\n\tlocal zD=\"$WORKDIR\"/'.!zygote'\n\tlocal fM=\"$zD/mode\" sP=\"$zD/.sParent\"\n\tlocal sT=\"$zD/.sTarget\" sL=\"$zD/link\"\n\t\n\tmkdir -p \"${zD:=\"$WORKDIR\"/'.!zygote'}\"\n\tif [ -n \"$(find \"$WORKDIR\" -type l -exec realpath {} + | sed \"s|\"$WORKDIR\"/||\" | awk '{print \"\\\"\"$0\"\\\"\"}')\" ]; then\n\t\tfind \"$WORKDIR\" -type l -exec realpath {} + | sed \"s|\"$WORKDIR\"/||g\" | awk '{print \"\\\"\"$0\"\\\"\"}' | sed 's|\\\"/|\\\"|g' > \"${sP}\"\n\t\tfind \"$WORKDIR\" -type l -printf '\"%p\"\\n' | sed \"s|\"$WORKDIR\"/||g\" | sed 's|\\\"/|\\\"|g' > \"${sT}\"\n\t\tpaste -d \" \" \"$sP\" \"$sT\" > \"$sL\" && rm -f \"$sP\" \"$sT\"\n\telse\n\t\trm -f \"$sL\"\n\tfi\n\tfind \"$WORKDIR\" -printf '%#m \"%p\"\\n' | sed -e \"s|\"$WORKDIR\"/||\" -e \"s|.*\"$WORKDIR\".*||\" | awk 'NF' > \"${fM}\"\n}\n\n# Build process functions\nfunction build_gxp(){\n\trender_header\n\tgen_attars\n\t\"$GARC_PATH\" a '-x!readme*' ${CompMethod} ${CompRatio} $@ \"../${NAME}_${VERSION}_${AUTHOR}.gxp\" \"$WORKDIR\"/* \"$WORKDIR\"/'.!zygote'; print_success; }\n\nfunction render_header(){\n\tclear\n\tNAME=\"$(get_value NAME)\"\n\tVERSION=\"$(get_value VERSION)\"\n\tAUTHOR=\"$(get_value AUTHOR)\"\n\tTYPE=\"$(get_value TYPE)\"\n\tSHORTDESC=\"$(get_value SHORTDESC)\"\n\ttest \"$(get_value DEF_HEADER)\" == \"yes\" && show_zygote_header\n}\n\nfunction print_success(){\n\tif [ $? != 0 ]; then\n\t\tgeco \"\\nBuild failed ...\"\n\telse\n\t\tgeco \"\\n$TTYPE successfully build as \"${NAME}\"_\"${VERSION}\"_\"${AUTHOR}\".gxp and can be found at the first directory.\"\n\t\ttest -n \"$GEARLOCK_VER\" && geco \"You can test it through ${YELLOW}GXPM${RC} right now\"\n\t\tchmod -Rf 777 \"$GRLOAD\" 2>/dev/null\n\tfi\n\t:\n}\n\nfunction show_help(){\n\tgeco \"\nGearLock Development Kit\n\\$ Command Line Options: ./${_self} <option> <optional-compMethod> <optional-compRatio>\n\n\n    --nowizard                Does not use wizard mode\n\n    --help, -h                Print this help message\n    \n\n\\$ Available compMethods: bzip2 bcj2 bcj ppc ia64 arm armt sparc swap2 swap4 copy deflate64 deflate delta lzma2 flzma2 lzma zstd(default) lz4\n\\$ Default compRatio level: 10 (Max 23)\n\\$ Note: It is advised not to change the compMethod\n\t\"\n}\n\nfunction wizard_run(){\n\tbuild_gxp\n}\n\n\n\tif [ -z \"$1\" ]; then set_type; wizard_run; else\n\t\tcase \"$1\" in\n\t\t\t--nowizard) set_type; build_gxp ;;\n\t\t\t--help|-h) show_help ;;\n\t\t\t*) geco \"${_self}: unknown option: $*\" && show_help ;;\n\tesac; fi\n"
  },
  {
    "path": ".github/workflows/build.yml",
    "content": "name: Build Gearlock Package\n\n\non:\n  push:\n    branches: [ \"Android11-x86_64\" ]\n    paths:\n      - '.github/**'\n      - 'src/**'\n    tags:\n      - \"v*\"\n  pull_request:\n    branches: [ \"Android11-x86_64\" ]\n    paths:\n      - '.github/**'\n      - 'src/**'\n  workflow_dispatch:\n    inputs:\n        RELEASE_CONFIG:\n          description: 'Upload to Releases'\n          required: true\n          default: false\n          type: boolean\n\njobs:\n\n  build:\n\n    runs-on: ubuntu-latest\n      \n    steps:\n\n      - uses: actions/checkout@v3\n\n      - name: Build package\n        run: |\n          cd $GITHUB_WORKSPACE\n          mv $GITHUB_WORKSPACE/src $GITHUB_WORKSPACE/.github/workdir\n          cd $GITHUB_WORKSPACE/.github\n          ./build\n          \n      - name: Get current time\n        uses: josStorer/get-current-time@v2.0.2\n        id: current-time\n        with:\n          format: YYYYMMDD-HHmmss\n          utcOffset: \"+08:00\"\n      \n      - name: Upload Artifact\n        uses: actions/upload-artifact@v3\n        with:\n          name: Libhoudini_Android11_x86_64-${{ steps.current-time.outputs.formattedTime }}\n          path: |\n            *.gxp\n            \n      - name: release\n        if: github.event.inputs.RELEASE_CONFIG == 'true' || github.ref_type == 'tag'\n        uses: softprops/action-gh-release@v1\n        with:\n          files: |\n            *.gxp\n"
  },
  {
    "path": ".gitignore",
    "content": "\n*.gxp\n"
  },
  {
    "path": "LICENSE",
    "content": "This is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, compile, sell, or\ndistribute this software, either in source code form or as a compiled\nbinary, for any purpose, commercial or non-commercial, and by any\nmeans.\n\nIn jurisdictions that recognize copyright laws, the author or authors\nof this software dedicate any and all copyright interest in the\nsoftware to the public domain. We make this dedication for the benefit\nof the public at large and to the detriment of our heirs and\nsuccessors. We intend this dedication to be an overt act of\nrelinquishment in perpetuity of all present and future rights to this\nsoftware under copyright law.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\nFor more information, please refer to <http://unlicense.org>\n"
  },
  {
    "path": "README.md",
    "content": "# 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#### 1、Description\r\nA Gearlock package for install libhoudini translation on x86_64 Android11,extracted from Windows Subsystem for Android™️ (WSA).\r\n\r\n#### 2、Supports Platform\r\nOnly supports x86_64 Android11.\r\n\r\n#### 3、Environment\r\n\r\n- Computer：Lenovo Legion Y7000 2020 (82AV)\r\n- CPU:Intel core i5-10200H\r\n- GPU:\r\n  + Integrated Graphics：Intel(R) UHD Graphics 630\r\n  + Discrete Graphics：Nvidia GeForce GTX 1650\r\n- RAM：16GB DDR4 (8GB+8GB)\r\n- OS: [AOSP11-stock](https://sourceforge.net/projects/blissos-dev/files/Android-Generic/PC/aosp/stock/11/)\r\n\r\n#### 4、Instructions\r\n\r\n1. [Install Gearlock on Android x86 ](https://wiki.supreme-gamers.com/gearlock/user-guide/installation-and-updating/).\r\n2. [Download and install this package](https://github.com/natsumerinchan/libhoudini-for-x86_64-android11/releases)\r\n3. Go to Settings and turn on the arm compatibility switch,reboot.\r\n4. Enjoy！\r\n\r\n#### 5、Extracts\r\n\r\n[You can use this batch file to extract libhoudini files by yourselves.](https://gist.github.com/natsumerinchan/b7a44acadfa66d0e07ead299423695c4)\r\n\r\n<details>\r\n<summary>Show all</summary>\r\n\r\n1. Arm_32(armeabi,armeabi-v7a)\r\n- /system/bin/houdini\r\n- /system/bin/arm/linker\r\n- /system/lib/libhoudini.so\r\n- /system/lib/arm/*\r\n\r\n1. Arm_64(arm64-v8a)\r\n- /system/bin/houdini64\r\n- /system/bin/arm64/linker64\r\n- /system/lib64/libhoudini.so\r\n- /system/lib64/arm64/*\r\n\r\n</details>\r\n\r\n#### 6、How to build\r\n\r\n```\r\ngit clone https://github.com/natsumerinchan/libhoudini-package.git\r\n```\r\n\r\n```\r\ncd libhoudini-package\r\n```\r\n\r\n```\r\ncp -r ./src ./.github/workdir\r\n```\r\n\r\n```\r\ncd ./.github && ./build\r\n```\r\n\r\n#### 7、Specify app native libraries\r\n\r\n`pm install --abi %ARCH% %APK_PATH% `\r\n\r\nARCH:\r\n- armeabi\r\n- armeabi-v7a\r\n- arm64-v8a\r\n- x86\r\n- x86_64\r\n\r\n#### 8、Effect\r\n1. AIDA64\r\n![AIDA64](https://raw.githubusercontent.com/natsumerinchan/My_Own_Drawing_Bed/main/libhoudini-for-x86_64-android11/AIDA64.png)\r\n\r\n2. Desktop\r\n![Desktop](https://raw.githubusercontent.com/natsumerinchan/My_Own_Drawing_Bed/main/libhoudini-for-x86_64-android11/Desktop.png)\r\n\r\n3. PCR\r\n![PCR](https://raw.githubusercontent.com/natsumerinchan/My_Own_Drawing_Bed/main/libhoudini-for-x86_64-android11/PCR.png)\r\n\r\n4. Wallpaper Engine\r\n![Wallpaper Engine](https://raw.githubusercontent.com/natsumerinchan/My_Own_Drawing_Bed/main/libhoudini-for-x86_64-android11/Wallpaper_Engine.png)\r\n\r\n#### 9、Known bugs\r\n1.Blue Archive (Can open the title page, but it crashes on loading.) \r\n\r\nRefer to [this issue](https://github.com/waydroid/waydroid/issues/788#issuecomment-2162386712) \r\n\r\nRemember to modify the libhoudini.so path.\r\n\r\n#### 10、Credits\r\n\r\n- [gearlock](https://github.com/axonasif/gearlock)\r\n\r\n- [gearlock-dev-kit](https://github.com/axonasif/gearlock-dev-kit)\r\n"
  },
  {
    "path": "README_zh_cn.md",
    "content": "# libhoudini-for-x86_64-android11\n\n **简体中文** || [ **English** ](README.md)\n\n#### 1、介绍\n给Android11 x86_64 安装libhoudini arm兼容层，提取自Windows Subsystem for Android™️ (WSA)\n\n#### 2、支持平台\n仅支持x86_64 Android11\n\n#### 3、测试环境\n\n- Computer：联想拯救者Y7000 2020 (82AV)\n- CPU:Intel core i5-10200H\n- GPU:\n  + 核显：Intel(R) UHD Graphics 630\n  + 独显：Nvidia GeForce GTX 1650\n- 内存：16GB DDR4 (8GB+8GB)\n- 系统: [AOSP11-stock](https://sourceforge.net/projects/blissos-dev/files/Android-Generic/PC/aosp/stock/11/)\n\n#### 4、安装方法\n \n1.  [给android x86安装gearlock](https://wiki.supreme-gamers.com/gearlock/user-guide/installation-and-updating/)\n2.  [下载并安装本拓展](https://github.com/natsumerinchan/libhoudini-for-x86_64-android11/releases)\n3.  进入设置打开arm兼容开关，然后重启\n4.  Enjoy！\n\n#### 5、提取内容\n\n[你可以用这个批处理脚本自行提取libhoudini文件](https://gist.github.com/natsumerinchan/b7a44acadfa66d0e07ead299423695c4)\n\n<details>\n<summary>显示全部</summary>\n\n1. Arm_32(armeabi,armeabi-v7a)\n- /system/bin/houdini\n- /system/bin/arm/linker\n- /system/lib/libhoudini.so\n- /system/lib/arm/*\n\n1. Arm_64(arm64-v8a)\n- /system/bin/houdini64\n- /system/bin/arm64/linker64\n- /system/lib64/libhoudini.so\n- /system/lib64/arm64/*\n\n</details>\n\n#### 6、如何构建\n\n```\ngit clone https://github.com/natsumerinchan/libhoudini-package.git\n```\n\n```\ncd libhoudini-package\n```\n\n```\ncp -r ./src ./.github/workdir\n```\n\n```\ncd ./.github && ./build\n```\n\n#### 7、让应用使用指定的原生库\n\n`pm install --abi $ARCH $APK_PATH `\n\nARCH:\n - armeabi\n - armeabi-v7a\n - arm64-v8a\n - x86\n - x86_64\n\n#### 8、效果\n1. AIDA64\n![输入图片说明](https://raw.githubusercontent.com/natsumerinchan/My_Own_Drawing_Bed/main/libhoudini-for-x86_64-android11/AIDA64.png)\n\n2. 桌面\n![输入图片说明](https://raw.githubusercontent.com/natsumerinchan/My_Own_Drawing_Bed/main/libhoudini-for-x86_64-android11/Desktop.png)\n\n3. 公主连结R\n![输入图片说明](https://raw.githubusercontent.com/natsumerinchan/My_Own_Drawing_Bed/main/libhoudini-for-x86_64-android11/PCR.png)\n\n4. Wallpaper Engine\n![输入图片说明](https://raw.githubusercontent.com/natsumerinchan/My_Own_Drawing_Bed/main/libhoudini-for-x86_64-android11/Wallpaper_Engine.png)\n\n#### 9、已知bug\n1.Blue Archive (能进入标题页面但加载时会闪退.) \n\n参考[这个issue](https://github.com/waydroid/waydroid/issues/788#issuecomment-2162386712) \n\n务必记得修改脚本里libhoudini.so的路径。\n\n#### 10、Credits\n\n- [gearlock](https://github.com/axonasif/gearlock)\n\n- [gearlock-dev-kit](https://github.com/axonasif/gearlock-dev-kit)\n"
  },
  {
    "path": "src/!zygote.sh",
    "content": "\n#######################################################################################################\n#####=============================== Package/Extension Information ===============================#####\n\nNAME=\"Libhoudini\" #Package/Extension Name\n\nCODENAME=\"libhoudini\" #An Unique codename\n\nTYPE=\"Package\" #Specify (Package / Extension)\n\nAUTHOR=\"natsumerinchan\" #Your name as the Developer/Owner/Packer\n\nVERSION=\"v3.0\" #Specify the Version of this package/extension\n\nSHORTDESC=\"Install Android11 Arm translation extracted from WSA.(Only for x86_64)\" #Provide a short description about this package/extension\n\nC_EXTNAME=\"\" #For Specifing a custom name for your extension script ($NAME is used if not defined)\n\n#####=============================== Package/Extension Information ===============================#####\n#######################################################################################################\n\n\n\n\n#------------------------------------------------------------------------------------------------------\n\n\n\n\n#######################################################################################################\n######=============================== Package/Extension Functions ===============================######\n\nREQSYNC=\"yes\" #(Deafult - yes) To make sure all your files are properly written in disk\n\nREQREBOOT=\"yes, yes\" #(Deafult - no, no [BOOTED-MODE, RECOVERY-MODE]) Require user to reboot\n\nGEN_UNINS=\"yes\" #(Deafult - no) If you want GearLock to generate an uninstallation script itself\n\nSHOW_PROG=\"yes\" #(Default - yes) Whether to show extraction progress while loading the pkg/extension\n\nDEF_HEADER=\"yes\" #(Default - yes) Whether to use the default header which print's the info during zygote\n\nINTERACTIVE=\"no, no\" #(Default - no, no [INSTALL, UNINSTALL]) Additional interactivity in GXPM operation\n\n######=============================== Package/Extension Functions ===============================######\n#######################################################################################################\n\n\n\n\n#------------------------------------------------------------------------------------------------------\n\n\n\n\n#######################################################################################################\n######======================================= CustomHeader ======================================######\n                        #Do not edit this part unless you know what you're doing#\n                #Set `DEF_HEADER` to `no' if you want to specify a custom zygote header#\n       #Then you can use `geco` or `cat` to print your custom header below for the zygote stage#\n\n\n\n\n\n######========================================== Header =========================================######\n#######################################################################################################\n"
  },
  {
    "path": "src/gearlock/gearboot/boot-comp.sh",
    "content": "#!/gearlock/bin/bash\n## For proper developer documentation, visit https://wiki.supreme-gamers.com/gearlock/developer-guide\n# This script will be executed during boot-comp stage.\n# You must delete this if you dont need it.\n# Note: You don't need to manually deal with this file, GearLock will take care of it.\n\nregist_libhoudini() {\n    nsenter --mount=/proc/1/ns/mnt mount -t binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc\n\n    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\n    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\n    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\n    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\n}\necho \"Hello World!\" >> /data/adb/libhoudini/libhoudini.log\nregist_libhoudini 2>&1 | tee -a /data/adb/libhoudini/libhoudini.log\n"
  },
  {
    "path": "src/gearlock/gearboot/post-fs-data.sh",
    "content": "#!/gearlock/bin/bash\n## For proper developer documentation, visit https://wiki.supreme-gamers.com/gearlock/developer-guide\n# This script will be executed during post-fs-data stage.\n# You must delete this if you dont need it.\n# Note: You don't need to manually deal with this file, GearLock will take care of it.\n\n# Define your props inside a var in <prop> <value> format\n\nARM_TRANSLATION=\"\nro.product.cpu.abilist x86_64,x86,arm64-v8a,armeabi-v7a,armeabi\nro.product.cpu.abilist32 x86,armeabi-v7a,armeabi\nro.product.cpu.abilist64 x86_64,arm64-v8a\nro.vendor.product.cpu.abilist x86_64,x86,arm64-v8a,armeabi-v7a,armeabi\nro.vendor.product.cpu.abilist32 x86,armeabi-v7a,armeabi\nro.vendor.product.cpu.abilist64 x86_64,arm64-v8a\nro.odm.product.cpu.abilist x86_64,x86,arm64-v8a,armeabi-v7a,armeabi\nro.odm.product.cpu.abilist32 x86,armeabi-v7a,armeabi\nro.odm.product.cpu.abilist64 x86_64,arm64-v8a\nro.dalvik.vm.native.bridge libhoudini.so\nro.enable.native.bridge.exec 1\nro.enable.native.bridge.exec64 1\nro.dalvik.vm.isa.arm x86\nro.dalvik.vm.isa.arm64 x86_64\nro.zygote zygote64_32\n\"\n\n# Now call the var over gearprop with quotes\nlibhoudini_setprop() {\n    echo \"$ARM_TRANSLATION\"\n    which gearprop\n    gearprop \"$ARM_TRANSLATION\"\n}\n\ntest -d /data/adb/libhoudini || mkdir /data/adb/libhoudini\ntest -e /data/adb/libhoudini/libhoudini_old.log && rm /data/adb/libhoudini/libhoudini_old.log\ntest -e /data/adb/libhoudini/libhoudini.log && mv /data/adb/libhoudini/libhoudini.log /data/adb/libhoudini/libhoudini_old.log\n\nlibhoudini_setprop 2>&1 | tee /data/adb/libhoudini/libhoudini.log\n"
  },
  {
    "path": "src/install.sh",
    "content": "#!/gearlock/bin/bash\n## For proper developer documentation, visit https://wiki.supreme-gamers.com/gearlock/developer-guide\n# Check `!zygote.sh` to configure your package functions or gearlock can also guide you during the build process\n\n#####--- Import Functions ---#####\nget_base_dir # Returns execution directory path in $BD variable\n# get_net_stat\ncheck_compat 7.2.22\nHOUDINI_ARCH=x86_64\nHOUDINI_API=30\n#####--- Import Functions ---#####\n\n# Ensure compatible GearLock version\nif test \"$COMPAT\" != \"yes\"; then\n\tgeco \"\\n[!!!] Please update GearLock to install this package\" && exit 101\nfi\n\n# Ensure Recovery mode\nif test \"$RECOVERY\" != \"yes\"; then\n\tgeco \"\\n[!!!] Please use Recovery mode to install this package\" && exit 101\nfi\n\n# Check if /system is writable\nmount -o remount,rw /\nmount -o remount,rw /system\n! touch -c \"$SYSTEM_DIR/lib\" >/dev/null 2>&1 && geco \"[!!!] $SYSTEM_DIR is not writable, did you ${PINK}SuperCharge${RC} it yet ?\" && exit 101\n\n# Show sdk version and device architecture\n\nif test -d \"$SYSTEM_DIR/lib64/hw\"; then\n\tSYSTEM_ARCH=x86_64\nelse\n\tSYSTEM_ARCH=x86\nfi\n\ngeco \"[INFO] -API_Level: $SDK\"\ngeco \"[INFO] -Platform: $SYSTEM_ARCH\"\n\n# Ensure Android version\nif test \"$SDK\" -lt \"$HOUDINI_API\"; then\n\tgeco \"\\n[!!!] API_Level could not lower than $HOUDINI_API.\" && exit 101\nfi\n\n# Ensure Device Architecture\nif test \"$SYSTEM_ARCH\" != \"$HOUDINI_ARCH\"; then\n\tgeco \"\\n[!!!] This package only supports $HOUDINI_ARCH devices!\" && exit 101\nfi\n\n# Before installation\nread -rn1 -p \"$(geco \"++++ Do you want to continue? ? [y/${GREEN}N${RC}]\") \" c\ntest \"${c,,}\" != 'y' && exit 101 #(exit-code ref: https://wiki.supreme-gamers.com/gearlock/developer-guide/#install-sh-exit-code)\n\n# Remove Built-in Arm Translation\n\n# Delete the original libhoudini\nnout rm -rf \"$SYSTEM_DIR/etc/binfmt_misc/*\"\nnout rm -rf \"$SYSTEM_DIR/vendor/etc/binfmt_misc/*\"\n# 32 bit\nnout rm -rf \"$SYSTEM_DIR/bin/houdini\"\nnout rm -rf \"$SYSTEM_DIR/bin/arm\"\nnout rm -rf \"$SYSTEM_DIR/vendor/bin/houdini\"\nnout rm -rf \"$SYSTEM_DIR/vendor/bin/arm\"\nnout rm -rf \"$SYSTEM_DIR/lib/libhoudini.so\"\nnout rm -rf \"$SYSTEM_DIR/lib/arm\"\nnout rm -rf \"$SYSTEM_DIR/vendor/lib/libhoudini.so\"\nnout rm -rf \"$SYSTEM_DIR/vendor/lib/arm\"\n# 64 bit\nnout rm -rf \"$SYSTEM_DIR/bin/houdini64\"\nnout rm -rf \"$SYSTEM_DIR/bin/arm64\"\nnout rm -rf \"$SYSTEM_DIR/vendor/bin/houdini64\"\nnout rm -rf \"$SYSTEM_DIR/vendor/bin/arm64\"\nnout rm -rf \"$SYSTEM_DIR/lib64/libhoudini.so\"\nnout rm -rf \"$SYSTEM_DIR/lib64/arm64\"\nnout rm -rf \"$SYSTEM_DIR/vendor/lib64/libhoudini.so\"\nnout rm -rf \"$SYSTEM_DIR/vendor/lib64/arm64\"\n\n# Delete libndk_translation\n# 32 bit\nnout rm -rf \"$SYSTEM_DIR/bin/ndk_translation_program_runner_binfmt_misc\"\nnout rm -rf \"$SYSTEM_DIR/bin/arm\"\nnout rm -rf \"$SYSTEM_DIR/etc/ld.config.arm.txt\"\nnout rm -rf \"$SYSTEM_DIR/lib/libndk_translation.so\"\nnout rm -rf \"$SYSTEM_DIR/lib/libndk_translation_proxy_*.so\"\nnout rm -rf \"$SYSTEM_DIR/lib/arm\"\n# 64 bit\nnout rm -rf \"$SYSTEM_DIR/bin/ndk_translation_program_runner_binfmt_misc_arm64\"\nnout rm -rf \"$SYSTEM_DIR/bin/arm64\"\nnout rm -rf \"$SYSTEM_DIR/etc/ld.config.arm64.txt\"\nnout rm -rf \"$SYSTEM_DIR/lib64/libndk_translation.so\"\nnout rm -rf \"$SYSTEM_DIR/lib64/libndk_translation_proxy_*.so\"\nnout rm -rf \"$SYSTEM_DIR/lib64/arm64\"\n\n# Set permissions\nchmod -R -f 777 \"$BD/system/\"\n\n# Copy files\ngeco \"+ Merging files in your operating-system\"\ngclone \"$BD/system/\" \"$SYSTEM_DIR\" # You must use quotes \" \" if any of your file-name contains *spaces or special characters\n"
  },
  {
    "path": "src/system/lib/arm/cpuinfo",
    "content": "Processor\t: ARMv8 processor rev 1 (aarch64)\nprocessor\t: 0\nmodel name\t: ARMv8 Processor rev 1 (v8l)\nBogoMIPS\t: 24.00\nFeatures\t: neon vfp half thumb fastmult edsp vfpv3 vfpv4 idiva idivt tls aes sha1 sha2 crc32\nCPU implementer\t: 0x4e\nCPU architecture: 8\nCPU variant\t: 0x02\nCPU part\t: 0x000\nCPU revision\t: 1\n\nprocessor\t: 1\nmodel name\t: ARMv8 Processor rev 1 (v8l)\nBogoMIPS\t: 24.00\nFeatures\t: neon vfp half thumb fastmult edsp vfpv3 vfpv4 idiva idivt tls aes sha1 sha2 crc32\nCPU implementer\t: 0x4e\nCPU architecture: 8\nCPU variant\t: 0x02\nCPU part\t: 0x000\nCPU revision\t: 1\n\nprocessor\t: 2\nmodel name\t: ARMv8 Processor rev 1 (v8l)\nBogoMIPS\t: 24.00\nFeatures\t: neon vfp half thumb fastmult edsp vfpv3 vfpv4 idiva idivt tls aes sha1 sha2 crc32\nCPU implementer\t: 0x4e\nCPU architecture: 8\nCPU variant\t: 0x02\nCPU part\t: 0x000\nCPU revision\t: 1\n\nprocessor\t: 3\nmodel name\t: ARMv8 Processor rev 1 (v8l)\nBogoMIPS\t: 24.00\nFeatures\t: neon vfp half thumb fastmult edsp vfpv3 vfpv4 idiva idivt tls aes sha1 sha2 crc32\nCPU implementer\t: 0x4e\nCPU architecture: 8\nCPU variant\t: 0x02\nCPU part\t: 0x000\nCPU revision\t: 1\n\nHardware\t: placeholder\n"
  },
  {
    "path": "src/system/lib/arm/cpuinfo.pure32",
    "content": "Processor\t: ARMv7 processor rev 1 (v7l)\nBogoMIPS\t: 1500.0\nFeatures\t: neon vfp swp half thumb fastmult edsp vfpv3 vfpv4 idiva idivt\nCPU implementer\t: 0x69\nCPU architecture: 7\nCPU variant\t: 0x1\nCPU part\t: 0x001\nCPU revision\t: 1\n\nHardware\t: placeholder\nRevision\t: 0001\nSerial\t\t: 0000000000000001\n"
  },
  {
    "path": "src/system/lib64/arm64/cpuinfo",
    "content": "Processor\t: ARMv8 processor rev 1 (aarch64)\nprocessor\t: 0\nBogoMIPS\t: 24.00\nFeatures\t: fp asimd aes pmull sha1 sha2 crc32 atomics\nCPU implementer\t: 0x4e\nCPU architecture: 8\nCPU variant\t: 0x02\nCPU part\t: 0x000\nCPU revision\t: 1\n\nprocessor\t: 1\nBogoMIPS\t: 24.00\nFeatures\t: fp asimd aes pmull sha1 sha2 crc32 atomics\nCPU implementer\t: 0x4e\nCPU architecture: 8\nCPU variant\t: 0x02\nCPU part\t: 0x000\nCPU revision\t: 1\n\nprocessor\t: 2\nBogoMIPS\t: 24.00\nFeatures\t: fp asimd aes pmull sha1 sha2 crc32 atomics\nCPU implementer\t: 0x4e\nCPU architecture: 8\nCPU variant\t: 0x02\nCPU part\t: 0x000\nCPU revision\t: 1\n\nprocessor\t: 3\nBogoMIPS\t: 24.00\nFeatures\t: fp asimd aes pmull sha1 sha2 crc32 atomics\nCPU implementer\t: 0x4e\nCPU architecture: 8\nCPU variant\t: 0x02\nCPU part\t: 0x000\nCPU revision\t: 1\n\nHardware\t: placeholder\n"
  },
  {
    "path": "src/uninstall.sh",
    "content": "#!/gearlock/bin/bash\n## For proper developer documentation, visit https://wiki.supreme-gamers.com/gearlock/developer-guide\n##\n# GEN_UNINS is disabled by default (auto uninstallation script generation)\n# It logs all the files present inside your package `system` & `data` dir\n# and merge that as a function with your custom `uninstall.sh`.\n# \n# You can use different uninstallation combinations, please check the developer documentation to know more.\n# \n# Note: You don't need to manually deal with this file, GearLock will take care of it.\n# \n# Use `return` instead of `exit` to stop uninstallation for any error, GearLock will transform this whole file into a bash function.\n# \n# Tip: $UNINS_SCRIPT variable is provided by GXPM which returns\n# full path for the locally prepared uninstallation script.\n\ngeco \"\\n++ Deleting the Arm translation layer\"\nmount -o remount,rw /\nmount -o remount,rw /system\n"
  }
]