Developer Guide

  • 04/03/2019
  • Public Content
Contents

Emulauncher

During the development of your trusted application you will want to develop and test the application without the need for a silicon-based machine. For this purpose there is an emulator of the Intel® DAL virtual machine (VM). In addition, the emulation has capabilities that will enhance the development experience, including debug prints and source level code debugging.
The Intel DAL Emulauncher tool is responsible for running the emulation over sockets and the matching Intel® DAL Host Interface Service (Intel® DAL HIS).
The tool allows you to switch between different API level emulations and monitor your virtual machine while testing your trusted application. Any changes in your emulation environment are displayed in Emulauncher.
Emulauncher can be run manually, by GHA, Eclipse plugin or Microsoft Visual Studio* plugin, when running an emulated environment, i.e., not real hardware.
Note:
In the first release of the SDK, the Emulauncher can emulate API levels 7 and later. API levels 1 through 6 will be supported in a future SDK release.
The behavior of the Intel DAL Emulauncher module is as follows:
  • When you click the Run button, the Intel DAL HIS (JHI) is launched. Shortly afterwards, the Intel DAL emulation is launched.
  • When you click the Stop button, or when the Intel DAL Emulauncher program is closed, the Intel DAL emulation and the Intel DAL HIS application are terminated.
Android*
: There is currently no emulation for Android development.

Emulauncher Settings

When running the Intel DAL Emulauncher in the default sockets option, you can choose between three emulator run options:
  • API Level - Run the emulation according to the API level you are developing for, independent to the platform type or version. The tool will select the best emulation available for this API level.
  • Platform - Select the emulation according to the platform type and version.
  • Custom - Any executable you wish to run. This option enables you to run old versions of emulation you may want to run in order to reproduce status.
Warning:
The Emulauncher Settings window will not open while emulation is running.
You can also choose to:
  • Clear flash data. This setting clears the flash and starts with the base FW image rather than continuing with the previously run flash image. The flash data stores values such as a trusted application's flash storage, monotonic counter value and FW related data.
  • Restart emulation each time you click
    Start Emulation
    . If you do not choose to restart emulation each time you click Start Emulation and you try to run a different platform from Eclipse or Microsoft Visual Studio you will get a notification that a different version is already running, and that you should close the running emulation before trying to start a new version.
  • Run in an emulation only mode in which the Intel DAL HIS will not be installed and run. This mode is useful when connecting to emulation from a remote Linux host platform.
  • Enable OEM Signing. This flag allows you to load S-SDs on the emulation. See details in OEM Signing.
  • Profile Trusted Application heap usage. This setting should only be used at the specific time the heap memory profiling is wanted. This setting is not saved from session to session if Emulauncher is closed. The feature supports multiple sessions and the history of each trusted application is saved, unless the Clear History function is used. Select a trusted application from the Profiler list to view its history.
trusted application profiler

VM Monitor

The VM monitor allows you to monitor the virtual machine. All installed trusted applications are displayed. For each trusted application you can see all its sessions and the application that opened each session. For each session you can see all the owners. If a session was left open while the owner process was closed, the session will be marked as an orphan.
Note:
This feature is supported from API Level 4 and above.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804