408 Commits

Author SHA1 Message Date
Jami Kettunen
e7d73e7ff9 initializer: Add alternate version detection logic for Halium 15+
VNDK is deprecated[1] from 15 onwards with its files now largely just
present as normal vendor partition contents. On Volla Phone Quintus with
UT port rebased to latest Android firmware on kernel v6.6[2]
ro.vndk.version is no longer defined while the best alternative for the
same job seems to be ro.vendor.build.version.sdk=35

[1] https://source.android.com/docs/core/architecture/vndk#vndk-deprecation
[2] https://gitlab.com/ubports/porting/reference-device-ports/halium13/volla-phone-quintus/volla-algiz/-/tree/halium-16.0
2026-07-24 11:35:43 +02:00
TheKit
2f723c6cf9 lxc: forward ro.vendor.arm.egl.* props for newer Mali devices 2026-07-15 19:38:14 +02:00
NotKit
a33a5c0b31 Merge pull request #2218 from JamiKettunen/aidl-gralloc5
Detect AIDL gralloc5
2026-07-07 14:18:25 +03:00
Nikolay Metchev
5f19fe9c4c lxc: Fix post-stop hook erroring on every container stop
The post-stop hook was set to `/dev/null` as a no-op. Its actual purpose
(see #436) is to make LXC suppress auto-respawning the container when the
guest reboots/crashes, since waydroid manages the session lifecycle itself
-- LXC suppresses the respawn when the post-stop hook exits non-zero, and
/dev/null "achieves" this only because it is not executable.

The side effect is that the hook fails on *every* container stop, including
a normal shutdown, logging an error that users routinely misdiagnose:

    lxc-start: waydroid: utils.c: run_buffer: 569 Script exited with status 126
    lxc-start: waydroid: start.c: lxc_end: 1178 Failed to run lxc.hook.post-stop for container "waydroid"

(Reproduced on LXC 7.0.0; status 126 is execve() of the non-executable
/dev/null.)

Replace it with a real post-stop script that keys off LXC_TARGET: exit 0 on
"stop" so a routine `waydroid session stop` is clean, and non-zero otherwise
(reboot, or an unset value on older LXC) to preserve the respawn-suppression.
The script path is substituted into the generated config in set_lxc_config(),
mirroring the existing LXCARCH handling.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-20 17:26:57 +02:00
Alessandro Astone
5b7e2e71be debian: Upver to 1.6.3 1.6.3 2026-05-28 22:02:24 +02:00
Alessandro Astone
e52e4e68be Upver to 1.6.3 2026-05-28 21:59:53 +02:00
SupeChicken666
73fed11b46 gpu: Remove radeon from Vulkan driver map 2026-05-10 09:22:30 +02:00
SupeChicken666
e777a8d51a hardware_manager: Handle Android reboot/shutdown properly
Signed-off-by: SupeChicken666 <me@supechicken666.dev>
2026-05-09 18:56:00 +02:00
SupeChicken666
9478d59ad5 protocol: Use aidl6 for service manager on API 36+
Signed-off-by: SupeChicken666 <me@supechicken666.dev>
2026-04-26 18:12:49 +02:00
SupeChicken666
c0dd5fc5a2 protocol: Use aidl5 for service manager on API 35+
This fixes integration on A15+

Signed-off-by: SupeChicken666 <me@supechicken666.dev>
2026-04-26 18:12:49 +02:00
Arkadiusz Bokowy
69041ce5f1 tools: Fix "file is not always closed" CodeQL warning 2026-03-29 22:28:39 +02:00
Arkadiusz Bokowy
13cb638f50 tools: Fix all occurrences of catching bare exceptions 2026-03-29 16:52:15 +02:00
Twig6943
54032dac88 Add comment to desktop file (#2261) 2026-03-29 16:47:49 +02:00
Alessandro Astone
5e3725e86b notification_manager: Handle missing ActivationToken signal
A notification server may not implement ActivationToken.
Do not raise an exception in that case.

Closes: https://github.com/waydroid/waydroid/issues/2246
2026-03-10 21:29:23 +01:00
Arkadiusz Bokowy
7204bd49c1 tools: Fix all occurrences of unused variable warning 2026-03-10 20:36:41 +01:00
Arkadiusz Bokowy
d7e6bc0868 GitHub Action with Python code static analysis 2026-03-01 02:34:12 +01:00
Alessandro Astone
c1138bb96e debian: Upver to 1.6.2 1.6.2 2026-02-22 11:51:38 +01:00
Alessandro Astone
3ea322822a Upver to 1.6.2 2026-02-22 11:51:17 +01:00
Alessandro Astone
4cd9708568 initializer: Further avoid multiprocessing spawn errors
We abuse a global "args" dictionary to store all state, which may include
unserializable objects that cannot be passed to a new process with the
multiprocessing "spawn" method.

Create a new dict with only the strictly necessary keys for init to work.
2026-02-22 11:46:15 +01:00
Uzair Mughal
1d9fc1f3d7 logcat: Add support for passing arguments
Allow users to pass arbitrary arguments to the logcat command,
enabling filtering and formatting options like:
  waydroid logcat -s MyTag
  waydroid logcat -e "pattern"
  waydroid logcat -v time -d

Fixes #2217
2026-02-22 11:38:51 +01:00
Jami Kettunen
9bd8db09d5 Detect AIDL gralloc5
https://android.googlesource.com/platform/hardware/interfaces/+/refs/tags/android-14.0.0_r1/graphics/mapper/stable-c
2026-02-05 17:05:20 +02:00
Arkadiusz Bokowy
9ab1794045 interfaces: Remove unneeded semicolons from line ends 2026-01-27 19:54:48 +01:00
Arkadiusz Bokowy
225a52f969 user_manager: Fix desktop file update logic for headless apps
In case the app has been changed to headless, we should remove
previously installed desktop file and skip creating new one, so
the app will not appear in the launcher on Linux.
2026-01-27 19:54:48 +01:00
Arkadiusz Bokowy
7e946a070a user_manager: Use pathlib module for handling paths 2026-01-27 19:54:48 +01:00
Arkadiusz Bokowy
87a516a7b0 session_manager: Catch only GLib.GError exceptions
Catching exceptions without specifying the exception type is not
recommended since it will catch all exception, like import errors,
keyboard interruption or name errors.
2026-01-27 19:54:48 +01:00
Fa-Iz Faadhillah Ibrahim
926ec2fd99 gpu: add support for xe kernel driver 2026-01-06 17:45:57 +01:00
Alessandro Astone
abbaa01081 debian: Upver to 1.6.1 1.6.1 2025-12-29 18:05:31 +01:00
Alessandro Astone
4cc6726e1b Upver to 1.6.1 2025-12-29 18:03:25 +01:00
Alessandro Astone
6cfdbd7d82 tools: Restore early initialized check
Some actions can gracefully handle waydroid not having been initialized,
but some others do not. Let's restore an early filter for actions we want to
allow when uninitialized.
2025-12-29 17:58:20 +01:00
Alessandro Astone
27e203b1f2 initializer: Setup verbose logging in the remote init process
The multiprocessing 'spawn' method does not preserve changes to global imports
so we need to setup logging.verbose again in the new process.
2025-12-29 17:58:20 +01:00
Alessandro Astone
92a5279b67 initializer: Move remote init process to a toplevel function
The multiprocessing 'spawn' method only supports targeting toplevel functions.
It is the default in python3.14

Closes: https://github.com/waydroid/waydroid/issues/2158
2025-12-29 17:56:15 +01:00
Integral
9ea810f4b3 http: Standardize file size and download speed units
Update the representations of file sizes and download speeds to
correct the informal units (kb, mb, kbps and mbps):

- Changed kb to kB for kilobytes
- Changed mb to MB for megabytes
- Changed kbps to kB/s for kilobytes per second
- Changed mbps to MB/s for megabytes per second
2025-11-26 20:43:43 +01:00
zaf
52dba50ec9 Also consider block device files when checking for preinstalled images (#2136) 2025-11-26 20:42:22 +01:00
Alessandro Astone
79e2c2af43 debian: Upver to 1.6.0 1.6.0 2025-11-21 23:07:28 +01:00
Alessandro Astone
e80b890e50 Upver to 1.6.0 2025-11-21 23:05:00 +01:00
Alessandro Astone
21da80cf0b services: Add new notification manager
Forward requests to org.freedesktop.notifications

Closes: https://github.com/waydroid/waydroid/issues/211
2025-11-16 01:39:08 +01:00
trytomakeyouprivate
24d050bd19 readme: Add icon, links to website and FAQ 2025-11-13 00:23:09 +01:00
Alessandro Astone
bdfc00f136 github: Mention "waydroid bugreport" to attach logs 2025-11-13 00:03:46 +01:00
Alessandro Astone
62d4554fc6 initializer: Show meaningful text description in system type selection 2025-11-12 23:34:51 +01:00
Alessandro Astone
781b3babd8 initializer: Fixup bus exception handling
self.on_bus_error assumes that the exception is a dbus.DBusException
2025-11-12 23:34:51 +01:00
Alessandro Astone
f0b470b8c9 images: Fix TOCTOU bugs in checksum verification 2025-11-12 22:31:27 +01:00
Alessandro Astone
6e8e63db78 container_manager: Avoid potential race with DBus object vs name registration
All objects should already be registered once we expose our well-known bus name
2025-11-11 00:28:30 +01:00
Alessandro Astone
a62dfb6185 logging: Fixup starting when logfile does not exist 2025-11-11 00:28:30 +01:00
Alessandro Astone
03581f921f lxc: Fixup starting when logfile does not exist
The log file at this point may not exist if all waydroid calls were with
`--details-to-stdout`
2025-11-11 00:22:34 +01:00
Alessandro Astone
109e5ec72a tools: Do not hint about --details-to-stdout when already set 2025-11-11 00:22:34 +01:00
Alessandro Astone
fb1cdc3d1a tools: Make sure to log exceptions caught in DBus method calls 2025-11-11 00:22:34 +01:00
Alessandro Astone
34d9ccb2ed http: Report progress slower
Compute download speed and print download progress updates every 2 seconds;
0.01 seconds was too fast to compute any meaningful download speed, and it
unnecessarily floods our DBus progress reporting.

Make sure to also report progress if the download stalled, at 0mbps.
2025-11-11 00:22:34 +01:00
Alessandro Astone
bd5adeade3 init: Use DBus for reporting progress
Drop our terrible home-made socket-based IPC.
In its place, use DBus signals for communicating progress updates.
Also greatly simplify the remote-init multiprocessing/multithreading.
2025-11-11 00:20:44 +01:00
Alessandro Astone
5d6f413c40 init: Allow re-initializing while container daemon is running
* Make the container service always expose the initializer object on DBus
* Add `waydroid init --client` to always bring up the GTK initializer client
2025-11-11 00:20:44 +01:00
Alessandro Astone
fa2b74bae2 user_manager: Add user migration steps to cleanup stale desktop files 2025-11-10 23:38:05 +01:00