Textdoc
Zipdoc
Writeurl
Loading…
[[Edited]] Version This is a showcase video of running Waydroid + Android 11 with scrcpy (Android ScreenCopy), working Magisk v25.2 and working Terminal Emulator without /dev/tty error. All of this is done in Waydroid-Linux-beta (Debian Operating system with GNOME Desktop), download link on sourceforge. The reason i am using scrcpy to show the Android screen is because the default wayland screen is detected the keyboard and mouse, so, a few apps/games can't be clicked/touched with mouse. There are a few steps and Trial&Error before reaching this stage; 1. Setup the Linux - Setting up the Linux, first step -->Upgrade waydroid python3-gbinder and its dependencies --->DON'T UPGRADE THE SYSTEM, IT WILL BREAK EVERYTHING --->Don't ever upgrade to python3.10, it will remove waydroid and its dependencies -->Install android-platform-tools or download the adb manually -->Install scrcpy -->Download LineageOS-18.1-waydroid Android 11 images 2. Setup Waydroid - Setting up waydroid to work with Android 11, referencing on a youtube video -->Edit the gbinder config to use aidl3 --->/etc/gbinder.d/anbox.conf +-----------------------------------------------------------+ [Protocol] /dev/anbox-binder = aidl3 /dev/anbox-vndbinder = aidl3 /dev/anbox-hwbinder = hidl [ServiceManager] /dev/anbox-binder = aidl3 /dev/anbox-vndbinder = aidl3 /dev/anbox-hwbinder = hidl [General] ApiLevel = 30 +-----------------------------------------------------------+ -->Setting Unprivileged BPF --->Make sure Unprivileged BPF Status is: 0 --->Run: sudo sysctl kernel/unprivileged_bpf_disabled=0 --->For easier use so you don't have to run this command every reboot, create service ---->Create /etc/systemd/system/set_bpf.service, enable it: sudo systemctl enable set_bpf +-----------------------------------------------------------+ [Unit] Description=Set Unprivileged BPF Status At Boot After=display-manager.service [Service] ExecStart=/yourhome_or_dir/.bin/set_bpf.sh [Install] WantedBy=default.target +-----------------------------------------------------------+ ---->Create script file, /yourhome_or_dir/.bin/set_bpf.sh +-----------------------------------------------------------+ #!/bin/bash sysctl kernel/unprivileged_bpf_disabled=0 echo "Unprivileged BPF Status is:" cat /proc/sys/kernel/unprivileged_bpf_disabled +-----------------------------------------------------------+ -->Reboot Linux 3. Installing Magisk manually; - Yes, i have to install the Magisk manually by referencing waydroid_script install script and a few github issues -->Enter your working folder, e.g; $HOME/mymagisk/ -->Download Magisk v25.2, then extract the apk -->Resize system.img, i choose 3GB -->Mount system.img in rw mode to system; #mount -o loop system.img system -->Resize vendor.img, i choose 500MB -->Mount vendor.img in rw mode to system/vendor; ; #mount -o loop system.img system/vendor -->Make sure to run waydroid once, so $HOME/.local/share/waydroid/data folder is created -->Mount $HOME/.local/share/waydroid/data to userdata; #mount -o bind $HOME/.local/share/waydroid/data userdata -->Delete system/sbin folder, if exists -->Create system/magisk folder -->Follow some steps in https://github.com/casualsnek/waydroid_script/issues/12 -->Rename all *.so files in Magisk-v25.2/lib/x86_64 to their respective names --->e.g; libbusybox.so to busybox --->do this to all *.so files -->Copy renamed files to system/magisk -->Copy Magisk-v25.2/lib/x86_64/magiskpolicy to your working folder, e.g; $HOME/mymagisk/ -->Rename libmagisk32.so->magisk32 in Magisk-v25.2/lib/x86 and copy to system/magisk -->Follow steps in MagiskOnWSA/blob/main/.github/workflows/magisk.yml, with modifications +-----------------------------------------------------------+ #sudo chcon --reference system/init.environ.rc system/sbin sudo chcon --reference system/init.environ.rc system/magisk sudo chown root:root system/magisk sudo chmod -R 0700 system/magisk sudo mkdir -p userdata/adb/magisk sudo chmod -R 700 userdata/adb sudo cp system/magisk/* userdata/adb/magisk/ sudo find userdata/adb/magisk -type f -exec chmod 0755 {} ; sudo cp Magisk-v25.2.apk userdata/adb/magisk/magisk.apk sudo tee -a system/magisk/loadpolicy.sh <
Modifying system/system/etc/init/hw/init.rc ---> My init.rc: +-----------------------------------------------------------+ on post-fs-data start logd start adbd mkdir /dev/wsa-magisk mount tmpfs tmpfs /dev/wsa-magisk mode=0755 copy /magisk/magisk64 /dev/wsa-magisk/magisk64 chmod 0755 /dev/wsa-magisk/magisk64 copy /magisk/magisk32 /dev/wsa-magisk/magisk32 chmod 0755 /dev/wsa-magisk/magisk32 symlink ./magisk32 /dev/wsa-magisk/magisk symlink ./magisk64 /dev/wsa-magisk/su symlink ./magisk64 /dev/wsa-magisk/resetprop copy /magisk/magiskinit /dev/wsa-magisk/magiskinit chmod 0755 /dev/wsa-magisk/magiskinit #tried without this, but magisk not detected by manager # mkdir /sbin mount tmpfs tmpfs /sbin mode=0755 copy /magisk/magisk64 /sbin/magisk64 chmod 0755 /sbin/magisk64 copy /magisk/magisk32 /sbin/magisk32 chmod 0755 /sbin/magisk32 symlink ./magisk32 /sbin/magisk symlink ./magisk64 /sbin/su symlink ./magisk64 /sbin/resetprop copy /magisk/magiskinit /sbin/magiskinit chmod 0755 /sbin/magiskinit # 24107 copy /magisk/magiskpolicy /dev/wsa-magisk/magiskpolicy chmod 0755 /dev/wsa-magisk/magiskpolicy copy /magisk/magisk.apk /dev/wsa-magisk/stub.apk #symlink ./magiskinit /dev/wsa-magisk/magiskpolicy # Fix for magisk 24.3-24107 - due to absence of magiskpolicy applet mkdir /dev/wsa-magisk/.magisk 700 mkdir /dev/wsa-magisk/.magisk/mirror 700 mkdir /dev/wsa-magisk/.magisk/block 700 rm /dev/.magisk_unblock start IhhslLhHYfse start FAhW7H9G5sf # fix for magisk modules to load properly umount /dev/wsa-magisk/.magisk/mirror/data rm /dev/wsa-magisk/.magisk/mirror/data symlink /data /dev/wsa-magisk/.magisk/mirror/data wait /dev/.magisk_unblock 40 rm /dev/.magisk_unblock service IhhslLhHYfse /system/bin/sh /magisk/loadpolicy.sh user root seclabel u:r:magisk:s0 oneshot service FAhW7H9G5sf /dev/wsa-magisk/magisk --post-fs-data user root seclabel u:r:magisk:s0 oneshot service HLiFsR1HtIXVN6 /dev/wsa-magisk/magisk --service class late_start user root seclabel u:r:magisk:s0 oneshot on property:sys.boot_completed=1 start YqCTLTppv3ML start YqCTLTppv3MK service YqCTLTppv3ML /dev/wsa-magisk/magisk --boot-complete user root seclabel u:r:magisk:s0 oneshot # fix for Terminal/Termux to work # i put this here to make sure the workaround not started too early service YqCTLTppv3MK /system/bin/sh /magisk/fix-term.sh user root seclabel u:r:magisk:s0 oneshot +-----------------------------------------------------------+ -->Create fix-term.sh in system/magisk --->fix-term.sh +-----------------------------------------------------------+ #!/system/bin/sh # fix for Terminal/Termux to work mknod -m 666 /dev/tty c 5 0 mknod /dev/tty1 c 4 1 +-----------------------------------------------------------+ -->Copy Magisk-v25.2.apk to system/system/app/Magisk/Magisk.apk -->Final structure: -->(myworkdir)/ --->magiskpolicy ---->magisk/ ------>magisk/busybox ------>magisk/magisk.apk ------>magisk/magisk32 ------>magisk/magisk64 ------>magisk/magiskboot ------>magisk/magiskinit ------>magisk/magiskpolicy ---->system/magisk/ ------>system/magisk/busybox ------>system/magisk/magisk.apk ------>system/magisk/magisk32 ------>system/magisk/magisk64 ------>system/magisk/magiskboot ------>system/magisk/magiskinit ------>system/magisk/magiskpolicy ------>system/magisk/fix-term.sh ---->userdata/adb/magiskpolicy ---->userdata/adb/magisk/ ------>userdata/adb/magisk/busybox ------>userdata/adb/magisk/magisk.apk ------>userdata/adb/magisk/magisk32 ------>userdata/adb/magisk/magisk64 ------>userdata/adb/magisk/magiskboot ------>userdata/adb/magisk/magiskinit ------>userdata/adb/magisk/magiskpolicy 4. Clean up and Run - Cleaning up work -->Unmount all mounted images and data folder -->Copy/move/replace system.img and vendor.img to /var/lib/waydroid/images -->Restart Linux -->Start Waydroid session: waydroid session start / waydroid show-full-ui -->Make sure everything is alright and waydroid is running: waydroid show-full-ui -->If Waydroid not showing up, check for error in logcat: sudo waydroid logcat Done! Disclaimer: at least this is working for me. if it is not working for you then maybe we are different ;-)