Skenario pengembangan tertentu seperti pengujian OTA memerlukan pembuatan sertifikat Matter 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 sertifikat adalah:
- Pernyataan Sertifikasi (CD)
- Sertifikat Intermediet Pengesahan Produk (PAI)
- Sertifikat Pengesahan Perangkat (DAC)
Selama proses komisioning, perangkat bersertifikasi Matter harus menandatangani sendiri, yaitu membuktikan bahwa perangkat tersebut adalah produk bersertifikasi Matter asli. Kredensial yang digunakan oleh perangkat Matter untuk pengesahan terdiri dari:
- Pasangan kunci pengesahan
- Rantai sertifikat
Sertifikat Pengesahan Perangkat (DAC) adalah link pertama dalam rantai sertifikat, dan divalidasi oleh Sertifikat Perantara Pengesahan Produk (PAI), yang pada gilirannya divalidasi oleh Otoritas Pengesahan Produk (PAA).
Sertifikat ditandatangani bersamaan dengan pembuatan pasangan kunci pengesahan, dan ditandatangani menggunakan kunci pribadi Certificate Authority satu tingkat di atas, sehingga membentuk rantai kepercayaan. Jadi, sertifikat DAC ditandatangani oleh kunci PAI, dan sertifikat PAI ditandatangani oleh kunci PAA. Sebagai bagian teratas rantai, 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 dalam Spesifikasi Materi.
Menginstal Matter SDK
Petunjuk ini mengasumsikan bahwa Anda memiliki penginstalan Matter SDK yang berfungsi. Lihat dokumentasinya di GitHub atau lihat Memulai 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
Mem-build chip-cert
Pastikan Anda menggunakan SDK versi terbaru. Prosedur ini diuji di SHA GitHub
0b17bce8
, 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:Konfigurasikan 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
Membuat sertifikat
Ekspor VID/PID kustom Anda sebagai variabel lingkungan untuk mengurangi kemungkinan kesalahan tulis saat mengedit argumen perintah:
$ cd ../..
$ export VID=hexVendorId
$ export PID=hexProductId
Membuat CD
Buat CD menggunakan
chip-cert
. Saat ini, Komisaris hanya memvalidasi bahwa VID dan PID cocok dengan data yang ditampilkan di tempat lain oleh perangkat: Basic Information Cluster, DAC, dan asal DAC (jika ada). Anda dapat membiarkan kolom lainnya 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 Matter dan kunci penandatanganan Chip-Test-PAA-NoVID
sebagai sertifikat root. Kita akan menggunakannya sebagai CA root untuk membuat PAI
dan DAC kita sendiri.
Buat PAI menggunakan PAA. Anda dapat menyertakan informasi PID secara opsional dalam PAI, tetapi dengan menghapusnya, Anda akan memiliki lebih banyak fleksibilitas untuk pengujian. Jika memerlukan DAC untuk PID tambahan, Anda dapat menjalankan langkah pembuatan DAC saja:
$ 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, berarti 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 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 dihasilkan:$ 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 tersebut tidak diperlukan.
Sebagai gantinya, yang telah kita lakukan di sini adalah menggunakan PAA pengembangan yang ditandatangani sendiri yang ada dan tidak menyertakan informasi VID.
Untuk contoh lain pembuatan CD, lihat
credentials/test/gen-test-cds.sh
Dan untuk contoh lain pembuatan PAA, PAI, dan DAC, lihat
credentials/test/gen-test-attestation-certs.sh
Mengganti sertifikat
Mengganti PAA dan PAI
- Jalankan skrip bantuan berikut, yang menggunakan
CHIP Certificate Tool (
chip-cert
) untuk membuat array sertifikat bergaya C.
Mendownload skrip Helper Sertifikat yang Dapat Disisipkan
#!/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 dalam firmware itu sendiri.
Jika belum menggunakan Data Pabrik, sebaiknya tempatkan 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 menyisipkan kredensial di lokasi yang sesuai. Sebaiknya hubungi penyedia SoC Anda untuk mengetahui detail platform Anda.
Mengganti 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 di langkah sebelumnya ke file yang digunakan untuk menentukan CD ke dalam build Anda. Seperti halnya PAI dan DAC, cara melakukannya bergantung pada platform tempat Anda 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
};
Mem-build target
Build dan flash target Anda menggunakan kredensial yang baru dibuat. Bagian ini bergantung pada platform. Lihat dokumentasi SoC atau Perangkat yang didukung untuk informasi selengkapnya.
Mengonfigurasi perangkat
Sekarang Anda dapat mengikuti langkah-langkah yang telah dibahas di Menyambungkan perangkat Matter untuk melakukan komisi perangkat Matter di Google Home platform.
Men-debug masalah menggunakan chip-tool
chip-tool
dapat menjadi alat yang berharga untuk memeriksa apakah perangkat Anda mengirimkan sertifikat
yang benar. Untuk mem-buildnya:
$ 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
.
Jadi, untuk melakukan commissioning 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
```
Untuk 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 mengaktifkan 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