Skenario pengembangan tertentu seperti pengujian OTA memerlukan pembuatan sertifikat Masalah non-Produksi.
Beberapa fitur ekosistem Google, termasuk Update Software OTA Perangkat tidak dapat dilakukan menggunakan VID/PID Pengujian.
Panduan ini menjelaskan cara membuat dan memverifikasi sertifikat Matter non-Produksi untuk digunakan dalam pengujian. Jenis-jenis sertifikat adalah:
- Pernyataan Sertifikasi (CD)
- Sertifikat Perantara Pengesahan Produk (PAI)
- Sertifikat Pengesahan Perangkat (DAC)
Selama proses commissioning, perangkat tersertifikasi Matter harus mengesahkan dirinya sendiri, yaitu membuktikan bahwa ini adalah 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 tingkat di atasnya, yang membentuk rantai kepercayaan. Jadi, sertifikat DAC ditandatangani oleh kunci PAI, dan sertifikat PAI ditandatangani dengan kunci PAA. Sebagai bagian dari rantai teratas, sertifikat PAA ditandatangani sendiri. Rantai kepercayaan ini membentuk struktur PAA gabungan, yang disinkronkan oleh Distributed Compliance Ledger (DCL).
Info 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 belum memilikinya. Alat ini berguna untuk mencetak kredensial dalam format gaya C:
sudo apt-get install xxd
Bangun chip-cert
Pastikan Anda sedang 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 administrasi saat mengedit argumen perintah Anda:
$ 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 ditampilkan di tempat lain oleh perangkat: asal Cluster Informasi Dasar, DAC, dan DAC (jika ada). 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 file tersebut berisi VID/PID Anda (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, kita akan menggunakan sertifikat Product
Attestation Authority (PAA) pengujian dari Matter dan kunci penandatanganan Chip-Test-PAA-NoVID
sebagai root certificate. Kita akan menggunakannya sebagai CA root untuk
menghasilkan PAI dan DAC sendiri.
Buat PAI menggunakan PAA. Secara opsional, Anda dapat menyertakan informasi PID dalam PAI, tetapi menghilangkannya 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 tidak perlu dilakukan.
Sebagai gantinya, yang kita lakukan di sini adalah menggunakan PAA pengembangan yang ditandatangani sendiri dan tidak menyertakan informasi VID.
Untuk contoh lainnya terkait cara menghasilkan CD, lihat
credentials/test/gen-test-cds.sh
Dan untuk contoh lainnya terkait cara menghasilkan 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 gaya C untuk sertifikat.
Mendownload 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
Anda.Pada perangkat produksi, PAI dan DAC berada di Data Pabrik, sedangkan CD disematkan di dalam firmware itu sendiri.
Jika belum menggunakan Data Pabrik, Anda dapat 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. Anda mungkin ingin bertanya kepada penyedia SoC tentang 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 Anda ekstrak pada langkah sebelumnya ke file yang digunakan untuk menentukan CD ke dalam build Anda. Seperti pada kasus PAI dan DAC, cara Anda melakukannya bergantung pada platform yang digunakan untuk mengembangkan.
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
Bangun dan flash target menggunakan kredensial yang baru dibuat. Bagian ini bergantung pada platform. Lihat dokumentasi SoC atau Perangkat yang didukung untuk mengetahui informasi selengkapnya.
Komisi perangkat
Sekarang, Anda dapat mengikuti langkah-langkah yang sudah dibahas dalam Menyambungkan perangkat Matter untuk melakukan commissioning pada perangkat Matter Anda 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 membuatnya:
$ 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 dengan flag --paa-trust-store-path
.
Oleh karena itu, untuk melakukan commissioning pada 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 melakukan commissioning pada 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