Descargar y compilar

Los repositorios de Trusty están disponibles en el módulo Proyecto fuente (AOSP).

Usa estos vínculos para encontrar las ramas de kernel de Trusty adecuadas en AOSP:

Cómo instalar Repo

Para descargar Trusty, primero descarga e instala Repo.

Después de instalar Repo correctamente, puedes clonar el repositorio de Android Trusty:

mkdir trusty
cd trusty
repo init -u https://android.googlesource.com/trusty/manifest -b main
repo sync -j32

Compilación

Usa lo siguiente para compilar la imagen genérica de arm64 para Trusty:

./trusty/vendor/google/aosp/scripts/build.py generic-arm64

Los resultados de la compilación se encuentran en build-root/build-generic-arm64/.. Busca lk.bin, que es una imagen de TEE con todas las apps compiladas en:

ls build-root/build-generic-arm64/lk.bin

Instalar

Puedes ensamblar lk.bin en una imagen de firmware e instalarla en el dispositivo. La generación de imágenes de firmware varía según la placa que se use. Comunícate con el fabricante de la placa para obtener instrucciones.

Trusty en QEMU

Instala los paquetes necesarios en el host si aún no lo hiciste:

sudo apt install libpixman-1-dev libstdc++-8-dev pkg-config libglib2.0-dev libusb-1.0-0-dev

Compila (con las secuencias de comandos del servidor de compilación) imágenes de trusty y qemu:

trusty/vendor/google/aosp/scripts/build.py qemu-generic-arm64-test-debug

Esto también ejecuta todas las pruebas configuradas para este destino.

Para ejecutar manualmente una prueba del ejecutor de pruebas (activación de puertos) (com.android.ipc-unittest.ctrl), haz lo siguiente:

build-root/build-qemu-generic-arm64-test-debug/run --headless --boot-test "com.android.ipc-unittest.ctrl"

Para ejecutar una prueba de test-runner (com.android.ipc-unittest.ctrl) con el resultado de depuración del kernel durante el inicio, haz lo siguiente:

build-root/build-qemu-generic-arm64-test-debug/run-qemu --boot-test "com.android.ipc-unittest.ctrl" --headless --verbose

ATF inhabilita la consola antes de volver a test-runner. Para inhabilitar esta función de forma local, comenta todo el código en bl31_plat_runtime_setup in external/arm-trusted-firmware/plat/common/aarch64/plat_common.c.

Para ejecutar una prueba desde la shell de Android, haz lo siguiente:

build-root/build-qemu-generic-arm64-test-debug/run-qemu --shell-command "/data/nativetest64/tipc-test/tipc-test -t ta2ta-ipc" --headless

Para iniciar en una shell interactiva (a partir de la compilación previa registrada), haz lo siguiente:

build-root/build-qemu-generic-arm64-test-debug/run

Este comando también tiene una variedad de otras anulaciones disponibles. Consulta --help para obtener más información.

Si adb devices -l falla cuando se ejecuta qmeu.py, es posible que la versión del servidor de adb que se ejecuta en tu sistema sea incorrecta:

adb kill-server

Para iniciar una compilación de Android que tengas de forma local, haz lo siguiente:

build-root/build-qemu-generic-arm64-test-debug/run --android path/to/your/android/source/dir

Para compilar Android para Trusty, haz lo siguiente:

mkdir android
cd android
repo init -u https://android.googlesource.com/platform/manifest -b main
repo sync -j32
source build/envsetup.sh
lunch qemu_trusty_arm64-userdebug
m