다운로드 및 빌드

Trusty 저장소는 Android 오픈소스 프로젝트(AOSP)에서 사용할 수 있습니다.

다음 링크를 사용하여 AOSP에서 적절한 Trusty 커널 분기를 찾으세요.

Repo 설치

Trusty를 다운로드하려면 먼저 Repo 다운로드 및 설치하세요.

Repo 설치가 완료되면 Android Trusty 저장소를 클론할 수 있습니다.

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

빌드

다음을 사용하여 Trusty용 일반 arm64 이미지를 빌드합니다.

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

빌드 결과는 build-root/build-generic-arm64/. 아래에 있습니다. 모든 앱이 컴파일된 TEE 이미지인 lk.bin을 찾습니다.

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

설치

lk.bin을 펌웨어 이미지에 구성하고 기기에 플래시할 수 있습니다. 펌웨어 이미지 생성은 사용 중인 보드에 따라 다릅니다. 자세한 내용은 보드 제조업체에 문의하세요.

QEMU의 Trusty

아직 패키지를 설치하지 않았다면 다음과 같이 호스트에 패키지를 설치해야 합니다.

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

다음과 같이 trusty 이미지와 qemu 이미지를 빌드합니다(빌드 서버 스크립트 사용).

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

이렇게 하면 이 타겟에 구성된 모든 테스트도 실행됩니다.

다음과 같이 테스트 실행기 테스트(포트 활성화)(com.android.ipc-unittest.ctrl)를 직접 실행합니다.

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

다음과 같이 부팅 시 커널 디버그 출력으로 테스트 실행기 테스트(com.android.ipc-unittest.ctrl)를 실행합니다.

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

ATF는 테스트 실행기로 돌아가기 전에 콘솔을 사용 중지합니다. 이 기능을 로컬에서 사용 중지하려면 external/arm-trusted-firmware/plat/common/aarch64/plat_common.c에서 bl31_plat_runtime_setup의 모든 코드를 주석 처리합니다.

다음과 같이 Android 셸에서 테스트를 실행합니다.

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

다음과 같이 대화형 셸로 부팅합니다(체크인 사전 빌드에서).

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

이 명령어에는 사용 가능한 여러 가지 재정의도 있습니다. 자세한 내용은 --help를 확인하세요.

qmeu.py 실행 시 adb devices -l이 실패한다면 시스템에서 실행 중인 adb 서버 버전이 잘못된 버전인 것일 수 있습니다.

adb kill-server

다음과 같이 로컬에 있는 Android 빌드를 부팅합니다.

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

다음과 같이 Trusty용 Android를 빌드합니다.

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