在Archlinux KDE下使用Waydroid

2023-07-16 12:32 | Arch Linux日用 | #Linux#

目录

    这几天装回了Arch Linux,尝试一下Waydroid。

    启用Wayland环境

    Waydroid顾名思义:Wayland + Android,需要在Wayland下运行。

    使用这个命令检查当前session是否使用Wayland:

    echo $XDG_SESSION_TYPE
    

    使用Plasma Wayland Session

    对于Arch Linux,需要安装plasma-wayland-session这个包

    sudo pacman -S plasma-wayland-session
    

    从Display Manager再次登陆,选择Plasma(Wayland) Session即可

    使用weston以在X11下运行

    sudo pacman -S plasma-wayland-session
    

    weston会打开一个新的窗口(使用Wayland的协议),在其左上角打开终端即可启动程序。

    安装Waydroid

    强烈建议: 请先启用[archlinuxcn]源 请先启用[archlinuxcn]源 请先启用[archlinuxcn]源 节约下载时间(在国内)

    安装binder模块

    sudo pacman -S binder_linux-dkms #请先启用[archlinuxcn]源
    sudo modprobe binder_linux
    

    切换root,加入模块

    sudo -s #切换root
    echo "binder_linux">> /etc/modules-load.d/binder.conf
    

    安装Waydroid和镜像

    sudo pacman -S waydroid waydroid-image-gapps #请先启用[archlinuxcn]源
    

    配置Waydroid

    初始化Waydroid

    Waydroid,启动!(雾)

    sudo waydroid init -s GAPPS -f
    sudo systemctl start waydroid-container
    sudo systemctl enable waydroid-container
    

    使用Waydroid Script

    从AUR安装

    yay -S waydroid-script-git
    

    从源安装(不推荐)

    克隆仓库,并安装依赖

    git clone https://github.com/casualsnek/waydroid_script
    cd ~/waydroid_script
    sudo python3 -m pip install -r requirements.txt
    

    注意:这里的第三步命令需要bash类shell才能执行,使用fish这样的非传统shell会出错

    之后就能运行里面的main.py

    注册Google框架

    待补充

    开启ARM转译

    AMD的cpu安装libndk

    sudo waydroid-extras -n
    

    Intel的cpu安装libhoudini

    sudo waydroid-extras -l
    

    使用Waydroid

    全屏模式:waydroid show-full-ui

    Android Shell:sudo waydroid shell

    安装APK:waydroid app install $APK

    开启多窗口

    waydroid prop set persist.waydroid.multi_windows true
    sudo systemctl restart waydroid-container
    

    小技巧

    from : https://zhuanlan.zhihu.com/p/631327119

    有的app不识别鼠标点击事件

    waydroid prop set persist.waydroid.fake_touch $package-name
    #此命令必须随每一次"waydroid session start"启动而执行一次,否则失效
    

    有的app即使联网了也不能上网,浏览器能上网但不能下载东西

    waydroid prop set persist.waydroid.fake_wifi $package-name
    #此命令必须随每一次"waydroid session start"启动而执行一次,否则失效
    

    卸载Waydroid

    waydroid session stop
    sudo systemctl stop waydroid-container
    yay -Rsn waydroid
    sudo rm -rf /var/lib/waydroid /home/.waydroid ~/waydroid ~/.share/waydroid ~/.local/share/applications/*aydroid* ~/.local/share/waydroid
    

    后记

    Wayland目前来说bug比较多,(尤其是non-native)应用支持比较差,只能说未来可期,不建议日用。