Android runs fine in qubes, no mouse issue, But

if I create an standalone HVM for installing android, means I have to choose “install your own OS”, So, can’t run a terminal in there. Right? Or if I can, I never found any options

Yes - if you create a standalone qube, then the only way to run just
a terminal is to have Qubes graphic tools installed. You can do this
with standalones which have OS for which Qubes packages are available -
Fedora, Debian, Ubuntu, Centos, Arch, etc.

Thanks for all the support and patience. I am going to try it now. And if anything pops up beyond my understanding, I’ll bother you again. And if all goes well, I’ll post the results.

@HashBrown, if you manage to successfully install an Android VM on Qubes, I would very much appreciate (and I think I am not alone!) if you could write a detailed procedure containing each step to achieve that result!

There are bits on the web but I never found a complete procedure.

Thanks.

I’ve put some notes up at

It’s a complete guide to setting up an Android qube using Android-x86.
The process should be absolutely straightforward, and the resulting qube
is usable. You could try one of the cm flavours, but although
installation seems fine, I have found them unreliable. YMMV.

Enjoy.

1 Like

So far, I have tried the steps as given. Only changed one step which is;

cp /usr/lib/xen/boot/stubdom-linux-rootfs > stubdom-linux-rootfs.orig

to ‘qvm-copy-to-vm qubes1 /usr/lib/xen/boot/stubdom-linux-rootfs’, don’t think it really matters.

After running ./patch_init it asked me if I should replace a read only file, I said yes.

And still getting stuck to same screen “Ok. There is no hard drive…”. Tried with multiple android ISOs. Now downloading the ISO, you have mentioned in the post. But don’t think that’s gonna make any differences either.

have not tried this on x86 android but i have the same approach as unman (i borrow from https://github.com/QubesOS/qubes-issues/issues/3494#issuecomment-427698388)

i hacked my stubdom init file to do the workarounds if the qube name end with ‘-ide’

i really need a github but here is the process:

note: ‘hacking’ is the name of the qube you will do the hacking in to modify the stubdom rootfs

  1. in dom0 (send the stubdom root to hacking qube):
qvm-copy-to-vm hacking /usr/lib/xen/boot/stubdom-linux-rootfs
  1. hacking qube (patch init file):
cd ~/QubesIncoming/dom0
mkdir stubdom && cd stubdom
zcat ../stubdom-linux-rootfs|cpio -i -d -H newc --no-absolute-filenames

cat << 'INITPATCH' > ../patch.tmp
case "$(xenstore-read "/local/domain/$domid/name")" in
   *-ide)
     echo "performing IDE hack since qube ends with -ide"
     SP=$'\x1b'
     dm_args=$(echo "$dm_args" | sed "s/-drive${SP}file=\/dev\/xvd\(.\),if=none,id=disk\(.\),format=host_device,cache=writeback,readonly=off${SP}-device${SP}scsi-hd,bus=scsi0.0,drive=disk.,wwn=0x352540005175626./-drive${SP}if=ide,media=disk,file=\/dev\/xvd\1,id=disk\2,format=host_device,cache=writeback,readonly=off/g")
     ;;
esac
INITPATCH

#super hacky patching since fedora did not have patch by def
sed -i "/^IFS=\\$'\\\x1b.*/r ../patch.tmp" init
find . -print0 | cpio --null -ov --format=newc | gzip -9 > ../stubdom-linux-rootfs.idehack

cat <<'DOM0INSTALL' > ../install-idehack.sh
#!/bin/sh
cd /usr/lib/xen/boot
sudo cp -p stubdom-linux-rootfs stubdom-linux-rootfs.backup
sudo cp ~/stubdom-linux-rootfs.idehack stubdom-linux-rootfs
DOM0INSTALL
  1. back in dom0 (install):
cd ~
qvm-run --pass-io hacking 'tar -C ~/QubesIncoming/dom0 -cf - stubdom-linux-rootfs.idehack install-idehack.sh' | tar -xv
sh install-idehack.sh

this way all i do is create hvm and make sure name ends with -ide and it will get ide drive

ps: xen updates or qubes os might over write the stubdom. this is just a hack!

3 Likes

ps: why is most sponsors of android x86 web site casino and online game sites? haha

@unman
Just to check, I booted the “reaction” vm with kali-linux.iso and drives are still visible as /dev/xvdX
No change whatsoever. And size of /usr/lib/xen/boot/stubdom-linux-rootfs is increased to 17 MB.
@qubesnewb
I am gonna give it try. Thanks

@qubesnewb
I tried your solution. And I have passed the the problem where it said “OK. There is no hard drive…”

Now installing. Will update the post when it’s all done.

Thanks to @unman for his support, however for some reason your solution didn’t work.

Thanks to @qubesnewb your solution has worked without any issue.

1 Like

just to point out, both solutions do the same thing!

i jus try to give commands exact since you didnt sound too familar with shell commands. for ex:

you point out

cp /usr/lib/xen/boot/stubdom-linux-rootfs > stubdom-linux-rootfs.orig

and you changed to a qvm-copy-to-vm command. what you missed is the cp was meant to jus backup the original file which is always good when you are hacking things! it wasnt to copy to the vm! ps: the > im sure was an accident by unman.

you should try to understand the commands and procedure as unman describes. his github describes the issue better than i could. genarally you want to avoid copy + paste commands from internet random people like me. it is better to understand the issue and how to resolve the issue then just running the script

unman solution works, i think the diff is patch_init uses absolut path for the sed append, so if you didnt put init_patch at right spot, it wont patch. this is what i mean with understanding the goals so you can see minor issues. we are human and overlook small things some times.

The link to the procedure (https://github.com/unman/notes/blob/master/InstallingAndroid) doesn’t work anymore. Could you please repost it, @unman?

Thanks!

The good link for @AndroidOnQubes ( + .md extension)

1 Like

Silly me!
Thank you, ludovic!
I’ll try that!

Thanks to everyone and especially to @unman. Much appreciated!!
I was finally able to successfully start to install an Android VM on Qubes with the provided procedures.

One question left related to the installation, though: When you start to install your Android VM, Google requires you to provide a Google account. If you choose to create a (test) account to be able to install the VM, Google requires you to provide a mobile phone number.

How do you manage to circumvent that (identification by mobile phone number) step to go on installing your Android VM?

NB: In my contry (and neighboring ones), you have to identify yourself to be able to buy a prepaid SIM card at any shop.

Thanks again for your support!

May I re-iterate this question a last time in case somebody had wisdom to share:

How do you manage to circumvent that (identification by mobile phone number) step required by Google to go on installing your Android VM?

Thank you!

Google just being google. Here are a few options

  • Old android
    Another option is if you have an android running a very old version laying around. Google it generally less strict with those.

  • Compile ungoogled android
    You should be able to compile a version of android that does not have google integration (the way android should be)

  • Ask on privacy forums
    They probably know better. Look for threads on reddit.com/r/privacy or forum.privacytools.io.

  • VPN
    I guess this depends on the country you’re on. If you have the opportunity to use a VPN, I’d suggest you VPN into a fast growing android market. Google is less scrupulous on those markets. (note: I’ve never tried this)

It absolutely isn’t necessary to have a google account to install
Android: what makes you think this?
When you come to configure the system, you will be asked for a Google
account, but just opt out of that part of the process. You will repeatedly
be told how much you are missing out on - ignore that.
At the end of the process you will have a working Android - you wont be
able to use the Google infrastructure, like Google Play, but there are
alternatives, like F-droid.

1 Like

Not sure if this is the case, but I’ve come across unskipable “sign-in to google” prompts on androids before.