डाउनलोड और बिल्ड करना

भरोसेमंद रिपॉज़िटरी, Android ओपन सोर्स प्रोजेक्ट (AOSP) में उपलब्ध हैं.

AOSP में सही Trusty kernel branches ढूंढने के लिए, इन लिंक का इस्तेमाल करें:

Repo इंस्टॉल करना

Trusty डाउनलोड करने के लिए, पहले Repo डाउनलोड और इंस्टॉल करें.

Repo इंस्टॉल हो जाने के बाद, Android Trusty रिपॉज़िटरी को क्लोन किया जा सकता है:

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

बनाएं

Trusty के लिए, arm64 वाली सामान्य इमेज बनाने के लिए, इनका इस्तेमाल करें:

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

बिल्ड के नतीजे build-root/build-generic-arm64/. 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

ट्रस्टी और 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, टेस्ट-रनर पर वापस जाने से पहले कंसोल को बंद कर देता है. इसे स्थानीय तौर पर बंद करने के लिए, 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 देखें.

अगर 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 main
repo sync -j32
source build/envsetup.sh
lunch qemu_trusty_arm64-userdebug
m