Operating system virtualization project, which is being developed by Apriorit and Electronics and Telecommunications Research Institute, entered the next stage after simultaneous functioning and runtime switching between Windows 7 and Android systems on a single physical device was implemented. Some undocumented Windows 7 capabilities were used.


Apriorit and Electronics and Telecommunications Research Institute (Korea) teamed up on the ViMo project whose main goal was to satisfy the need for BYOD and provide users with fully isolated business and personal environments in order to protect corporate data and business processes from being compromised. ViMo allows two virtualized operating systems to function simultaneously on a single device with run-time switching between them. Previous project phases delivered Android – Android co-functioning and switching, while the current project required Windows 7 – Android co-existence.

Operating system virtualization can provide the required isolation but performance requirements also needed to be considered. Since a hardware device has limited resources, the idea was to make only one OS work at a time and allow the ability to switch instantly to another in run-time. In run-time switching, a user must be returned to the same system state (activity, running applications, etc.) as before the initial switch.

Since the system virtualization and switching approach proved to be a strong solution in the prior Android – Android phase, specialists from ETRI were eager to support Android – Windows 7 as the next stage.

The Windows 7 switching proved to be a challenging task since it required low-level system management functions whose methods are closed and undocumented. Research took 2 man-weeks and included the need to understand power management transition stages by reverse engineering the corresponding system files. Reverse engineers were able to describe the required hardware-abstraction level function interfaces and implement the prototype.

“I can’t imagine how we could have implemented this capability without using internal OS APIs and this is a good example of how the practice of legal Reverse Engineering can be extremely useful,” said Oleg Shomonko, Apriorit Development Director.

The Apriorit project team successfully integrated Windows 7 support and because of the implementation of the low-level hook, all performance requirements were also met – OS switching is almost instantaneous. Understanding power management transition stages also opens other interesting potential for future projects: such as power optimization or running system context transferring from one physical device to another.


See Reverse Engineering Case Study on Windows 7 Power Transition Stages

Read our researchers blog, e.g. iOS reverse engineering article.

Learn more about what reverse engineering tools we use.