ดาวน์โหลดและสร้าง

ที่เก็บข้อมูล Trusty มีอยู่ในโครงการโอเพนซอร์ส Android (AOSP)

ใช้ลิงก์เหล่านี้เพื่อค้นหาสาขาเคอร์เนล Trusty ที่เหมาะสมใน AOSP

ติดตั้ง Repo

หากต้องการดาวน์โหลด Trusty ก่อนอื่นให้ดาวน์โหลดและติดตั้ง Repo

หลังจากติดตั้ง Repo สำเร็จแล้ว คุณจะโคลนที่เก็บ Android Trusty ได้โดยทำดังนี้

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

สร้าง

ใช้คำสั่งต่อไปนี้เพื่อสร้างอิมเมจ arm64 ทั่วไปสำหรับ Trusty

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

ผลลัพธ์การสร้างจะอยู่ในส่วน build-root/build-generic-arm64/. มองหา lk.bin ซึ่งเป็นภาพ TEE ที่มีแอปทั้งหมดคอมไพล์ไว้

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

ติดตั้ง

คุณสามารถประกอบ lk.bin ให้เป็นอิมเมจเฟิร์มแวร์แล้วแฟลชลงในอุปกรณ์ การสร้างอิมเมจเฟิร์มแวร์จะแตกต่างกันไปตามบอร์ดที่ใช้ โปรดติดต่อผู้ผลิตแผงเพื่อขอวิธีการ

Trusty ใน QEMU

ติดตั้งแพ็กเกจที่จำเป็นในโฮสต์หากยังไม่ได้ดำเนินการ

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

ซึ่งจะเรียกใช้การทดสอบทั้งหมดที่กำหนดค่าไว้สำหรับเป้าหมายนี้ด้วย

วิธีเรียกใช้การทดสอบ TestRunner ด้วยตนเอง (การเปิดใช้งานพอร์ต) (com.android.ipc-unittest.ctrl)

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

วิธีเรียกใช้การทดสอบ TestRunner (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 จะปิดใช้คอนโซลก่อนที่จะกลับไปที่ TestRunner หากต้องการปิดใช้การตั้งค่านี้ในเครื่อง ให้ลบความคิดเห็นออกทั้งหมดใน bl31_plat_runtime_setup in external/arm-trusted-firmware/plat/common/aarch64/plat_common.c

วิธีทำการทดสอบจากเชลล์ 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

หาก adb devices -l ทำงานไม่สำเร็จเมื่อเรียกใช้ qmeu.py แสดงว่าเซิร์ฟเวอร์ adb ที่ทำงานอยู่ในระบบอาจใช้เวอร์ชันที่ไม่ถูกต้อง

adb kill-server

วิธีบูตบิลด์ Android ที่คุณมีในเครื่อง

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

วิธีสร้าง Android สำหรับ 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