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.
The Emulauncher main window provides a dashboard view of all emulation information. The main window has three buttons and three panes.
- DAL Emulation Environment: Display of the firmware emulation status, API level, platform, and Intel DAL HIS status.
- DAL Emulation Monitor: Real time log of VM status - loaded trusted applications and opened sessions list.
- Extended Info: Details of additional information. Selecting a trusted application displays its UUID, vendor and name or description. Selecting a session displays its application path and Process ID (PID).
- Start/Stop Emulation: Control emulation
- Settings: Configure emulation settings
- Troubleshoot: Open Intel DAL Troubleshooter
Note: Starting/stopping emulation when running over HECI may take a few minutes.
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.
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.