Die Funktion „Signierte Konfiguration“ ermöglicht das Einbetten von Einschränkungen für Nicht-SDK-Schnittstellen in APKs. So können bestimmte Nicht-SDK-Schnittstellen von der Blacklist entfernt werden, damit sie von AndroidX sicher verwendet werden können. So kann das AndroidX-Team die Unterstützung für neue Funktionen in bereits veröffentlichten Android-Versionen hinzufügen. Es ist ab Android 10 unterstützt.
Wenn Sie die signierte Konfiguration ordnungsgemäß unterstützen, funktionieren die AndroidX-Bibliotheken auch in Zukunft auf Geräten ordnungsgemäß.
Diese Funktion kann nicht angepasst werden. Sie wird vollständig in AOSP unterstützt und erfordert keine OEM-Bemühungen zur Unterstützung.
Beispiele und Quelle
Die Funktion ist auf dem Systemserver unter frameworks/base/services/core/java/com/android/server/signedconfig
implementiert. Der CTS-Test CtsSignedConfigHostTestCases
enthält eine Beispielnutzung und eine Beispielkonfiguration in cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml
.
Implementierung
Die Unterstützung der Funktion ist mit keinem Aufwand verbunden und es gibt keine speziellen Hardwareanforderungen.
Die Funktion nutzt zwei Anwendungsmetadatenschlüssel zum Einbetten der Konfiguration sowie einen
Signatur in APKs. Diese Schlüssel sind android.settings.global
und
android.settings.global.signature
. Wenn für die AndroidX-Bibliotheken in Zukunft nicht SDK-Schnittstellen von der Blacklist entfernt werden müssen, werden die Werte für diese Schlüssel vom Android-Team und/oder als Teil von AndroidX veröffentlicht.
Die APK-Metadatenschlüssel android.settings.global
und android.settings.global.signature
enthalten beide Base64-codierte Daten. Der Wert
für den Schlüssel android.settings.global
sind JSON-codierte Konfigurationswerte, die auf
die globalen Einstellungen in SettingsProvider
. Der Wert für android.settings.global.signature
ist eine ECDSA-p256-Signatur der JSON-Daten.
Die Signatur wird verwendet, um die Herkunft der Konfigurationsdaten zu verifizieren.
Die Funktion ist für Nutzer nicht sichtbar.
Personalisierung
Die Funktion ist nicht zur Anpassung vorgesehen. OEMs wird empfohlen, die Funktion nicht zu ändern und die Schlüssel nicht zu ersetzen. Jegliche Änderungen daran führen wahrscheinlich dazu, dass AndroidX auf den betroffenen Geräten in Zukunft nicht mehr richtig funktioniert.
Zertifizierungsstufe
Mit dem CTS-Test CtsSignedConfigHostTestCases
wird die Funktionsimplementierung überprüft.
Sie können die Funktion auch manuell testen, indem Sie ein geeignetes APK installieren und
Untersuchen der adb logcat
-Ausgabe:
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...