Add Waydroid Guide to CSDocs

This commit is contained in:
MCDeltaT 2023-01-22 11:00:15 +00:00 committed by Cloudburst
parent 66ecb32e9a
commit 18034050c7
1 changed files with 201 additions and 0 deletions

View File

@ -5,3 +5,204 @@ icon: /static/linux.svg
--- ---
You can download this app on Android, Android TV, and FireTV Stick. However, it is unfortunately not avaliable on IOS or on desktop, but you can use tools like [!badge variant="primary" size="l" icon="https://github.com/waydroid.png" text="Waydroid"](https://waydro.id/) or [!badge variant="primary" size="l" icon="https://github.com/anbox.png" text="Anbox"](https://anbox.io/) to emulate android apps on linux. You can download this app on Android, Android TV, and FireTV Stick. However, it is unfortunately not avaliable on IOS or on desktop, but you can use tools like [!badge variant="primary" size="l" icon="https://github.com/waydroid.png" text="Waydroid"](https://waydro.id/) or [!badge variant="primary" size="l" icon="https://github.com/anbox.png" text="Anbox"](https://anbox.io/) to emulate android apps on linux.
# Waydroid
## Install WayDroid
### Fedora 36
> **NOTE: Kernels 5.18.18 to 5.19.5 are broken**
1. Add the Copr repository
```sh
sudo dnf copr enable aleasto/waydroid
```
2. Install waydroid
```sh
sudo dnf install waydroid
```
When launching waydroid from the application menu you'll be asked to initialize waydroid with some android images. Use the following links:
System OTA: `https://ota.waydro.id/system`
Vendor OTA: `https://ota.waydro.id/vendor`
> NOTE: THIS WILL DOWNLOAD NON-FREE COMPONENTS (ffmpeg, possibly others)
### Ubuntu 22.04
- Install Pre-requisites
```sh
sudo apt install curl ca-certificates -y
```
- The Repo
Add the repo to your sources.list (for droidian & ubports, this step can be skipped)
Replace DISTRO="jammy" with your current target. Options: focal, jammy, ubuntu-devel, bookworm, bullseye, sid
```sh
export DISTRO="jammy"
```
```sh
sudo curl --proto '=https' --tlsv1.2 -Sf https://repo.waydro.id/waydroid.gpg --output /usr/share/keyrings/waydroid.gpg && \
echo "deb [signed-by=/usr/share/keyrings/waydroid.gpg] https://repo.waydro.id/ $DISTRO main" > ~/waydroid.list && \
sudo mv ~/waydroid.list /etc/apt/sources.list.d/waydroid.list && \
sudo apt update
```
- Install Waydroid
```sh
sudo apt install waydroid -y
```
Then start Waydroid from the applications menu.
----
### GPU Requirements
Waydroid currently works best with Intel GPUs. They should work out of the box.
AMD GPUs appear to have mixed results (in particular, the _RX 6800_ does not work); if Waydroid does _not_ work you might also want to try the NVIDIA instructions below.
NVIDIA GPUs do _not_ work currently, but there are 2 workarounds:
- Switch to integrated graphic card if possible;
- Use software rendering:
- Make sure that you have already run `waydroid init` (see [#Installation](https://wiki.archlinux.org/title/Waydroid#Installation) section)
- Edit `/var/lib/waydroid/waydroid_base.prop` and set:
```
ro.hardware.gralloc=default
ro.hardware.egl=swiftshader
```
- [Restart](https://wiki.archlinux.org/title/Restart "Restart") the `waydroid-container.service`.
## Install and Run Android Applications
Waydroid is able to perform a few various operations found by using the waydroid app -h command:
```
usage: waydroid app [-h] {install,remove,launch,list} ...
optional arguments:
-h, --help show this help message and exit
subaction:
{install,remove,launch,list}
install push a single package to the container and install it
remove remove single app package from the container
launch start single application
list list installed applications
```
To launch an app ising CLI, you would want to use the waydroid app launch <appname> command:
```sh
waydroid app launch xyz.apk
```
You can also install Android applications from the command line.
```sh
waydroid app install xyz.apk
```
The apk files you will sometimes find on the internet tend to only have arm support, and will therefore not work on x86_64.
You may want to install [F-Droid](https://f-droid.org/) to get applications graphically. Note that the Google Play Store will not work as is, because it relies on the proprietary Google Play Services, which are not installed.
## Waydroid Prop Options
Waydroid uses various properties in order to tell the underlying Android system how to behave in a few places. To do this, we use the `waydroid prop` command. To unset a prop, `waydroid prop set <property> ""`
### Properties
- waydroid prop set persist.waydroid.multi_windows true/false (bool) Enables/Disables persistent freeform window mode
- waydroid prop set persist.waydroid.invert_colors true/false (bool) Swaps the color space from RGBA to BGRA (only works with our patched mutter so far)
- waydroid prop set persist.waydroid.height_padding 0-9999 (int) Adjust Height padding (30 will allow you to use navbar on mobile)
- waydroid prop set persist.waydroid.width_padding 0-9999 (int) Adjust width padding
- waydroid prop set waydroid.display_width 0-9999 (int) (auto-generated) Auto generated size of Waydroid screen
- waydroid prop set persist.waydroid.width 0-9999 (int) Used for user to override desired resolution
- waydroid prop set persist.waydroid.suspend true/false (bool) Keep Waydroid awake and do not let container sleep
## Setting up a shared folder
Setting up a shared folders to copy files from `source` to `target`.
> `Source` files will be accessible from `Target` but not Editable.
```sh
sudo mount --bind <source> <target>
```
> We will setup the `host` folder to copy files from the host, and the `droid` folder to copy files from waydroid.
Example:
- Copy files from Linux to Waydroid:
- on Waydroid Create a `/Waydroid/host` folder
- on Host Create a `~/Waydroid/host` folder
```sh
mkdir ~/Waydroid/host
```
- Bind Linux folder to the Android one
```sh
sudo mount --bind ~/Waydroid/host ~/.local/share/waydroid/data/media/0/Waydroid/host
```
- Copy files from Waydroid to Linux :
- on Waydroid Create a `/Waydroid/droid` folder
- on Host Create a `~/Waydroid/droid` folder
```sh
mkdir ~/Waydroid/droid
```
- Bind Linux folder to the Android one
```sh
sudo mount --bind ~/.local/share/waydroid/data/media/0/Waydroid/droid ~/Waydroid/droid
```
## Clipboard
> Replace `dnf` with the appropriate command for your distro.
- Install pip
```sh
sudo dnf install pip
```
- install wl-clipboard
```sh
sudo dnf install wl-clipboard
```
- install pyclip
```sh
pip install --upgrade pip pyclip
```
- add `$HOME/.local/bin/` to your $PATH
add
```
export PATH="$PATH:$(du "$HOME/.local/bin/" | cut -f2 | tr '\n' ':' | sed 's/:*$//')"
```
to the appropriate file `.zshenv` or `.bashrc` or `.profile`
- reboot the system