Skip to content(if available)orjump to list(if available)

Waydroid – Android in a Linux container

dchuk

What I’d love to see is a containerized android that can be fired up on a Mac (using docker desktop or orbstack or whatever) that I can modify the docker image of to have rooted man in the middle proxy already setup, making it much easier to drop an Android app onto to observe the network traffic and api calls.

bsimpson

Surprised to see this on the frontpage - it's a well known piece of software.

It's unfortunate that there are no Google-vended images (e.g. the generic system image) that run on Waydroid. Typing my password into random ROMs from the internet sketches me out.

https://source.android.com/docs/core/tests/vts/gsi

seabass-labrax

I wouldn't say it runs a "random ROM from the internet" - LineageOS is a very well-established project and is fully FOSS (free and open source software) except for firmware necessary for specific devices. It is the natural choice for any project, such as Waydroid, that requires good community support and ongoing availability.

Over a number of years, Google have progressively removed many of the original parts of AOSP (the FOSS foundation upon which Android is based), which means that alternative components have to be developed by projects like LineageOS. In spite of this, I suspect that LineageOS makes fewer modifications to AOSP than most phone vendors do, including Google themselves!

westurner

Just had a conversation about this on a waydroid github issue. The LineageOS X86 image is outdated compared to also open source Bliss OS' Android 12.

/? Android play store APK GitHub actions

It looks like Android Emulator has the most current version of Android that will run on x86?

Onavo

Google provides one that runs in Docker

Demiurge

Does this allow the container access a hardware USB device? I have Mooondrop FreeDSP usb-c cable with an PEQ that only works with a terrible Android app, and it takes forever to change the EQ settings via an Android tablet I have, that has terrible touch screen. I wish I could just use my linux laptop to do it.

jaidan

This was the basis of how FuriLabs managed to get such good Android app integration. Obviously they’ve forked it [0] and heavily modified it, but the user experience they’ve created with this to allow Android apps on a Linux phone has been great.

[0] https://github.com/FuriLabs/waydroid

GranPC

Hi, Jesus from FuriLabs here! We're just winding down from FOSDEM but happy to answer any questions & feedback :)

pizzalife

Since Binder is a kernel feature, how do they get it to work?

Muromec

What does this binder thing even do? I get it's an IPC something, but why does android need it's own special kernel-level IPC?

teraflop

There's some general information about it here: https://elinux.org/Android_Binder

A binder transaction behaves sort of like a syscall, in the sense that a client process can immediately, synchronously transfer control to a server thread, rather than just enqueueing a message to be processed whenever the server gets around to it.

This enables Android to separate many of its components into different processes (at different privilege levels), and use binder for RPCs that are on the "critical path" for user interaction, without incurring impractical amounts of overhead or latency.

esprehn

Wikipedia has a good explanation of Binder and the history which goes way back to Be OS.

https://en.wikipedia.org/wiki/OpenBinder

It's more like a micro services framework that abstracts threads and processes.

Fuchsia takes the approach to the conclusion and powers the entire OS through a similar system:

https://fuchsia.dev/fuchsia-src/concepts/fidl/overview

homebrewer

You're expected to install a kernel that has the module, or build it yourself. I use linux-zen which ships binder out of the box.

yonatan8070

Accrding to the Arch Wiki, it uses the kernel modules. Have a look at section 1.4 here: https://wiki.archlinux.org/title/Waydroid

refulgentis

written 6 years ago: "The binder kernel driver has been present in the upstream Linux kernel for quite a while now."

https://brauner.io/2019/01/09/android-binderfs.html

gnabgib

Popular in 2021 (684 points, 207 comments) https://news.ycombinator.com/item?id=28616985

sweeter

What Im surprised about is that no one has abstracted this out so you can run multiple Android containers under LXC. With Waydroid, you have one image. From what I can see they use a custom Linux kernel with a lot of patches and I wasn't really able to get a handle on it, but the LXC interface stuff is pretty simple.