Caution
This project is experimental; please do not install it if you do not know what you are doing. I accept no responsibility for any problems you may encounter!
Before you start:
- GSI: Google's Android 16 Non-GMS GSI It is not required, but highly recommended.
- Root: Any root solution (Magisk highly recommended.)
- Connection: Internet connection on the device and an active ADB bridge from your PC.
Caution
If you are not using Magisk, use manual installation.
Automated installation only supports Magisk
| OS | Link |
|---|---|
| Windows | DOAN-Setup-Windows.py |
| macOS | DOAN-Setup-macOS.command |
| Linux | DOAN-Setup-Linux.sh |
Download Android Platform Tools for: Windows | macOS | Linux
Download script.sh (the startup script that launches Xfce)
Download Magisk Debian Chroot (supports other roots too, not only Magisk)
Tip: Make sure to grant execute permission (
chmod +x) before using the Android Platform Tools on macOS/Linux.
Push script.sh to a permanent directory via ADB:
adb push script.sh /data/local/tmp/script.shGrant it execute permission:
adb shell su -c "chmod +x /data/local/tmp/script.sh"Push the Magisk Debian Chroot module to a temporary directory via ADB:
adb push debian_module.zip /sdcard/Caution
If you are not using Magisk, skip this step and install the chroot using your own root manager's app.
adb shell su -c "magisk --install-module /sdcard/debian_module.zip"Reboot your device to let the Magisk Debian Chroot module activate:
adb rebootWait for the device to fully boot before continuing.
After the device has booted, mount the required filesystems into the chroot:
adb shell su -c "mount -t proc proc /data/local/debian/proc"
adb shell su -c "mount -t sysfs sysfs /data/local/debian/sys"
adb shell su -c "mount -o bind /dev /data/local/debian/dev"
adb shell su -c "mount -t devpts devpts /data/local/debian/dev/pts"Also mount shared memory:
adb shell su -c "mkdir -p /data/local/debian/dev/shm"
adb shell su -c "mount -t tmpfs tmpfs /data/local/debian/dev/shm"
adb shell su -c "chmod 1777 /data/local/debian/dev/shm"Set up internet access inside the chroot:
adb shell "echo 'nameserver 8.8.8.8' | su -c 'tee /data/local/debian/etc/resolv.conf > /dev/null'"Access the device shell and enter the Debian chroot:
adb shell
su
bootdebianUpdate the system:
apt update && apt upgrade -yInstall the required packages:
apt install labwc seatd xwayland xfce4 xfce4-goodies xfce4-terminal xfce4-settings wvkbd wlr-randr swaybg tango-icon-theme fastfetch btop firefox-esr mesa-vulkan-drivers vulkan-tools -yExit the chroot (exit twice to return to your PC), then write the udev calibration rule for the touchscreen:
adb shell "echo 'ENV{LIBINPUT_CALIBRATION_MATRIX}=\"0 1 0 -1 0 1\"' | su -c 'tee /data/local/debian/etc/udev/rules.d/99-touch.rules > /dev/null'"Unmount the temporary filesystems:
adb shell su -c "umount /data/local/debian/dev/pts"
adb shell su -c "umount /data/local/debian/dev/shm"
adb shell su -c "umount /data/local/debian/dev"
adb shell su -c "umount /data/local/debian/sys"
adb shell su -c "umount /data/local/debian/proc"Connect your device via ADB and run the startup script directly:
adb shell "su -c '/data/local/tmp/script.sh'"Currently, the only way to exit is by rebooting the device. LOL
Sometimes you may need to reboot the device!
If you encounter a black screen, try running the script while the device screen is active and unlocked.
