如何在自定义Android Marshmallow x86_64迷你PC上安装libhoudini
Hey there, let’s walk through getting libhoudini set up on your custom Android x86_64 Marshmallow system so you can run ARM-only apps and games. I’ve tackled this exact scenario before, so here’s a step-by-step breakdown tailored to your setup:
Prerequisites First
First off, your system must be rooted—you’ll need write access to the /system partition, which is locked down by default. Also, double-check you downloaded the right .sfs file: for Marshmallow (6.0) x86_64, look for something named like houdini6_y.sfs (the y denotes 64-bit support; x is for 32-bit x86).
Step 1: Make /system Writable
By default, /system is read-only. Fire up a terminal emulator on your mini PC or connect via ADB, then run these commands:
su mount -o remount,rw /system
If you get a permission error, confirm your root access is fully working. If the mount command fails, find your /system block device path with df /system and use that instead (e.g., mount -o remount,rw /dev/block/sda2).
Step 2: Mount the libhoudini .sfs Image
Transfer your downloaded .sfs file to your device (I usually drop it in /sdcard for easy access). Then create a temporary mount point and mount the image:
mkdir /mnt/houdini mount -o loop /sdcard/houdini6_y.sfs /mnt/houdini
If you hit a "loop device not found" error, load the loop module first with modprobe loop—this works on most Android x86 builds.
Step 3: Copy Files to System Directories
Now copy the contents of the mounted image to the correct system locations. For x86_64, we use lib64 instead of the 32-bit lib directory:
# Copy ARM compatibility libraries cp -r /mnt/houdini/lib/* /system/lib64/ # Copy configuration files cp -r /mnt/houdini/etc/* /system/etc/ # Copy any binary tools if present cp -r /mnt/houdini/bin/* /system/bin/
Take your time here—make sure all files copy without errors. If you run out of space, you might need to remove some preinstalled system apps to free up room on /system.
Step 4: Enable ARM Compatibility via build.prop
Next, we need to tell the system to use libhoudini as the native bridge. Edit the /system/build.prop file (use vi in terminal, or a root-enabled file manager like ES File Explorer):
vi /system/build.prop
Add these lines at the bottom of the file:
ro.dalvik.vm.native.bridge=libhoudini.so ro.enable.native.bridge.exec=1 ro.enable.native.bridge.64=1
Save the changes and exit the editor.
Step 5: Clean Up and Reboot
Unmount the temporary mount point and clean up:
umount /mnt/houdini rmdir /mnt/houdini
Optionally, set /system back to read-only (recommended for system stability):
mount -o remount,ro /system
Now reboot your mini PC. Once it boots back up, you should be able to install and run ARM-only apps.
Verify It’s Working
To confirm everything’s set up correctly:
- Install an ARM-only app (try a game or utility that doesn’t have an x86 variant). If it runs without crashing, you’re good to go.
- Check the system property with
getprop ro.dalvik.vm.native.bridge—it should returnlibhoudini.so.
Troubleshooting Tips
- Apps crash immediately: You probably downloaded the wrong libhoudini version. Make sure it’s matched to Marshmallow (6.0), not a newer Android version like Nougat or Oreo.
- Copy errors due to space: Use
df -h /systemto check free space. Uninstall unused system apps or resize the/systempartition if possible. - Mounting
.sfsfails: Ensure your kernel supports loop devices. Ifmodprobe loopdoesn’t work, you might need a custom kernel or a different Android x86 build.
内容的提问来源于stack exchange,提问作者Bawenang Rukmoko Pardian Putra

