Télécharger et compiler

Les dépôts Trusty sont disponibles dans le projet Android Open Source (AOSP).

Utilisez ces liens pour trouver les branches de kernel Trusty appropriées dans AOSP:

Installer le dépôt

Pour télécharger Trusty, commencez par télécharger et installer Repo.

Une fois Repo installé, vous pouvez cloner le dépôt Android Trusty:

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

Créer

Utilisez la commande suivante pour créer l'image arm64 générique pour Trusty:

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

Les résultats de compilation se trouvent sous build-root/build-generic-arm64/.. Recherchez lk.bin, qui est une image TEE avec toutes les applications compilées:

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

Installer

Vous pouvez assembler lk.bin dans une image de micrologiciel et la flasher sur l'appareil. La génération d'images de micrologiciel varie en fonction de la carte utilisée. Contactez le fabricant de votre carte pour obtenir des instructions.

Trusty sur QEMU

Installez les packages nécessaires sur l'hôte si ce n'est pas déjà fait:

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

Créez (à l'aide des scripts du serveur de compilation) des images trusty et qemu:

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

Tous les tests configurés pour cette cible sont également exécutés.

Pour exécuter manuellement un test du testeur (activation de port) (com.android.ipc-unittest.ctrl):

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

Pour exécuter un test du testeur (com.android.ipc-unittest.ctrl) avec la sortie de débogage du kernel au démarrage:

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

ATF désactive la console avant de revenir au testeur. Pour désactiver cette fonctionnalité localement, commentez tout le code dans bl31_plat_runtime_setup in external/arm-trusted-firmware/plat/common/aarch64/plat_common.c.

Pour exécuter un test à partir du shell Android:

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

Pour démarrer dans un shell interactif (à partir du précompilé enregistré):

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

De nombreuses autres options de forçage sont également disponibles pour cette commande. Pour en savoir plus, utilisez --help.

Si adb devices -l échoue lors de l'exécution de qmeu.py, la version du serveur adb exécutée sur votre système peut être incorrecte:

adb kill-server

Pour démarrer une version Android que vous avez en local:

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

Pour compiler Android pour Trusty:

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