this post was submitted on 11 May 2024
204 points (99.5% liked)

Linux

47946 readers
1888 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I used to hate android emulators, since the ones I'd tested on Windows were ad-ridden, slow bloatware.

The other day I needed to run an android app on Fedora 40.

I tried Waydroid and it worked very well. The app ran supersmooth as if it was running natively.

Also the cli syntax was very sane an user friendly.

waydroid app install|run|list ...

So if you need an Android app on linux the experience might be better than what you think it would be.

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 54 points 5 months ago (3 children)

I think a part of your positive experience is also thanks to Linux. Android emulation works better on it because the difference between Linux and Android is not that big and definitely not as big as between Windows and Android. Though Waydroid rocks anyways

[–] [email protected] 29 points 5 months ago (2 children)

It took a long long time until Android emulators on Linux worked even close to what has been available on Windows.

[–] [email protected] 14 points 5 months ago (1 children)

But now the windows one is getting scrapped whereas Waydroid is presumably sticking around.

load more comments (1 replies)
[–] [email protected] 6 points 5 months ago

this is not really quite true, we have always been able to run androidx86/BlissOS in qemu which works about "as well" but with less integration, IE no "native like" windows

[–] [email protected] 28 points 5 months ago (2 children)

The documentation says:

Waydroid uses Linux namespaces (user, pid, uts, net, mount, ipc) to run a full Android system in a container and provide Android applications on any GNU/Linux-based platform.

To my understanding this isn't even emulation but regular container technology.

[–] [email protected] 13 points 5 months ago* (last edited 5 months ago)

Yes, Waydroid uses lxc containers.

[–] [email protected] 9 points 5 months ago (3 children)

Wouldn't some Android Apps require specific builds for x86 architectures? Does Android take care of that?

[–] [email protected] 16 points 5 months ago (1 children)

If you need arm, then you probably have to install libhoudini https://github.com/casualsnek/waydroid_script

[–] [email protected] 5 points 5 months ago

libhoudini is optimized for Intel, NDK for AMD, but some apps may be incompatible with one or the other.

[–] [email protected] 9 points 5 months ago

A lot of android apps are built using Java/Kotlin, so you don't actually need to care about architecture since the JVM supports both x86_64 and arm64.

There are exceptions to this though, since some apps need to run native code. Those apps would need some sort of emulation/translation layer for the arm instructions.

[–] [email protected] 5 points 5 months ago

most android apps are architecure agnostic "java, kotlin etc" and even apps that are often ship "Universal binaries" which include x86, or split builds for arm and x86

[–] [email protected] 4 points 5 months ago* (last edited 5 months ago) (1 children)

Android emulation works better on it because the difference between Linux and Android is not that big

To be clear, the difference between Linux and Android is about the same as the difference between Linux and Fedora, in that they are both Linuxes. That's why this works, and why the reverse (running GNU/Linux apps and even entire systems on Android) is possible as well.

[–] [email protected] 5 points 5 months ago* (last edited 5 months ago) (1 children)

I meant a desktop Linux distro, not the kernel itself. And Android has a ton of bloatware on top of it so it's not really the same thing. Android has like a double decker kernel

[–] [email protected] 3 points 5 months ago (8 children)

AOSP doesn't have that much bloat, it's far lighter then your typical linux distro, It's vendors that bloat it up, Custom roms are extremely light, This is BlissOS running on 2Gb of ram https://files.catbox.moe/4n17z3.mp4.

It's far more responsive then many linux distros would be since android and it's applications are optimized around low ram and low system resource in general

load more comments (8 replies)
[–] [email protected] 44 points 5 months ago (1 children)

The app ran super smooth as if it was running natively

That's because it is native! Waydroid runs an android container on top of your existing kernel. You will notice that you can even see the Android processes while running Waydroid in a top utility.

[–] [email protected] 10 points 5 months ago (2 children)

Although the Android kernel is slightly customized isn't it? I thought it exposed a few extra syscalls. How do these work on Waydroid?

[–] [email protected] 13 points 5 months ago

https://wiki.archlinux.org/title/Waydroid#Kernel_Modules

You must use a kernel with the android-specific modules compiled in, or use the binder_linux-dkms module. I've noticed using a kernel with them built in is generally easier to get working.

[–] [email protected] 7 points 5 months ago

some android kernels are, but AOSP itself can run perfectly happy on a vanilla kernel, just make sure your kernel was compilled with BINDER enabled, which yes, is upstream

[–] [email protected] 17 points 5 months ago (6 children)

I just tried it 3 days ago on Fedora 40, Did not run for me.

Followed their wiki

How did you setup?

[–] [email protected] 7 points 5 months ago

I don't remember tbh. I installed it a couple of years ago but used it for the first only recently.

[–] [email protected] 6 points 5 months ago (1 children)

Yeah I tried it on pop os a while back and never could get it running at all

[–] [email protected] 7 points 5 months ago (2 children)

Are yiu sure you're running Wayland and not X11?

[–] [email protected] 6 points 5 months ago

Actually I was thinking of my arch system. You're right, I'm on x11

[–] [email protected] 4 points 5 months ago

Yeah I'm on Wayland

[–] [email protected] 4 points 5 months ago (1 children)

At what point did it not work for you? I just got it running on Fedora 40 following their wiki.

[–] [email protected] 3 points 5 months ago (2 children)
Failed to get service waydroidplatform

on doing waydroid app install myapk.apk

ERROR: WayDroid container service is already running

IT says already running on doing sudo waydroid container start

[–] [email protected] 4 points 5 months ago* (last edited 5 months ago)

I got it into android "desktopt" previously, but now after rebooting and trying to install an apk it seems to no longer be opening at all. Sorry :/

Edit: I just uninstalled and reinstalled via the software Center and now it works and I could install F-Droid.

[–] [email protected] 1 points 5 months ago (1 children)

don't run sudo that breaks things

[–] [email protected] 1 points 5 months ago (1 children)
[–] [email protected] 1 points 5 months ago

ah my bad, I misread, I thought you had tried sudo waydroid app install.

Failed to get service waydroidplatform usually happens when something fails when communciating to the container, this usually means the container is partially loaded so you will need to stop it and start again, you may even need to do a full reboot

[–] [email protected] 3 points 5 months ago

You need a custom kernel, or a kernel module plus DKMS and kernel headers for your current kernel.
You also need the package that handles whatever filesystem they use for their containers.
Then, you need to be running it on Wayland or else it doesn't work.
The part that I'm stuck on is running games, which gives an error about not being able to find libmain.so, which might be an architecture mismatch problem. Maybe I can virtualize that part? But at that point I might as well just buy a phone.

[–] [email protected] 1 points 5 months ago

can you report your issues to the waydroid github or check on the fedora forums? the matrix and telegram chats are always open to help too if you have a bit of patience.

load more comments (1 replies)
[–] [email protected] 16 points 5 months ago

I tried Waydroid and it worked very well. The app ran supersmooth as if it was running natively.

thats because it was running natively

[–] [email protected] 4 points 5 months ago

Used it but couldn't play any media on it, which was going to be my use case. Nvidia!!!!!. But the devs and the community are quite patient and helpful in their telegram channel.

load more comments
view more: next ›