برخی از سناریوهای توسعه مانند آزمایش OTA مستلزم ایجاد گواهینامههای غیرتولیدی هستند.
برخی از ویژگیهای اکوسیستم گوگل، از جمله بهروزرسانیهای نرمافزاری OTA دستگاه ، نمیتوانند با استفاده از Test VID/PID انجام شوند .
این راهنما نحوه ایجاد و تأیید Matter غیر تولیدی را برای استفاده در آزمایش توضیح میدهد. انواع گواهینامهها عبارتند از:
- اعلامیه صدور گواهینامه ( CD )
 - گواهی میانی تأیید محصول ( PAI )
 - گواهی تأیید دستگاه ( DAC )
 
در طول فرآیند راهاندازی، یک دستگاه دارای گواهینامه Matter باید خود را تأیید کند ، یعنی ثابت کند که یک محصول واقعی دارای گواهینامه Matter است. مدارک مورد استفاده توسط دستگاههای Matter برای تأیید عبارتند از:
- یک جفت کلید گواهی
 - یک زنجیره گواهی
 
گواهی تأیید دستگاه (DAC) اولین حلقه از زنجیره گواهی است و توسط گواهی میانی تأیید محصول (PAI) تأیید میشود که به نوبه خود توسط مرجع تأیید محصول (PAA) تأیید میشود.
گواهیها همزمان با تولید جفت کلید گواهی امضا میشوند و با استفاده از کلید خصوصی مرجع صدور گواهی در یک سطح بالاتر امضا میشوند و یک زنجیره اعتماد تشکیل میدهند. بنابراین، یک گواهی DAC توسط یک کلید PAI امضا میشود و یک گواهی PAI توسط یک کلید PAA امضا میشود. گواهیهای PAA که در بالای زنجیره قرار دارند، خود-امضا هستند. این زنجیره اعتماد یک ساختار PAA فدرال را تشکیل میدهد که توسط دفتر کل انطباق توزیعشده (DCL) همگامسازی میشود.
اطلاعات بیشتر در مورد فرآیند گواهی و اعلامیههای صدور گواهینامه (CD) را میتوانید در اسناد و پیامهای گواهی اضافی و در مشخصات موضوع بیابید.
کیت توسعه نرمافزاری Matter را نصب کنید
این دستورالعملها فرض میکنند که شما یک نسخه نصب شده از Matter SDK دارید. لطفاً برای اطلاعات بیشتر به مستندات آن در Github مراجعه کنید یا به بخش «شروع کار با Matter» مراجعه کنید.
 اگر ابزار hexdump xxd را ندارید، آن را نصب کنید. این ابزار برای چاپ اعتبارنامهها با فرمت C-style مفید است:
sudo apt-get install xxd
 ساخت chip-cert
مطمئن شوید که روی نسخه اخیر SDK کار میکنید. این رویهها روی Github SHA
0b17bce8، روی شاخهv1.0-branchآزمایش شدهاند:$ cd connectedhomeip $ git checkout v1.0-branch $ git pullساخت
chip-cert، ابزاری که برای چندین عملیات روی اعتبارنامههای دستگاههای Matter استفاده میشود:پیکربندی ساخت:
$ cd src/credentials $ source ../../scripts/activate.sh $ gn gen outمثال خروجی
gn:Done. Made 5774 targets from 289 files in 658msاجرای ساخت:
$ ninja -C outمثال خروجی
ninja:ninja: Entering directory `out' [2000/2000] stamp obj/default.stamp
گواهینامههای خود را ضرب کنید
VID/PID سفارشی خود را به عنوان متغیرهای محیطی صادر کنید تا احتمال خطای دفتری هنگام ویرایش آرگومانهای دستور خود را کاهش دهید:
$ cd ../..
$ export VID=hexVendorId
$ export PID=hexProductId
تولید سی دی
با استفاده از
chip-certسیدی را تولید کنید. در حال حاضر، کمیسر فقط تأیید میکند که VID و PID با دادههای افشا شده در جاهای دیگر دستگاه مطابقت داشته باشند: خوشه اطلاعات پایه، DAC و مبدا DAC (در صورت وجود). میتوانید سایر فیلدها را بدون تغییر بگذارید:$ 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"سیدی را بررسی کنید. مطمئن شوید که حاوی VID/PID شما (به فرمت اعشاری) است:
$ src/credentials/out/chip-cert print-cd credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.derخروجی مثال:
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
تولید PAI و DAC
 در این مثال، ما از گواهینامهی مرجع تأیید محصول آزمایشی (PAA) و کلید امضای Chip-Test-PAA-NoVID متعلق به Matter به عنوان گواهینامهی ریشه استفاده خواهیم کرد. ما از آن به عنوان CA ریشه برای تولید PAI و DAC خود استفاده خواهیم کرد.
PAI را با استفاده از PAA تولید کنید. میتوانید به صورت اختیاری اطلاعات PID را در PAI وارد کنید، اما حذف آن انعطافپذیری بیشتری برای آزمایش به شما میدهد. اگر برای PID های اضافی به DAC نیاز دارید، میتوانید فقط مرحله تولید 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".pemDAC را با استفاده از 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زنجیره DAC، PAI و PAA را تأیید کنید. اگر هیچ خطایی در خروجی ظاهر نشد، به این معنی است که زنجیره تأیید گواهی با موفقیت تأیید شده است:
$ 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میتوانید کلیدهای خود را با استفاده از
opensslبررسی کنید:$ openssl ec -noout -text -in \ credentials/test/attestation/test-DAC-${VID}-${PID}-key.pemخروجی مثال:
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همچنین میتوانید از
opensslبرای بررسی گواهیهای تولید شده خود استفاده کنید:$ openssl x509 -noout -text -in \ credentials/test/attestation/test-DAC-${VID}-${PID}-cert.pemخروجی مثال:
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
یک فرآیند مشابه میتواند برای تولید یک PAA خودامضا استفاده شود، اما انجام این کار ضروری نیست.
در عوض، کاری که ما اینجا انجام دادهایم استفاده از یک PAA توسعهی خودامضا شدهی موجود است که شامل اطلاعات VID نمیشود.
 برای مثالهای بیشتر از تولید CD، به credentials/test/gen-test-cds.sh مراجعه کنید و برای مثالهای بیشتر از تولید PAA، PAI و DAC، به credentials/test/gen-test-attestation-certs.sh مراجعه کنید.
گواهینامهها را جایگزین کنید
PAA و PAI را جایگزین کنید
-  اسکریپت کمکی زیر را اجرا کنید، که از ابزار گواهی CHIP ( 
chip-cert) برای تولید آرایههای به سبک C از گواهیهای شما استفاده میکند. 
اسکریپت کمکی گواهینامههای جاسازیشده را دانلود کنید
#!/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"
محتویات خروجی PAI و DAC را در پیادهسازی
DeviceAttestationCredentialsProvider::GetProductAttestationIntermediateCertخود کپی کنید.در دستگاههای تولیدی، PAI و DAC در Factory Data قرار دارند، در حالی که CD در خودِ میانافزار تعبیه شده است.
اگر هنوز از Factory Data استفاده نمیکنید، میتوانید PAI خود را در
src/credentials/examples/ExampleDACs.cppقرار دهید. در این صورت، کد تولید شده حاصل را به فایلExampleDACs.cppخود اضافه کنید: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اگر از Factory Data یا یک Credentials Provider سفارشی استفاده میکنید، مطمئن شوید که اعتبارنامهها را در مکانهای مناسب وارد میکنید. شاید بهتر باشد در مورد مشخصات پلتفرم خود با ارائهدهنده SoC خود مشورت کنید.
سی دی را تعویض کنید
با استفاده از
xxdنمایش متنی از محتوای فایل CD خود را استخراج کنید:$ xxd -i credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.derخروجی مثال:
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; ```متنی که در مرحله قبل استخراج کردید را در فایلی که برای تعریف CD در ساخت خود استفاده کردید، کپی کنید. همانند مورد PAI و DAC، نحوه انجام این کار بستگی به پلتفرمی دارد که روی آن توسعه میدهید.
 اگر از مثالهای اعتبارنامهها استفاده میکنید، احتمالاً میخواهید محتوای kCdForAllExamples را در ExampleDACProvider::GetCertificationDeclaration در 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
        };
هدف را بسازید
با استفاده از اعتبارنامههای تازه ایجاد شده، هدف خود را بسازید و فلش کنید. این بخش به پلتفرم بستگی دارد. برای اطلاعات بیشتر به مستندات SoC یا دستگاههای پشتیبانی شده خود مراجعه کنید.
دستگاه را راه اندازی کنید
اکنون میتوانید مراحلی را که قبلاً در بخش «جفت کردن دستگاه Matter» پوشش داده شده است، برای راهاندازی دستگاه Matter خود در Google Home platform دنبال کنید.
 اشکالزدایی مشکلات با استفاده از chip-tool
 chip-tool میتواند ابزاری ارزشمند برای بررسی ارسال گواهیهای صحیح توسط دستگاه شما باشد. برای ساخت آن: 
$ 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 ../..
برای فعال کردن گزارشهای اضافی، هر زمان که chip-tool اجرا میکنید، مطمئن شوید که پرچم --trace_decode 1 را ارسال میکنید. علاوه بر این، بهتر است مسیر فایل PAA خود را با پرچم --paa-trust-store-path ارسال کنید.
بنابراین برای راهاندازی یک دستگاه Thread با استفاده از BLE، میتوانید دستور زیر را اجرا کنید:
```
$ 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
```
در مورد دستگاههای تست، <PAIRING CODE> برابر با 20202021 و <DISCRIMINATOR> برابر با 3840 است.
برای دریافت اعتبارنامههای Thread خود از Google Nest Hub (2nd gen) ، میتوانید دستور زیر را اجرا کنید:
$ adb connect border_router_ip_address
$ adb -e shell ot-ctl dataset active -x
$ adb disconnect
و برای راهاندازی یک دستگاه وایفای، میتوانید از گزینه ble-wifi استفاده کنید: 
$ examples/chip-tool/out/debug/chip-tool pairing ble-wifi 1 "SSID" SSID_password pairing_code discriminator