GSoC: Android development in Qubes

594 views
Skip to first unread message

Andrew David Wong

unread,
Feb 6, 2017, 3:49:58 AM2/6/17
to qubes...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Re-posting this for more visibility. We only have a few days before our
Google Summer of Code (GSoC) application deadline!

Marek: 'I need some help with description of "Android development in
Qubes" - what is really required to do that (besides running Android in
some VM)? Some communication with Android Studio (is it how it's
called?) probably - what does it really mean? I hope Android do work
without GPU access (so, software rendering), otherwise we may have a
problem here...'

https://github.com/QubesOS/qubes-issues/issues/2607#issuecomment-277530884

If you can help, please comment on that issue or reply to this thread.

- --
Andrew David Wong (Axon)
Community Manager, Qubes OS
https://www.qubes-os.org
-----BEGIN PGP SIGNATURE-----

iQIbBAEBCgAGBQJYmDinAAoJENtN07w5UDAwo3IP+N5Zoz5Th+uIQIM08HTEYQgL
BCYLG2Fi74sMwAwSBRDmMSPnhk5LWCcTSjzKeL2VXUEt4Jd5SPIjH02XqkjvWiHM
0yVgCVkiVSZY9F+EU3iinthZBpDXHmhOcB9Dflcr8tk0yz8m3vqGon0/WuKD/ezO
/4Yi6z9DQOnPfpq3fpyrCP1TMmPJgAyJ6o4hPPCjdZHgtidUZr2lxP6IMbwJgsun
/GPVnGbIgv3Z4ArqOitwQ8kIR0kBuLlyf7AZA/iBMyr6D6X+mOa8jsa38lN48esR
fURFJiJdSZPtFaekMbk2lBMFlnZuZRX0B4dLerkEeM0SsyKOA3vrOa+VXXKb0LZa
f08ZmnSg0F7S8kxeNyhKmzXUbC6IFQoxrk33qnYlPa6wOlbgFvNOBES0j/e+jxQi
dJRcmDEJ68/U6rDQ7TVsDIgrtmgPMbcGdxXD+FPE5mvc8uPzCna4FB+h13wHqA0N
s79xSG8oarXyqRt4r8dKyxMgrXv8AXtfea2FGt+NvudHf0Qlfm+nK3b974WSQM8b
rBBMihWhf0jf0Iy2kq8hw5LnhJojXNa4J/qkUljA9VkE9kQvFfm2heR1CtB9EIM+
QXVW/v8dCqLgpl67V6YM40oiGZKt/J8sCasTOQAWjumMGrOdAsPxxxdJ5ALE173m
kTRO87L9S91zg5GvQUE=
=k/6d
-----END PGP SIGNATURE-----

drew....@gmail.com

unread,
Feb 9, 2017, 9:11:18 PM2/9/17
to qubes-devel
On Monday, 6 February 2017 19:49:58 UTC+11, Andrew David Wong wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Re-posting this for more visibility. We only have a few days before our
Google Summer of Code (GSoC) application deadline!

Marek: 'I need some help with description of "Android development in
Qubes" - what is really required to do that (besides running Android in
some VM)? Some communication with Android Studio (is it how it's
called?) probably - what does it really mean? I hope Android do work
without GPU access (so, software rendering), otherwise we may have a
problem here...' 

What you need: Linux or Windows and an Android VM.
If you are an android developer, you can run Android under Qubes no issue with any resolution.
For non developers/tech people it's a little harder, but still doable.

1. Install Windows or Linux VM with Android Studio OR Delphi OR Lazarus OR Eclipse or any other that is your preference.
2. Install the APIs from Google for Android.
3. Install Android (Android x86 if you are using Qubes, or QEMU-ARM if you are wanting generic Android.)

4. Build interVM communication system OR USB to USB between VMs.
       (depends how you put the APKs on, or if you have a virtual in the guest from the software itself.)


 

drew....@gmail.com

unread,
Feb 9, 2017, 9:12:23 PM2/9/17
to qubes-devel
(This is how I do Android development, and iOS Development, and much more)

 
 

Jean-Philippe Ouellet

unread,
Feb 10, 2017, 8:21:35 AM2/10/17
to Drew White, qubes-devel
iOS development on Qubes? Care to elaborate on your setup for that?

drew....@gmail.com

unread,
Feb 12, 2017, 6:20:05 PM2/12/17
to qubes-devel, drew....@gmail.com
Same as Android.
But using iOS.



Kamal Marhubi

unread,
Apr 11, 2017, 3:01:34 PM4/11/17
to qubes-devel


On Thursday, February 9, 2017 at 9:11:18 PM UTC-5, drew....@gmail.com wrote:
What you need: Linux or Windows and an Android VM.
If you are an android developer, you can run Android under Qubes no issue with any resolution.
For non developers/tech people it's a little harder, but still doable.

1. Install Windows or Linux VM with Android Studio OR Delphi OR Lazarus OR Eclipse or any other that is your preference.
2. Install the APIs from Google for Android.
3. Install Android (Android x86 if you are using Qubes, or QEMU-ARM if you are wanting generic Android.)

4. Build interVM communication system OR USB to USB between VMs.
       (depends how you put the APKs on, or if you have a virtual in the guest from the software itself.)

Could you elaborate a little on how you run Android under Qubes, and how you build the inter VM communications? USB to USB is probably what I'd want for Android Studio based development, right?

Thanks!

-Kamal

je

unread,
Apr 19, 2017, 1:39:16 PM4/19/17
to qubes-devel
Hello Andrew,

regarding GPU acceleration support:

"hardware GPU that supports OpenGL ES 2.0 is mandatory for Android 4.0 and later devices."

source: https://source.android.com/devices/graphics/

You basically need OpenGL ES 2.0 support otherwise you are not able to run Android. Android Studio requires that too. There is Anbox a project which tries to provide Android development support on any GNU Linux. However, if they need OpenGL support (https://lwn.net/Articles/719849/).

 

Radoslaw Szkodzinski

unread,
Apr 20, 2017, 8:05:18 AM4/20/17
to je, qubes-devel
On Wed, Apr 19, 2017 at 7:39 PM, je <j.ep...@openmailbox.org> wrote:
> Hello Andrew,
>
> regarding GPU acceleration support:
>
> "hardware GPU that supports OpenGL ES 2.0 is mandatory for Android 4.0 and
> later devices."
>
> source: https://source.android.com/devices/graphics/
>
> You basically need OpenGL ES 2.0 support otherwise you are not able to run
> Android.

True, for Android versions >= 21 (Lollipop).

> Android Studio requires that too.

Not true, not even the emulator requires GL.
It does work with software rendering reasonably enough for debug
purposes and has multiple modes - mesa, swiftshader and old GL
emulation inside the VM.
What more importantly has to be checked is if KVM that is ran by it
actually works inside a Qubes VM.

Probably also provide an ADB proxy/forwarding setup. GL forwarding is
optional and likely a separate thing, Qubes has to support OpenGL
first and I suspect this is not the goal of this GSoC.

Other than the emulator, Android Studio is a plain old OpenJDK 8
application that can also execute gradle, lldb, gdb, cmake, shell
scripts and a few things more.

> There is Anbox a project which
> tries to provide Android development support on any GNU Linux. However, if
> they need OpenGL support (https://lwn.net/Articles/719849/).

Anbox is an entirely separate thing, equivalent to a Docker image with
Android inside that is supposed to run on an unpatched kernel without
emulation, using code taken from the emulator for GL.

--
Radosław Szkodziński
Reply all
Reply to author
Forward
0 new messages