Wdróż podpisaną konfigurację

Funkcja podpisanej konfiguracji umożliwia umieszczanie na stronach ograniczeń interfejsu innego niż SDK w plikach APK. Umożliwia to usunięcie z czarnej listy określonych interfejsów spoza pakietu SDK, i pozwolą AndroidX na ich bezpieczne korzystanie. Dzięki temu zespół AndroidaX będzie mógł dodać obsługę dotyczące nowych funkcji w wersjach Androida, które zostały już opublikowane. Jest w Androidzie 10 i nowszych.

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

Nie można dostosować tej funkcji. Jest w pełni obsługiwany 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 CTS test CtsSignedConfigHostTestCases uwzględnia przykładowe użycie i przykład Konfiguracja w cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml

Implementacja

Jej obsługa nie wymaga żadnych działań i nie ma specjalnego sprzętu. .

Funkcja wykorzystuje 2 klucze metadanych aplikacji do umieszczania konfiguracji oraz podpis w plikach APK. Te klucze to android.settings.global i android.settings.global.signature Czy lub gdy biblioteki AndroidaX wymagają interfejsy inne niż SDK zostaną w przyszłości usunięte z czarnej listy, wartości dla parametrów te klucze zostaną opublikowane przez zespół Androida lub w ramach AndroidaX.

Klucze metadanych pliku APK android.settings.global oraz android.settings.global.signature zawierają dane zakodowane w standardzie base-64. Wartość dla klucza android.settings.global to zakodowane w formacie JSON wartości konfiguracyjne, które mają zostać zastosowane ustawienia globalne w: SettingsProvider. Wartość pola 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. Odradzamy stosowania OEM modyfikować funkcję, w tym zamienić klucze. Wszelkie zmiany może spowodować, że AndroidX nie będzie działać prawidłowo na urządzeniach, których dotyczy problem w przyszłości.

Weryfikacja

Test CTS CtsSignedConfigHostTestCases weryfikuje implementację funkcji.

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

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