JustKernel

Ray Of Hope

VirtualDroid : Virtualization of Android

After having studied both Microkernel based virtualization and hypervisor based virtuatization, I have been able to narrow down on hypervisor based virtualization for my project VirtualDroid.  OKL4 (microkernel ) looks a bit more complex , though open source, and has less of online support .

Will use Xen as the starting point as it has been ported on ARM . Xen has already been ported on ARM, so that can provide me with a good starting point. Also, it has a good developer support community and is widely used. QUBES (quebes-os.org has used XEN for its secure OS). Initially I think I will target Cortex A7 processor.

Need to finalize on the board on which to start the development.

Some of the problems identified:

1) ARM offers only one unprivileged ring. So guest OS and guest kernel will execute in the same unprividedged ring. Thus, traditional MMU based memory protection will not work here.

2) No hardware virtualization support on ARM cores.

2) If Idon’t require each domain to have its own Oses. Can 1 single domain (dom 0) can manage applications executing in other domains.

3) How to move networking stack for the dom 0 to dom u (something that QUBES has been able to do) .

4)2) Use of paravirtualization or full virtualization. Paravirtualization will require modification of Android OS. The calls to hardware needs to be changed to hypercalls. In Case of full virtualization, bare metal hypervisor can be used and guest OS can run on it modified. But I don’t want OS should be modified.. Can Xen provide full virtualization feature.

These are some of the risk/technical challenges I can think of now, will update them as I proceed.

Went ahead and ordered ODROID-U2 board from hardkernel.com

Along with this ordered,

USB-UART Module Kit for debugging

5V/2A Adaptor  for power

HDMI Cable (Micro, Type D) for connecting monitor

8GB MicroSD Card XU with preloaded android 4.2 on it.

Thanks

Anshul makkar

mail to: anshul_makkar@justkernel.com

 

project repository:

www.github.com/justkernel/Virtualdroid

Tags: ,


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.