Laut Android-Kompatibilitätsdefinitionsdokument OEMs müssen eine Möglichkeit bieten, die App-Entwicklung zu ermöglichen. Die Bereitstellung für Mobilgeräte Entwickleroptionen in Autos machen diese Autos angreifbar. Zugriff auf Entwickler Optionen können jetzt von einem OEM mithilfe eines authentifizierten kryptografischen Token-Mechanismus gesteuert werden. Insbesondere kann ein OEM:
- Legen Sie die gewünschten Standardeinschränkungen vor dem ersten Start fest.
- Entwickler können mit Krypto-Tokens sicher autorisiert werden, falls gewünscht.
- Wenden Sie Einschränkungsänderungen an, sobald ein Entwickler authentifiziert und autorisiert ist.
In diesem Artikel wird eine Referenzimplementierung beschrieben, die aus einer Debugging-Einschränkung besteht. Controller-App und einem Remote-Tokenausstellerendpunkt.
Terminologie
Zusätzlich zu Terminologie: die folgenden Begriffe werden in diesem Artikel verwendet:
- JSON Web Signature (JWS), definiert in RFC 7515
- National Institute of Standards and Technology (NIST)
Design
OEMs können Entwickler mit JWS-Tokens (JSON Web Signature) (RFC 7515) autorisieren. Im Referenzimplementierung, Zugriffstokens werden von OEMs ausgestellt und von der Einschränkung Controller-App. Zugriffstokens sind darauf ausgelegt, Replay-Angriffen und gefälschten Tokens standzuhalten.
Abbildung 1: Design
Integration und Konfiguration
OEMs müssen die gewünschten Standardeinschränkungen beim ersten Start angeben. Dies geschieht mit mehrere statische Ressourcen-Overlays verwenden, um die Standardeinstellungen im AOSP-Framework zu überschreiben.
Die Standardeinschränkungen für monitorlose Systemnutzer können mit dem
config_defaultFirstUserRestrictions
String aufgenommen
frameworks/base/core/res/res/values/config.xml
, z. B.:
<!-- User restrictions set when the first user is created. Note: Also update appropriate overlay files. --> <string-array translatable="false" name="config_defaultFirstUserRestrictions"> <item>no_debugging_features</item> </string-array>
Die standardmäßigen Einschränkungen für Fahrer, Fahrgäste und Gäste können
frameworks/base/core/res/res/xml/config_user_types.xml
Ein OEM kann überlagern|
diese Strings, um die Standardeinschränkungen für jeden Nutzertyp festzulegen. Zum Beispiel:
<user-types> <full-type name="android.os.usertype.full.SECONDARY" > <default-restrictions no_debugging_features="true"/> </full-type> <full-type name="android.os.usertype.full.GUEST" > <default-restrictions no_debugging_features="true"/> </full-type> </user-types>
Eine Referenzimplementierung wird an der folgenden Stelle in AOSP bereitgestellt:
packages/apps/Car/DebuggingRestrictionController
Testen
Google empfiehlt, dass OEMs mit der Referenzimplementierung beginnen und darauf aufbauen.
- Nachdem Sie die gewünschten Einschränkungen in den Overlay-Dateien konfiguriert haben, kompilieren Sie AAOS und die definierten Abläufe zu validieren. Referenz-App und lokalen JWS-fähigen Dienst verwenden um Ihre Zugriffseinstellungen zu überprüfen.
- Konfigurieren Sie das System für die Verwendung Ihres JWS-fähigen Cloud-Dienstes (optional). Bestätigen Sie, dass Sie Beobachten des gewünschten Ablaufs in Ihrem Back-End-Dienst.