Obwohl dies keine Voraussetzung ist, erfordert einige Testszenarien die Erstellung von Matter-Zertifikaten für Nicht-Produktionsumgebungen.
Einige Funktionen des Google-Ökosystems, einschließlich OTA-Softwareupdates für Geräte, können nicht mit einer Test-VID/PID ausgeführt werden.
In dieser Anleitung wird erklärt, wie Sie Matter-Zertifikate für Nicht-Produktionsumgebungen Matter für Testzwecke erstellen und überprüfen. Folgende Zertifikatstypen sind verfügbar:
- Zertifizierungserklärung (CD)
- Zwischenzertifikat für die Produktattestierung (PAI)
- Geräteattestierungszertifikat (DAC)
Während des Inbetriebnahmeprozesses muss sich ein Matter zertifiziertes Gerät attestieren, d. h. nachweisen, dass es sich um ein echtes Matter-zertifiziertes Produkt handelt. Die von Matter Geräten für die Attestierung verwendeten Anmeldedaten bestehen aus:
- Einem Attestierungsschlüsselpaar
- Einer Zertifikatskette
Das Geräteattestierungszertifikat (Device Attestation Certificate, DAC) ist das erste Glied der Zertifikatskette und wird vom Zwischenzertifikat für die Produktattestierung (Product Attestation Intermediate Certificate, PAI) validiert, das wiederum von der Produktattestierungsstelle (Product Attestation Authority, PAA) validiert wird.
Zertifikate werden gleichzeitig mit der Generierung des Attestierungsschlüsselpaars signiert. Die Signierung erfolgt mit dem privaten Schlüssel der Zertifizierungsstelle eine Ebene höher, wodurch eine Vertrauenskette entsteht. Ein DAC-Zertifikat wird also mit einem PAI-Schlüssel und ein PAI-Zertifikat mit einem PAA-Schlüssel signiert. Als oberstes Glied der Kette sind PAA-Zertifikate selbst signiert. Diese Vertrauenskette bildet eine föderierte PAA-Struktur, die vom Distributed Compliance Ledger (DCL) synchronisiert wird.
Weitere Informationen zum Attestierungsprozess und zu Zertifizierungserklärungen (CD) finden Sie unter Zusätzliche Attestierungsdokumente und ‑meldungen und in der Matter-Spezifikation.
Matter SDK installieren
Bei dieser Anleitung wird davon ausgegangen, dass Sie eine funktionierende Installation des Matter SDK haben. Weitere Informationen finden Sie in der Dokumentation auf GitHub oder unter Erste Schritte mit Matter.
Installieren Sie das Dienstprogramm xxd, falls Sie es noch nicht haben. Dieses Tool ist nützlich
zum Drucken der Anmeldedaten im C-Stil:
sudo apt-get install xxd
chip-cert erstellen
Achten Sie darauf, dass Sie mit einer aktuellen Version des SDK arbeiten. Diese Verfahren wurden auf GitHub SHA
0b17bce8im Branchv1.0-branchgetestet:$ cd connectedhomeip $ git checkout v1.0-branch $ git pullErstellen Sie
chip-cert. Dieses Tool wird für verschiedene Vorgänge mit Anmeldedaten für Matter Geräte verwendet:Konfigurieren Sie den Build:
$ cd src/credentials $ source ../../scripts/activate.sh $ gn gen outBeispielausgabe von
gn:Done. Made 5774 targets from 289 files in 658msFühren Sie den Build aus:
$ ninja -C outBeispielausgabe von
ninja:ninja: Entering directory `out' [2000/2000] stamp obj/default.stamp
Zertifikate erstellen
Exportieren Sie Ihre benutzerdefinierte VID/PID als Umgebungsvariablen, um die Wahrscheinlichkeit von Tippfehlern beim Bearbeiten der Befehlsargumente zu verringern:
$ cd ../..
$ export VID=hexVendorId
$ export PID=hexProductId
CD generieren
Generieren Sie die CD mit
chip-cert. Der Commissioner validiert derzeit nur, dass die VID und PID mit den Daten übereinstimmen, die an anderer Stelle vom Gerät bereitgestellt werden: dem Cluster „Basic Information“, DAC und DAC-Ursprung (falls vorhanden). Sie können die anderen Felder unverändert lassen:$ 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"Überprüfen Sie die CD. Achten Sie darauf, dass sie Ihre VID/PID im Dezimalformat enthält:
$ src/credentials/out/chip-cert print-cd credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.derBeispielausgabe:
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 und DAC generieren
In diesem Beispiel verwenden wir das eigene Testzertifikat der Produktattestierungsstelle (Product Attestation Authority, PAA) von Matter und den Signaturschlüssel Chip-Test-PAA-NoVID
als Stammzertifikat. Wir verwenden es als Stamm-CA, um unser eigenes PAI und DAC zu generieren.
Generieren Sie das PAI mit der PAA. Sie können optional die PID-Informationen in das PAI aufnehmen. Wenn Sie sie weglassen, haben Sie jedoch mehr Flexibilität beim Testen. Wenn Sie DACs für zusätzliche PIDs benötigen, können Sie nur den Schritt zur DAC-Generierung ausführen:
$ 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".pemGenerieren Sie das DAC mit dem 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Überprüfen Sie die DAC-, PAI- und PAA-Kette. Wenn in der Ausgabe keine Fehler angezeigt werden, wurde die Zertifikatsattestierungskette erfolgreich überprüft:
$ 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.pemSie können Ihre Schlüssel mit
opensslprüfen:$ openssl ec -noout -text -in \ credentials/test/attestation/test-DAC-${VID}-${PID}-key.pemBeispielausgabe:
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-256Sie können
opensslauch verwenden, um die generierten Zertifikate zu prüfen:$ openssl x509 -noout -text -in \ credentials/test/attestation/test-DAC-${VID}-${PID}-cert.pemBeispielausgabe:
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
Ein ähnlicher Prozess kann verwendet werden, um eine selbst signierte PAA zu generieren. Dies ist jedoch nicht erforderlich.
Stattdessen haben wir hier eine vorhandene selbst signierte PAA für die Entwicklung verwendet, die keine VID-Informationen enthält.
Weitere Beispiele zum Generieren einer CD finden Sie unter
credentials/test/gen-test-cds.sh
Weitere Beispiele zum Generieren einer PAA, PAI und DAC finden Sie unter
credentials/test/gen-test-attestation-certs.sh
Zertifikate ersetzen
PAA und PAI ersetzen
- Führen Sie das folgende Hilfsskript aus, das mit
dem CHIP-Zertifikatstool (
chip-cert) C-Arrays Ihrer Zertifikate generiert.
Hilfsskript für einbettbare Zertifikate herunterladen
#!/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"
Kopieren Sie den Inhalt der PAI- und DAC-Ausgabe in Ihre Implementierung von
DeviceAttestationCredentialsProvider::GetProductAttestationIntermediateCert.Auf Produktionsgeräten befinden sich PAI und DAC in Werksdaten, während die CD in die Firmware selbst eingebettet ist.
Wenn Sie noch keine Werksdaten verwenden, können Sie Ihr PAI in
src/credentials/examples/ExampleDACs.cppplatzieren. Hängen Sie in diesem Fall den generierten Code an Ihre DateiExampleDACs.cppan: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 chipWenn Sie Werksdaten oder einen benutzerdefinierten Anmeldedatenanbieter verwenden, müssen Sie die Anmeldedaten an den entsprechenden Stellen einfügen. Wenden Sie sich an Ihren SoC-Anbieter, um Informationen zu den Besonderheiten Ihrer Plattform zu erhalten.
CD ersetzen
Extrahieren Sie mit
xxdeine Textdarstellung des Inhalts Ihrer CD-Datei:$ xxd -i credentials/test/certification-declaration/Chip-Test-CD-${VID}-${PID}.derBeispielausgabe:
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; ```Kopieren Sie den im vorherigen Schritt extrahierten Text in die Datei, die zum Definieren der CD in Ihrem Build verwendet wird. Wie bei PAI und DAC hängt die Vorgehensweise davon ab, auf welcher Plattform Sie entwickeln.
Wenn Sie die Anmeldedatenbeispiele verwenden, müssen Sie wahrscheinlich den Inhalt von kCdForAllExamples in ExampleDACProvider::GetCertificationDeclaration in src/credentials/examples/DeviceAttestationCredsExample.cpp ersetzen:
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
};
Ziel erstellen
Erstellen Sie Ihr Ziel und flashen Sie es mit Ihren neu erstellten Anmeldedaten. Dieser Abschnitt ist plattformabhängig. Weitere Informationen finden Sie in der SoC-Dokumentation oder unterstützten Geräten.
Gerät in Betrieb nehmen
Sie können jetzt die unter Matter-Gerät koppeln beschriebenen Schritte ausführen, um Ihr Matter Gerät auf der Google Home platform in Betrieb zu nehmen.
Probleme mit chip-tool beheben
chip-tool kann ein wertvolles Tool sein, um zu prüfen, ob Ihr Gerät die richtigen Zertifikate sendet. So erstellen Sie es:
$ 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 ../..
Wenn Sie zusätzliche Logs aktivieren möchten, müssen Sie beim Ausführen von chip-tool das Flag --trace_decode 1 übergeben. Außerdem empfiehlt es sich, den Pfad Ihrer PAA-Datei mit dem Flag --paa-trust-store-path zu übergeben.
Um ein Thread-Gerät mit BLE in Betrieb zu nehmen, können Sie Folgendes ausführen:
```
$ 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
```
Bei Testgeräten ist <PAIRING CODE> 20202021 und
<DISCRIMINATOR> ist 3840.
So rufen Sie Ihre Thread-Anmeldedaten von Ihrem Google Nest Hub (2nd gen) ab:
$ adb connect border_router_ip_address
$ adb -e shell ot-ctl dataset active -x
$ adb disconnect
Um ein WLAN-Gerät in Betrieb zu nehmen, können Sie die Option ble-wifi verwenden:
$ examples/chip-tool/out/debug/chip-tool pairing ble-wifi 1 "SSID" SSID_password pairing_code discriminator