NOTE: This is a open wiki that is intended to collect Qubes-Android information into one spot, instead of in multiple posts. Please edit any mistakes you see
What Android Distribution to use?
There are multiple “android on PC” type distributions that one could try in a VM. Here are the 3 that I know of. (If you know of more, please add them to the list):
-
Android-x86 - to the best of my knowledge, no one is working on a a Android-x86 template. However, there is a (non-template) install guide for android-x86 here: Android-x86 qube installation guide.
- Note: BlissOS seems to be a deriviate of android-x86 and has install instructions later in the document. If you are having trouble getting android-x86 working, you might look there for ideas
-
BlissOS (apparently a derivative of Android-x86) - to the best of my knowledge, no one is working on a a BlissOS template. However, there can still be reasons to use BlissOS over waydroid, like for example that BlissOS definitely supports bluetooth, while waydroid does not. install instructions (non-template) for BlissOS are later in this article.
-
Waydroid - waydroid has a “Waydroid template” guide. This is probably the best starting point for most people. See it at: Waydroid template - #59 by apparatus
Other discussed distributions
- GrapheneOS seems to have a x86_64 option, (the string “x86_64 (emulator builds)” occurs in Releases | GrapheneOS changlog, however there does not appear to be a build for it). There has been talk about someone building a GrapheneOS template for qubes, but to the best of my knowledge, no one has picked up the offer). It has been discussed:
BlissOS install:
(This mostly comes from the steps @Cubadicto followed to install BlissOS in a qube with internet working (Bliss OS no internet connection - #6 by Cubadicto))
-
First choose a BlissOS version from: Bliss OS For PC
- (Note that selecting the major version (14, 15, or 16) is done at the tabs in the top few inches of the page)
- @Cubadicto recommends “not installing Go version but that should not be a problem.”, and he installed Bliss OS normal 15.9 if you want to install the same version ( BlissOS-x86 - Browse /Official/BlissOS15/Gapps/Generic at SourceForge.net )
- Additional comment: The instructions do not seem to work with 14.10, so using 15.9 is highly recommended for your first try
-
Choose a Bliss OS .iso.
-
Download Bliss OS and its sha256 file and check both checksums are equal, just to avoid possible strange errors.
-
Provision the Bliss OS qube,
- with enough space (almost 8GB),
- give enough ram (almost 2gb) don’t include qube in memory ballancing
- ensure the internet qube is sys-firewall, very important because ip address, gateway and dns need to be assigned to the qube.
- Note: Do not do PCI passthrough at this stage. For some reason it seems to interfere with booting to CD/iso for bliss.
- Save settings
-
very important! Do not move on until you can see all the following info in the qube settings
under the “net qube” section:- IP address
- netmask
- gateway
- virtual dns
You will need this information in a later step to get “virtual ethernet” working
-
Install Bliss OS via qube settings → Advanced → boot qube from CD-ROM. I recommend you to prepare partition for OTA updates. I have no idea if necessary, but worked in my case. I also recommend installing grub2 initializer. Also i recommend creating partition with dos tag instead of gtp tag if asked (when creating the partition)
- (insert note about option of running it live by doing the following at the boot menu of the CD(iso): “VM and other options…” → “Vbox/VMWare - No HW Acceleration”?)
-
Next follow this steps to boot Bliss OS in a qube (maybe u know but just to write down all steps): https://www.youtube.com/watch?v=piYcKnwpKPE . The steps it talks about are:
- boot to grub menu
- select “e” on top menu item
- Go to the end of the line that starts with “linux $kd/kernel”, then add a space and then add “nomodeset” to the end.
(you will need to do this each boot, (or go into debug and use vi to add it directly to /mnt/boot/grub/android.cfg))
-
When booted, try to open Smart Dock and give requested permissions. Is not mandatory, but will make things easier
-
Next open apps menu and find one called “Bliss Ethernet Manager” and open it.
- Note: it seems that “Bliss Ethernet Manager” might only be for BlissOS version 15. See the below section on troubleshooting networking for other options
- @Cubadicto comment on this: That’s why i told u to check checksums, if checksums are correct, this app might be installed, which is the key here.
-
Change the IP Assignment to “Static”, change IP address to the same qube IP assigned address that you saw before with the netmask (e.g: ip: 10.0.0.4, mask: 255.255.255.255. Then you write IP Address: 10.0.0.4/32), change Gateway address to the one assigned to the qube (e.g: 10.0.0.1), and add both DNS Addresses separated with a comma (e.g: 10.0.0.2,10.0.0.3). Finally press “Interface Down” button (if nothing happens, try the “Interface Up”, but should be “Interface Down” correct). Bliss OS should be restart, and you might see in notification area that no WiFi option is available but Internet instead. Try to open any page in the browser, it might work!!
- see the “Troubleshooting network” section below if it still does not work for some options
I hope this thread is not much Bliss OS specific, the key is simply using the Bliss OS ethernet app and assign the same qubes addresses
Troubleshooting Networking:
If you find “bliss ethernet manager”, but it doesn’t set up the route:
It’s possible for “bliss ethernet manager” to set the ip address, but not set up the route. If this happpens, you can manually add the routes with:
- Go go to apps list and run “KernelSU”
- Give termux su permissions
- go back to termux and do “su” again (it should work)
- run “ip route add {gateway address} dev eth0 scope link"
- run “ip route add 0.0.0.0/0 via {gateway address}”
- It seems to give a error some of the time and not others. It seems to work if you just hit “interface down” in blissos ethernet manager, went through the animation, and opened it “fresh” and did steps 4 and 5 without any mistakes beforehand.
- Confirm that the routes are there by typing “ip route”
- if the routes are there, it should be working!
- Pings to IP addresses should not be getting through now.
- DNS should be working now (presumably set up by blissos ethernet manager)
Alternate option for #10:
If there is no “Bliss Ethernet Manager” app, then you probably should have downloaded version 15.9. Or if the Bliss Ethernet Manager is there but does not work for you, you can still get partial networking going anyway by: (this worked with version 14.10, but is not working with version 15.9)
- Go go to apps list and run “KernelSU”
- Give termux su permissions
- go back to termux and do “su” again (it should work)
- run “ifconfig” (you should see “eth0” in the list)
- run “ifconfig eth0 {the IP address you just found} netmask 255.255.255.255 up”
(note: for some reason doing /32 after the address does not work) - run “ip route add 0.0.0.0/0 via {gateway address}”
internet (but not DNS) should now be working
(Not sure how to do DNS, since /etc/resolv.conf seems to be missing)
Another Alternate option for #10:
@Peter46 found another way to get networking working with “virtual wifi”:
Troubleshooting - Misc:
Try the Android-x86 install guide?
If things still dont work for you, since BlissOS is a derivative of android-x86, the android-x86 install guide might give you some ideas for things to try:
qemu related documentation?
Note: blissos has documentation for running blissos in qemu. This might be usefull for troubleshooting: