Meskipun bukan persyaratan, beberapa skenario pengujian memerlukan pembuatan sertifikat non-Produksi.
Beberapa fitur ekosistem Google, termasuk Update Software OTA Perangkat tidak dapat dilakukan menggunakan Test VID/PID.
Panduan ini menjelaskan cara membuat dan memverifikasi sertifikat Matter non-Produksi untuk digunakan dalam pengujian. Jenis-jenis sertifikat adalah:
- Pernyataan Sertifikasi (CD)
- Sertifikasi Tingkat Menengah Pengesahan Produk (PAI)
- Sertifikat Pengesahan Perangkat (DAC)
Selama proses commissioning, perangkat bersertifikasi Matter harus membuktikan dirinya sendiri, yaitu, membuktikan bahwa perangkat tersebut merupakan produk asli bersertifikasi Matter. Kredensial yang digunakan oleh perangkat Matter untuk pengesahan terdiri dari:
- Pasangan kunci pengesahan
- Rantai sertifikat
Device Attestation Certificate (DAC) adalah link pertama dari rantai sertifikat, dan divalidasi oleh Product Attestation Intermediate Certificate (PAI), yang kemudian divalidasi oleh Product Attestation Authority (PAA).
Sertifikat ditandatangani pada saat yang sama saat pasangan kunci pengesahan dibuat, dan ditandatangani menggunakan kunci pribadi Certificate Authority satu level di atas, yang membentuk rantai kepercayaan. Jadi, sertifikat DAC ditandatangani oleh kunci PAI, dan sertifikat PAI ditandatangani oleh kunci PAA. Sebagai yang teratas dari rantai, sertifikat PAA ditandatangani sendiri. Rantai kepercayaan ini membentuk struktur PAA gabungan, yang disinkronkan oleh Buku Besar Kepatuhan Terdistribusi (DCL).
Informasi selengkapnya tentang proses Pengesahan dan Pernyataan Sertifikasi (CD) dapat ditemukan di Dokumen & Pesan Pengesahan Tambahan dan di Spesifikasi Matter.
Menginstal Matter SDK
Petunjuk ini mengasumsikan bahwa Anda telah menginstal Matter SDK yang berfungsi. Lihat dokumentasinya di GitHub atau lihat Mulai menggunakan Matter untuk mengetahui informasi selengkapnya.
Instal utilitas hexdump xxd
jika Anda tidak memilikinya. Alat ini berguna untuk mencetak kredensial dalam format gaya C:
sudo apt-get install xxd
Bentukan chip-cert
Pastikan Anda mengerjakan SDK versi terbaru. Prosedur ini diuji di
0b17bce8
SHA GitHub, di cabangv1.0-branch
:$ cd connectedhomeip $ git checkout v1.0-branch $ git pull
Build
chip-cert
, yang merupakan alat yang digunakan untuk beberapa operasi pada kredensial untuk perangkat Matter:Konfigurasi build:
$ cd src/credentials $ source ../../scripts/activate.sh $ gn gen out
Contoh output
gn
:Done. Made 5774 targets from 289 files in 658ms
Jalankan build:
$ ninja -C out
Contoh output
ninja
:ninja: Entering directory `out' [2000/2000] stamp obj/default.stamp
Cetak sertifikat Anda
Ekspor VID/PID kustom Anda sebagai variabel lingkungan untuk mengurangi kemungkinan error klerikal saat mengedit argumen perintah:
$ cd ../..
$ export VID=hexVendorId
$ export PID=hexProductId
Buat CD
Buat CD menggunakan
chip-cert
. Saat ini, Commissioner hanya memvalidasi bahwa VID dan PID cocok dengan data yang diekspos di tempat lain oleh perangkat: Cluster Informasi Dasar, asal DAC, dan DAC (jika memilikinya). Anda dapat membiarkan kolom lain tidak berubah:$ src/credentials/out/chip-cert gen-cd \ --key credentials/test/certification-declaration/Chip-Test-CD-Signing-Key.pem \ --cert credentials/test/certification-declaration/Chip-Test-CD-Signing-Cert.pem \ --out credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.der \ --format-version "1" \ --vendor-id "${VID}" \ --product-id "${PID}" \ --device-type-id "0x1234" \ --certificate-id "ZIG20141ZB330001-24" \ --security-level "0" \ --security-info "0" \ --version-number "9876" \ --certification-type "0"
Verifikasi CD. Pastikan kolom ini berisi VID/PID (dalam format desimal):
$ src/credentials/out/chip-cert print-cd credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.der
Contoh output:
SignerKeyId value: hex:62FA823359ACFAA9963E1CFA140ADDF504F37160 0x01, tag[Anonymous]: 0xffffffff, type: Structure (0x15), container: 0x04, tag[Context Specific]: 0x0, type: Unsigned Fixed Point (0x04), value: 1 0x08, tag[Context Specific]: 0x1, type: Unsigned Fixed Point (0x04), value: XXXXX // <- VID 0x0A, tag[Context Specific]: 0x2, type: Array (0x16), container: 0x0D, tag[Anonymous]: 0xffffffff, type: Unsigned Fixed Point (0x04), value: XXXXX // <- PID 0x12, tag[Context Specific]: 0x3, type: Unsigned Fixed Point (0x04), value: 4660 0x15, tag[Context Specific]: 0x4, type: UTF-8 String (0x0c), length: 19, value: "ZIG20141ZB330001-24" 0x2B, tag[Context Specific]: 0x5, type: Unsigned Fixed Point (0x04), value: 0 0x2E, tag[Context Specific]: 0x6,type: Unsigned Fixed Point (0x04), value: 0 0x32, tag[Context Specific]: 0x7, type: Unsigned Fixed Point (0x04), value: 39030 0x35, tag[Context Specific]: 0x8, type: Unsigned Fixed Point (0x04), value: 0
Membuat PAI dan DAC
Dalam contoh ini, kami akan menggunakan sertifikat Otoritas
Pengesahan Produk (PAA) pengujian Matter dan kunci penandatanganan Chip-Test-PAA-NoVID
sebagai root certificate kami. Kita akan menggunakannya sebagai root CA untuk menghasilkan PAI
dan DAC kita sendiri.
Membuat PAI menggunakan PAA. Anda dapat memilih untuk menyertakan informasi PID dalam PAI, tetapi menghapusnya akan memberi Anda lebih banyak fleksibilitas untuk pengujian. Jika memerlukan DAC untuk PID tambahan, Anda dapat menjalankan langkah pembuatan DAC:
$ src/credentials/out/chip-cert gen-att-cert --type i \ --subject-cn "Matter Test PAI" \ --subject-vid "${VID}" \ --valid-from "2021-06-28 14:23:43" \ --lifetime "4294967295" \ --ca-key credentials/test/attestation/Chip-Test-PAA-NoVID-Key.pem \ --ca-cert credentials/test/attestation/Chip-Test-PAA-NoVID-Cert.pem \ --out-key credentials/test/attestation/"test-PAI-${VID}-key".pem \ --out credentials/test/attestation/"test-PAI-${VID}-cert".pem
Buat DAC menggunakan PAI:
$ src/credentials/out/chip-cert gen-att-cert --type d \ --subject-cn "Matter Test DAC 0" \ --subject-vid "${VID}" \ --subject-pid "${PID}" \ --valid-from "2021-06-28 14:23:43" \ --lifetime "4294967295" \ --ca-key credentials/test/attestation/"test-PAI-${VID}-key".pem \ --ca-cert credentials/test/attestation/"test-PAI-${VID}-cert".pem \ --out-key credentials/test/attestation/"test-DAC-${VID}-${PID}-key".pem \ --out credentials/test/attestation/"test-DAC-${VID}-${PID}-cert".pem
Verifikasi rantai DAC, PAI, dan PAA. Jika tidak ada error yang muncul dalam output, artinya rantai pengesahan sertifikat berhasil diverifikasi:
$ src/credentials/out/chip-cert validate-att-cert \ --dac credentials/test/attestation/"test-DAC-${VID}-${PID}-cert".pem \ --pai credentials/test/attestation/"test-PAI-${VID}-cert".pem \ --paa credentials/test/attestation/Chip-Test-PAA-NoVID-Cert.pem
Anda dapat memeriksa kunci Anda menggunakan
openssl
:$ openssl ec -noout -text -in \ credentials/test/attestation/test-DAC-${VID}-${PID}-key.pem
Contoh output:
read EC key Private-Key: (256 bit) priv: c9:f2:b3:04:b2:db:0d:6f:cd:c6:be:f3:7b:76:8d: 8c:01:4e:0b:9e:ce:3e:72:49:3c:0e:35:63:7c:6c: 6c:d6 pub: 04:4f:93:ba:3b:bf:63:90:73:98:76:1e:af:87:79: 11:e6:77:e8:e2:df:a7:49:f1:7c:ac:a8:a6:91:76: 08:5b:39:ce:6c:72:db:6d:9a:92:b3:ba:05:b0:e8: 31:a0:bf:36:50:2b:5c:72:55:7f:11:c8:01:ff:3a: 46:b9:19:60:28 ASN1 OID: prime256v1 NIST CURVE: P-256
Anda juga dapat menggunakan
openssl
untuk memeriksa sertifikat yang dibuat:$ openssl x509 -noout -text -in \ credentials/test/attestation/test-DAC-${VID}-${PID}-cert.pem
Contoh output:
Certificate: Data: Version: 3 (0x2) Serial Number: 2875998130766646679 (0x27e9990fef088d97) Signature Algorithm: ecdsa-with-SHA256 Issuer: CN = Matter Test PAI, 1.3.6.1.4.1.37244.2.1 = hexVendorId Validity Not Before: Jun 28 14:23:43 2021 GMT Not After : Dec 31 23:59:59 9999 GMT Subject: CN = Matter Test DAC 0, 1.3.6.1.4.1.37244.2.1 = hexVendorId, 1.3.6.1.4.1.37244.2.2 = hexProductId Subject Public Key Info: Public Key Algorithm: id-ecPublicKey Public-Key: (256 bit) pub: 04:4f:93:ba:3b:bf:63:90:73:98:76:1e:af:87:79: 11:e6:77:e8:e2:df:a7:49:f1:7c:ac:a8:a6:91:76: 08:5b:39:ce:6c:72:db:6d:9a:92:b3:ba:05:b0:e8: 31:a0:bf:36:50:2b:5c:72:55:7f:11:c8:01:ff:3a: 46:b9:19:60:28 ASN1 OID: prime256v1 NIST CURVE: P-256 X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Key Usage: critical Digital Signature X509v3 Subject Key Identifier: 21:0A:CA:B1:B6:5F:17:65:D8:61:19:73:84:1A:9D:52:81:19:C5:39 X509v3 Authority Key Identifier: 37:7F:24:9A:73:41:4B:16:6E:6A:42:6E:F5:E8:89:FB:75:F8:77:BB Signature Algorithm: ecdsa-with-SHA256 Signature Value: 30:45:02:20:38:8f:c5:0d:3e:90:95:dd:7d:7c:e9:5a:05:19: 1f:2d:14:08:a3:d7:0e:b5:15:6d:d3:b0:0b:f7:b8:28:4d:bf: 02:21:00:d4:05:30:43:a6:05:00:0e:b9:99:0d:34:3d:75:fe: d3:c1:4e:73:ff:e7:05:64:7a:62:8d:2d:38:8f:fd:4d:ad
PAA
Proses serupa dapat digunakan untuk membuat PAA yang ditandatangani sendiri, tetapi hal itu tidak perlu dilakukan.
Sebagai gantinya, yang kita lakukan di sini adalah menggunakan PAA pengembangan yang ditandatangani sendiri dan tidak menyertakan informasi VID.
Untuk mengetahui contoh pembuatan CD lainnya, lihat
credentials/test/gen-test-cds.sh
Dan untuk contoh lainnya terkait cara membuat PAA, PAI, dan DAC, lihat
credentials/test/gen-test-attestation-certs.sh
Mengganti sertifikat
Mengganti PAA dan PAI
- Jalankan skrip helper berikut, yang menggunakan
Alat Sertifikat CHIP (
chip-cert
) untuk membuat array bergaya C dari sertifikat Anda.
Download skrip Bantuan Sertifikat yang Dapat Disematkan
#!/bin/bash # # generate-embeddable-certs.sh script # —---------------------------------- # # This script generates self-minted DAC and PAI. # The output may easily be included in your C++ source code. # # Edit this information with your paths and certificates folder="credentials/test/attestation" chip_cert_tool="src/credentials/out/chip-cert" cert_file_der="${folder}/test-PAI-${VID}-cert.der" cert_file_pem="${folder}/test-PAI-${VID}-cert.pem" key_file_pem="${folder}/test-PAI-${VID}-key.pem" type="Pai" printf "namespace chip {\n" printf "namespace DevelopmentCerts {\n\n" printf "#if CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID == ${PID}\n\n" printcert() { # convert cert to DER if [ -f "${cert_file_der}" ]; then rm "${cert_file_der}" fi "${chip_cert_tool}" convert-cert "${cert_file_pem}" "${cert_file_der}" --x509-der printf "// ------------------------------------------------------------ \n" printf "// ${type} CERTIFICATE ${cert_file_der} \n\n" printf "constexpr uint8_t ${type}_Cert_Array[] = {\n" less -f "${cert_file_der}" | od -t x1 -An | sed 's/\0x/g' | sed 's/\>/,/g' | sed 's/^/ /g' printf "};\n\n" printf "ByteSpan k${type}Cert = ByteSpan(${type}_Cert_Array);\n\n" printf "// ${type} PUBLIC KEY FROM ${key_file_pem} \n\n" printf "constexpr uint8_t ${type}_PublicKey_Array[] = {\n" openssl ec -text -noout -in "${key_file_pem}" 2>/dev/null | sed '/ASN1 OID/d' | sed '/NIST CURVE/d' | sed -n '/pub:/,$p' | sed '/pub:/d' | sed 's/\([0-9a-fA-F][0-9a-fA-F]\)/0x\1/g' | sed 's/:/, /g' printf "};\n\n" printf "ByteSpan k${type}PublicKey = ByteSpan(${type}_PublicKey_Array);\n\n" printf "// ${type} PRIVATE KEY FROM ${key_file_pem} \n\n" printf "constexpr uint8_t ${type}_PrivateKey_Array[] = {\n" openssl ec -text -noout -in "${key_file_pem}" 2>/dev/null | sed '/read EC key/d' | sed '/Private-Key/d' | sed '/priv:/d' | sed '/pub:/,$d' | sed 's/\([0-9a-fA-F][0-9a-fA-F]\)/0x\1/g' | sed 's/:/, /g' printf "};\n\n" printf "ByteSpan k${type}PrivateKey = ByteSpan(${type}_PrivateKey_Array);\n\n" } # generates PAI printcert type="Dac" cert_file_der="${folder}/test-DAC-${VID}-${PID}-cert.der" cert_file_pem="${folder}/test-DAC-${VID}-${PID}-cert.pem" key_file_pem="${folder}/test-DAC-${VID}-${PID}-key.pem" # generates DAC printcert printf "#endif // CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID\n" printf "} // namespace DevelopmentCerts\n" printf "} // namespace chip\n"
Salin konten output PAI dan DAC ke implementasi
DeviceAttestationCredentialsProvider::GetProductAttestationIntermediateCert
.Di perangkat produksi, PAI dan DAC berada dalam Data Pabrik, sedangkan CD disematkan dalam firmware itu sendiri.
Jika belum menggunakan Data Pabrik, Anda mungkin perlu menempatkan PAI di
src/credentials/examples/ExampleDACs.cpp
. Dalam hal ini, tambahkan kode yang dihasilkan ke fileExampleDACs.cpp
Anda:ByteSpan kDacCert = ByteSpan(kDevelopmentDAC_Cert_FFF1_801F); ByteSpan kDacPrivateKey = ByteSpan(kDevelopmentDAC_PrivateKey_FFF1_801F); ByteSpan kDacPublicKey = ByteSpan(kDevelopmentDAC_PublicKey_FFF1_801F); #endif } // namespace DevelopmentCerts } // namespace chip /* ------------------------------------------ */ /* current end-of-file */ /* ------------------------------------------ */ /* ------------------------------------------ */ /* output of creds-codelab.sh script */ /* ------------------------------------------ */ namespace chip { namespace DevelopmentCerts { #if CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID == hexProductId ... ByteSpan kDacPrivateKey = ByteSpan(Dac_PrivateKey_Array); #endif // CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID } // namespace DevelopmentCerts } // namespace chip
Jika Anda menggunakan Data Pabrik atau Penyedia Kredensial kustom, pastikan untuk memasukkan kredensial di lokasi yang sesuai. Sebaiknya hubungi penyedia SoC untuk mengetahui spesifikasi platform Anda.
Ganti CD
Ekstrak representasi teks dari konten file CD Anda menggunakan
xxd
:$ xxd -i credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.der
Contoh output:
unsigned char credentials_test_certification_declaration_Chip_Test_CD_hexVendorId_hexProductId_der[] = { 0x30, 0x81, 0xe9, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02, 0xa0, 0x81, 0xdb, 0x30, 0x81, 0xd8, 0x02, 0x01, 0x03, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x45, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x38, 0x04, 0x36, 0x15, 0x24, 0x00, 0x01, 0x25, 0x01, 0xfe, 0xca, 0x36, 0x02, 0x05, 0xce, 0xfa, 0x18, 0x25, 0x03, 0x34, 0x12, 0x2c, 0x04, 0x13, 0x5a, 0x49, 0x47, 0x32, 0x30, 0x31, 0x34, 0x31, 0x5a, 0x42, 0x33, 0x33, 0x30, 0x30, 0x30, 0x31, 0x2d, 0x32, 0x34, 0x24, 0x05, 0x00, 0x24, 0x06, 0x00, 0x25, 0x07, 0x76, 0x98, 0x24, 0x08, 0x00, 0x18, 0x31, 0x7d, 0x30, 0x7b, 0x02, 0x01, 0x03, 0x80, 0x14, 0x62, 0xfa, 0x82, 0x33, 0x59, 0xac, 0xfa, 0xa9, 0x96, 0x3e, 0x1c, 0xfa, 0x14, 0x0a, 0xdd, 0xf5, 0x04, 0xf3, 0x71, 0x60, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x04, 0x47, 0x30, 0x45, 0x02, 0x20, 0x53, 0x25, 0x03, 0x2c, 0x96, 0x50, 0xb6, 0x64, 0xf4, 0x18, 0xbf, 0x99, 0x47, 0xf8, 0x9d, 0xe6, 0xeb, 0x43, 0x94, 0xf1, 0xce, 0xb2, 0x61, 0x00, 0xe0, 0xf9, 0x89, 0xa8, 0x71, 0x82, 0x02, 0x0a, 0x02, 0x21, 0x00, 0xea, 0x0a, 0x40, 0xab, 0x87, 0xad, 0x7e, 0x25, 0xe1, 0xa1, 0x6c, 0xb1, 0x12, 0xfa, 0x86, 0xfe, 0xea, 0x8a, 0xaf, 0x4b, 0xc1, 0xf3, 0x6f, 0x09, 0x85, 0x46, 0x50, 0xb6, 0xd0, 0x55, 0x40, 0xe2 }; unsigned int credentials_test_certification_declaration_Chip_Test_CD_hexVendorId_hexProductId_der_len = 236; ```
Salin teks yang telah Anda ekstrak pada langkah sebelumnya ke file yang digunakan untuk menentukan CD ke dalam build Anda. Seperti pada PAI dan DAC, cara melakukan ini bergantung pada platform tempat Anda mengembangkan aplikasi.
Jika menggunakan contoh kredensial, Anda mungkin ingin mengganti
konten kCdForAllExamples
di
ExampleDACProvider::GetCertificationDeclaration
, di
src/credentials/examples/DeviceAttestationCredsExample.cpp
:
const uint8_t kCdForAllExamples[] = {
0x30, 0x81, 0xe9, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
0x07, 0x02, 0xa0, 0x81, 0xdb, 0x30, 0x81, 0xd8, 0x02, 0x01, 0x03, 0x31,
0x0d, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04,
0x02, 0x01, 0x30, 0x45, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
0x01, 0x07, 0x01, 0xa0, 0x38, 0x04, 0x36, 0x15, 0x24, 0x00, 0x01, 0x25,
0x01, 0xfe, 0xca, 0x36, 0x02, 0x05, 0xce, 0xfa, 0x18, 0x25, 0x03, 0x34,
0x12, 0x2c, 0x04, 0x13, 0x5a, 0x49, 0x47, 0x32, 0x30, 0x31, 0x34, 0x31,
0x5a, 0x42, 0x33, 0x33, 0x30, 0x30, 0x30, 0x31, 0x2d, 0x32, 0x34, 0x24,
0x05, 0x00, 0x24, 0x06, 0x00, 0x25, 0x07, 0x76, 0x98, 0x24, 0x08, 0x00,
0x18, 0x31, 0x7d, 0x30, 0x7b, 0x02, 0x01, 0x03, 0x80, 0x14, 0x62, 0xfa,
0x82, 0x33, 0x59, 0xac, 0xfa, 0xa9, 0x96, 0x3e, 0x1c, 0xfa, 0x14, 0x0a,
0xdd, 0xf5, 0x04, 0xf3, 0x71, 0x60, 0x30, 0x0b, 0x06, 0x09, 0x60, 0x86,
0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x01, 0x30, 0x0a, 0x06, 0x08, 0x2a,
0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x04, 0x47, 0x30, 0x45, 0x02,
0x20, 0x53, 0x25, 0x03, 0x2c, 0x96, 0x50, 0xb6, 0x64, 0xf4, 0x18, 0xbf,
0x99, 0x47, 0xf8, 0x9d, 0xe6, 0xeb, 0x43, 0x94, 0xf1, 0xce, 0xb2, 0x61,
0x00, 0xe0, 0xf9, 0x89, 0xa8, 0x71, 0x82, 0x02, 0x0a, 0x02, 0x21, 0x00,
0xea, 0x0a, 0x40, 0xab, 0x87, 0xad, 0x7e, 0x25, 0xe1, 0xa1, 0x6c, 0xb1,
0x12, 0xfa, 0x86, 0xfe, 0xea, 0x8a, 0xaf, 0x4b, 0xc1, 0xf3, 0x6f, 0x09,
0x85, 0x46, 0x50, 0xb6, 0xd0, 0x55, 0x40, 0xe2
};
Membuat target
Build dan flash target menggunakan kredensial yang baru dibuat. Bagian ini bergantung pada platform. Lihat dokumentasi SoC atau Perangkat yang didukung untuk mengetahui informasi selengkapnya.
Minta perangkat
Sekarang Anda dapat mengikuti langkah-langkah yang telah dibahas dalam Menyambungkan perangkat Matter untuk mengirim perangkat Matter di Google Home platform.
Men-debug masalah menggunakan chip-tool
chip-tool
dapat menjadi alat yang berharga untuk memeriksa apakah perangkat Anda mengirim sertifikat
yang benar. Untuk membangunnya:
$ cd examples/chip-tool
$ gn gen out/debug
Done. Made 114 targets from 112 files in 157ms
$ ninja -C out/debug
ninja: Entering directory `out/debug'
$ cd ../..
Untuk mengaktifkan log tambahan, setiap kali menjalankan chip-tool
, pastikan untuk meneruskan flag --trace_decode 1
. Selain itu, sebaiknya teruskan jalur file
PAA Anda dengan flag --paa-trust-store-path
.
Dengan demikian, untuk menugaskan perangkat Thread menggunakan BLE, Anda dapat menjalankan:
```
$ examples/chip-tool/out/debug/chip-tool pairing ble-thread 1 \
hex:Thread_credentials \
pairing_code \
discriminator \
--paa-trust-store-path <path to PAA folder> \
--trace_decode 1
```
Dalam kasus perangkat pengujian, <PAIRING CODE>
adalah 20202021
dan
<DISCRIMINATOR>
adalah 3840
.
Untuk mendapatkan kredensial Thread dari Google Nest Hub (2nd gen), Anda dapat menjalankan:
$ adb connect border_router_ip_address
$ adb -e shell ot-ctl dataset active -x
$ adb disconnect
Dan untuk memesan perangkat Wi-Fi, Anda dapat menggunakan opsi ble-wifi
:
$ examples/chip-tool/out/debug/chip-tool pairing ble-wifi 1 "SSID" SSID_password pairing_code discriminator