Wdróż podpisaną konfigurację

Funkcja podpisanej konfiguracji umożliwia umieszczanie w plikach APK konfiguracji ograniczeń interfejsu niebędącego pakietem SDK. Umożliwia to usunięcie z czarnej listy określonych interfejsów innych niż SDK, aby umożliwić AndroidX bezpieczne korzystanie z tych interfejsów. Dzięki temu zespół AndroidX może dodawać obsługę nowych funkcji w wersjach Androida, które zostały już wydane. Jest ona obsługiwana w Androidzie 10 i nowszych.

Prawidłowa obsługa podpisanej konfiguracji daje pewność, że biblioteki AndroidaX będą działać prawidłowo na urządzeniach w przyszłości.

Ta funkcja nie jest możliwa. Jest w pełni obsługiwana w AOSP i nie wymaga żadnych działań OEM.

Przykłady i źródło

Implementacja funkcji znajduje się na serwerze systemu pod adresem frameworks/base/services/core/java/com/android/server/signedconfig. Test CTS CtsSignedConfigHostTestCases zawiera przykładowe użycie i przykładową konfigurację w pliku cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml.

Implementacja

Obsługa tej funkcji nie wymaga żadnych działań i nie ma żadnych konkretnych wymagań sprzętowych.

Ta funkcja używa 2 kluczy metadanych aplikacji, aby osadzić konfigurację i podpis w plikach APK. Te klucze to android.settings.global i android.settings.global.signature. Jeśli w przyszłości biblioteki AndroidX będą wymagać usunięcia interfejsów innych niż SDK z czarnej listy, wartości tych kluczy zostaną opublikowane przez zespół Androida lub w ramach AndroidX.

Klucze metadanych pliku APK android.settings.global i android.settings.global.signature zawierają dane zakodowane w standardzie base-64. Wartość klucza android.settings.global to zakodowane w formacie JSON wartości konfiguracyjne, które mają być zastosowane do ustawień globalnych w SettingsProvider. Wartość android.settings.global.signature to podpis ECDSA-p256 danych JSON. Podpis służy do weryfikacji pochodzenia danych konfiguracyjnych.

Funkcja nie jest widoczna dla użytkownika.

Dostosowywanie

Funkcja nie jest przeznaczona do dostosowywania. Producenci OEM nie powinni modyfikować tej funkcji, w tym wymieniać klawiszy. Wszelkie zmiany w tym systemie mogą w przyszłości spowodować, że AndroidX nie będzie działać prawidłowo na urządzeniach, których dotyczy problem.

Weryfikacja

Test CTS CtsSignedConfigHostTestCases weryfikuje implementację funkcji.

Możesz też przetestować tę funkcję ręcznie, instalując odpowiedni plik APK i sprawdzając dane wyjściowe adb logcat:

$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...