This repository contains code to host the reference implementation of Android‘s Access-Controlled NVRAM HAL in a Trusty app. The app exposes its service via a standard Trusty IPC endpoint, accepting commands and producing replies in the message format defined by the reference implementation. The app relies on Trusty’s secure storage abstraction to store persistent NVRAM space contents and meta data.
IMPORTANT NOTE: The Access-Controlled NVRAM HAL spec calls for locked NVRAM contents to be persisted “until the next full device reset”. This means that locked persistent NVRAM spaces must remain intact unless the user factory-resets the entire device. In particular, NVRAM data may not be lost unless all other device state gets wiped as well. The code in this repository DOES NOT achieve this in its current state. To achieve compliance with the HAL spec, an implementation can implement one of the following approaches: