Anyone Successfully Run WayDroid on Librem 5?

Continuing further, I tried using the upstream images version 17 as well as 18. Both seem broken. Waydroid does not start with those images. For some odd reason, using those images seems to break the entire Waydroid installation as reverting back to the @dos’s images does not help. The only thing that helped was a complete uninstall and a reinstall of Waydroid as per @sim6’s shell script from this post above.

I used Aurora AppStore and it seems to be working fine. Apps get installed properly and do work as intended and expected.

Buoyed by that initial encouragement, I tried a corporate app from my office. It is in bin format with download available via a browser URL. The default Waydroid browser does not download it properly. (it only downloaded in kilobytes when the actual download size is in MB). I then tried using different browser. Chrome (downloaded via the Aurora AppStore) fails to install with some error message. The same issue is observed with the chrome.APK file downloaded via APKPure website. So, all in all, Chrome does not get installed.

I had luck downloading the bin file via my default trusty friend, Firefox installed via AppStore. (I then removed it as it makes no sense having Firefox on PureOS as well as Waydroid).

Next thing, there is no app on Waydroid that can install a bin file. I tried a lot of App Installer, ISO burner etc. applications but none of them worked.
I then changed the extension of the coporate app from bin to apk. The Waydrid application get downloaded to /var/lib/waydroid/data/media/0/Download location on the phone. Although the APK file is available via Files app on Waydroid it does not get installed. I then managed installing it using the waydroid app install command. It works and the app gets installed.
When attempted to launch the app, it fails with a message, `this app does not work with rooted Android’. All pain and no gain :frowning:

Nevertheless, so much for learning,. Question, is there a way to make the App thing the OS is not rooted?

I’ve never used it, but have a look at magisk

Maybe I was not clear enough; my corporate app thinks I am running a rooted Android system. What I wanted to understand is if there is a way to make the App think the device (Waydroid in this case) is not a rooted Android system.

@Gavaudan did I miss something with you post? I do not want to root the system but want to App to think that it is running on a non-rooted system.

Magisk can hide the fact that you have root rights. I could imagine that it could help.

2 Likes

What @st.boom said. Maybe that first article wasn’t clear, try this one.

https://android.gadgethacks.com/how-to/completely-hide-root-using-magisk-0201243/

1 Like

Since all the needed dependencies have finally migrated into byzantium and upstream images have been fixed today, I’ve written a guide on how to install and configure Waydroid on Librem 5.

It’s about to become much simpler in a week or two once libglibutil, libgbinder, gbinder-python and maybe even waydroid itself show up in the repositories, however, for now you’ll have to build them yourselves - but don’t worry, all you have to do that is to follow the instructions :wink:

Enjoy!

24 Likes

it’s running great!
But as soon as I install the microg stuff waydroid doesn’t boot up anymore.

Argh, my bad! Fixed the instructions; you can fix it up without redoing everything with:

sudo wget -O /var/lib/waydroid/overlay/system/etc/permissions/privapp-permissions-com.google.android.gms.xml https://github.com/lineageos4microg/android_vendor_partner_gms/raw/020fb706f1b645150858228f403502b705b4857b/GmsCore/privapp-permissions-com.google.android.gms.xml

(the URL I copied pointed to HTML with download link instead of the file itself :sweat_smile:)

6 Likes

Cool. I followed the instructions, and it works except for internet (I have also tried several reboots of the phone without luck). Is there anyting you have to do inside waydroid in order to get network?

Works for me - do you have some custom firewall rules configured maybe? Check out https://docs.waydro.id/debugging/networking-issues

4 Likes

After the correction, it now runs without any problems for me. Internet access also.

Thanks. I forgot I had set up ufw. I tried allowing port 53 and 67, but I still had some problems. With these port enabled waydroid did not complain about missing network but it did still not work. Disabling ufw worked though, so probably something I can fix with the firewall setup.

Update: In order to get network in waydroid with ufw enabled I had to run ufw default allow routed. I’m not too familiar with ufw, so it might be a better way to accomplish this.

Thanks @dos for the super detailed instructions.
It works perfectly now with the upstream images as well.

I enabled the F-Droid, Aurora and microG as explained. I see the “microG Services Core keeps stopping” pop-up. Could that be a microG issue? Or anything with the setup?

1 Like

Excellent work Dos! Working like a champ on my L5. I have not installed anything other then getting Lineage to boot one time. :+1:

Edit: one other thing I forgot to mention is that performance with waydroid seems to be really good. I’m impressed!

4 Likes

Works for me - although fwiw I haven’t connected it to any Google account. Maybe try resetting the container:

waydroid session stop
sudo rm -rf ~/.local/share/waydroid /var/lib/waydroid/overlay
sudo mkdir /var/lib/waydroid/overlay

and redo the installation of privileged apps. If it happens again, check the logs in sudo waydroid logcat.

1 Like

@dos, I will try and respond back.

@david.hamner, can there be a video announcement of this excellent work?

With a perfectly working Waydroid on Librem 5, the usability of the phone increases in leaps and bounds, going from very few Apps to al carte of Apps to choose from. This is like from nowhere to everywhere.

Great work. :+1: :+1: :+1: :clap:

2 Likes

@dos, it is now working. Thanks

Where did you people get the 6.0.2 kernel containing fixes?

purism@pureos:~$ sudo apt dist-upgrade
[sudo] password for purism: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  linux-image-6.0.0-1-librem5 linux-image-librem5 linux-libc-dev phosh phosh-mobile-tweaks phosh-plugins
6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 18.7 MB of archives.
After this operation, 8192 B disk space will be freed.
Do you want to continue? [Y/n]
purism@pureos:~$ apt show linux-image-6.0.0-1-librem5
Package: linux-image-6.0.0-1-librem5
Version: 6.0.6pureos1
2 Likes

hi all when i try to compile
gbp clone https://source.puri.sm/Librem5/debs/libgbinder --debian-branch=pureos/byzantium
cd libgbinder
sudo apt build-dep .
gbp buildpackage --no-sign

i get the following error.

make[2]: Entering directory ‘/home/purism/waydroid-deb/libgbinder/test/binder-ping’
make[3]: Entering directory ‘/home/purism/waydroid-deb/libgbinder/test/binder-ping’
make[3]: warning: jobserver unavailable: using -j1. Add ‘+’ to parent make rule.
cc build/release/binder-ping.o -fPIC -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lglibutil …/…/build/release/libgbinder.so.1.1.26 -o build/release/binder-ping
make[3]: ‘build/release/libgbinder.so.1.1.26’ is up to date.
make[3]: ‘build/release/libgbinder.so.1’ is up to date.
make[3]: Leaving directory ‘/home/purism/waydroid-deb/libgbinder’
strip build/release/binder-ping
install --strip-program=true -m 755 build/release/binder-ping /home/purism/waydroid-deb/libgbinder/debian/tmp/usr/bin
install: WARNING: ignoring --strip-program option as -s option was not specified
make[2]: Leaving directory ‘/home/purism/waydroid-deb/libgbinder/test/binder-ping’
make[1]: Leaving directory ‘/home/purism/waydroid-deb/libgbinder’
dh_install
dh_installdocs
dh_installchangelogs
debian/rules execute_before_dh_installman
make[1]: Entering directory ‘/home/purism/waydroid-deb/libgbinder’
for n in debian/tmp/usr/bin/binder-; do
help2man -n “testing tool for libgbinder” -N --version-string=‘1.1.26’ “$n” > debian/${n##
/}.1;
done
help2man: can’t get --help' info from debian/tmp/usr/bin/binder-bridge Try –no-discard-stderr’ if option outputs to stderr
help2man: can’t get --help' info from debian/tmp/usr/bin/binder-call Try –no-discard-stderr’ if option outputs to stderr
help2man: can’t get --help' info from debian/tmp/usr/bin/binder-list Try –no-discard-stderr’ if option outputs to stderr
help2man: can’t get --help' info from debian/tmp/usr/bin/binder-ping Try –no-discard-stderr’ if option outputs to stderr
make[1]: *** [debian/rules:27: execute_before_dh_installman] Error 127
make[1]: Leaving directory ‘/home/purism/waydroid-deb/libgbinder’
make: *** [debian/rules:32: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
debuild: fatal error at line 1182:
dpkg-buildpackage -us -uc -ui -i -I failed
gbp:error: ‘debuild -i -I --no-sign’ failed: it exited with 29
purism@pureos:~/waydroid-deb/libgbinder$