Aliendalvik not starting after update to 4.5.0.16

We were bitten by this and after hours of debugging it turned out it was caused by a left-over Waydroid installation. If you have the waydroid package installed, just remove it and wait a few minutes (the AlienDalvik service will be restarted and then launch correctly after removing it).

If you are affected by this issue, you will see a bunch of log messages from the “Parcel” logger in the Android boot log (not journalctl, see below!) complaining about messages in an incompatible format being received.

Some lessons/tricks learned:

  • To get a boot log for the Android environment use:
    sudo -u appsupport-root lxc-attach --lxcpath="$(/usr/sbin/appsupport-config --lxc-path)" -n "$(/usr/sbin/appsupport-config --name)" -- /system/bin/bootstrap/linker64 /system/bin/logcat
    (Note the use of the custom …/bootstrap/linker64 to work around the main linker not being available yet from its APEX package)
  • To recreate the AlienDalvik LXC container without data loss use:
    sudo systemctl stop aliendalvik
    sudo umount /opt/alien/rootfs
    sudo lxc-destroy --lxcpath="$(/usr/sbin/appsupport-config --lxc-path)" -n "$(/usr/sbin/appsupport-config --name)"
    sudo systemctl restart aliendalvik-prepare.service
    
  • To reinstall all packages (effectively a dirty re-flash) use:
    sudo zypper in -f $(rpm -q -a --qf '%{NAME} ')
11 Likes