Skip to content
This repository has been archived by the owner on Nov 22, 2024. It is now read-only.

Commit

Permalink
Fix setprop, use init service for binfmt_misc.
Browse files Browse the repository at this point in the history
  • Loading branch information
ilhan-athn7 committed Jan 12, 2024
1 parent dba94ae commit 6d6b359
Showing 1 changed file with 37 additions and 16 deletions.
53 changes: 37 additions & 16 deletions Scripts/cros_nb_extract.sh
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,9 @@ build_magisk_module(){

p1="system/"
p2="system/vendor"
vdirs=" $p1 $p1/bin $p2 $p2/bin
$p1/bin/arm $p1/bin/arm64 $p2/bin/arm $p2/bin/arm64
$p1/lib $p1/lib/arm $p2/lib $p2/lib/arm
$p1/lib64 $p1/lib64/arm64 $p2/lib64 $p2/lib64/arm64
$p1/etc $p1/etc/binfmt_misc $p2/etc $p2/etc/binfmt_misc"
vdirs=" $p1/bin/arm $p1/bin/arm64 $p2/bin/arm $p2/bin/arm64
$p1/lib/arm $p1/lib64/arm64 $p2/lib/arm $p2/lib64/arm64
$p1/etc/init $p1/etc/binfmt_misc $p2/etc/init $p2/etc/binfmt_misc"
for dirs in $vdirs
do mkdir -p "$dirs"
done
Expand Down Expand Up @@ -101,24 +99,48 @@ EOF
cat <<EOF >"service.sh"
until [[ "\$(getprop sys.boot_completed)" == "1" ]]; do sleep 1; done
if ! [ -a "$MODPATH"/system/lib64/libhoudini.so ] || ! [ -a "$MODPATH"/system/vendor/lib64/libhoudini.so ] || ! [ -a "$MODPATH"/vendor/lib64/libhoudini.so ];
setprop ro.dalvik.vm.native.bridge libndk_translation.so
if [ -a "\$MODPATH"/system/lib64/libhoudini.so ] || [ -a "\$MODPATH"/system/vendor/lib64/libhoudini.so ] || [ -a "\$MODPATH"/vendor/lib64/libhoudini.so ];
then
resetprop ro.dalvik.vm.native.bridge libhoudini.so
else
setprop ro.dalvik.vm.native.bridge libhoudini.so
resetprop ro.dalvik.vm.native.bridge libndk_translation.so
fi
rmmod binfmt_misc
modprobe binfmt_misc
mount binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
cat /system/etc/binfmt_misc/arm_exe >/proc/sys/fs/binfmt_misc/register
cat /system/etc/binfmt_misc/arm_dyn >/proc/sys/fs/binfmt_misc/register
cat /system/etc/binfmt_misc/arm64_exe >/proc/sys/fs/binfmt_misc/register
cat /system/etc/binfmt_misc/arm64_dyn >/proc/sys/fs/binfmt_misc/register
EOF

cat <<EOF >"customize.sh"
#WIP
EOF

cat <<EOF >system/etc/init/nb.rc
# Enable native bridge for target executables
on early-init && property:ro.enable.native.bridge.exec=1
modprobe binfmt_misc
mount binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
on property:ro.enable.native.bridge.exec=1 && property:ro.dalvik.vm.isa.arm=x86
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.exec=1 && property:ro.dalvik.vm.isa.arm64=x86_64
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
EOF

cat <<EOF >system/vendor/etc/init/nb.rc
# Enable native bridge for target executables
on early-init && property:ro.enable.native.bridge.exec=1
modprobe binmft_misc
mount binfmt_misc binfmt_misc /proc/sys/fs/binfmt_misc
on property:ro.enable.native.bridge.exec=1 && property:ro.dalvik.vm.isa.arm=x86
copy /vendor/etc/binfmt_misc/arm_exe /proc/sys/fs/binfmt_misc/register
copy /vendor/etc/binfmt_misc/arm_dyn /proc/sys/fs/binfmt_misc/register
on property:ro.enable.native.bridge.exec=1 && property:ro.dalvik.vm.isa.arm64=x86_64
copy /vendor/etc/binfmt_misc/arm64_exe /proc/sys/fs/binfmt_misc/register
copy /vendor/etc/binfmt_misc/arm64_dyn /proc/sys/fs/binfmt_misc/register
EOF

cp /mnt/cros_A/opt/google/vms/android/ARM_TO_AMD_DBT_LICENSE.txt ./

echo -e "-Pull blobs from chromeos recovery ..."
Expand Down Expand Up @@ -152,7 +174,6 @@ EOF
cp -r --preserve=all /mnt/cros_vendor/etc/binfmt_misc/* $p1/etc/binfmt_misc/
cp -r --preserve=all /mnt/cros_vendor/etc/cpuinfo* $p1/etc/
cp -r --preserve=all /mnt/cros_vendor/etc/ld.config* $p1/etc/
EOF
)" 2>/dev/null

Expand Down

0 comments on commit 6d6b359

Please sign in to comment.