הורדה ופיתוח

Trusty repositories זמין ב-Android Open פרויקט מקור (AOSP).

אפשר להשתמש בקישורים הבאים כדי למצוא את ההסתעפויות המתאימות של ליבה של Trusty ב-AOSP:

התקנת המאגר

כדי להוריד את Trusty, קודם צריך להוריד ולהתקין את Repo.

אחרי ש-Repo מותקן, אפשר לשכפל את המאגר Android Trusty:

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

Build

כדי ליצור את התמונה הגנרית של Arm64 ל-Trusty:

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

תוצאות ה-build נמצאות בקטע 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 (באמצעות הסקריפטים של שרת ה-build):

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) עם פלט ניפוי באגים בליבה (kernel) בזמן האתחול:

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

ATF משבית את המסוף לפני שהוא חוזר למריץ הבדיקה. כדי להשבית את התגובה המקומית הזו כל הקוד בקובץ 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

כדי להפעיל גרסת build של 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