Wdrożenie podpisanej konfiguracji

Funkcja podpisanej konfiguracji umożliwia umieszczanie na stronach ograniczeń interfejsu spoza SDK w plikach APK. 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ół 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.

Właściwe obsługiwanie podpisanych plików konfiguracyjnych zapewnia, że biblioteki AndroidX będą prawidłowo działać na urządzeniach w przyszłości.

Nie można dostosować tej funkcji. Jest on w pełni obsługiwany w AOSP i nie wymaga od OEM żadnych działań.

Przykłady i źródło

Implementacja funkcji znajduje się na serwerze systemowym 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

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

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 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ścią parametru android.settings.global.signature jest podpis ECDSA-p256 danych JSON. Podpis służy do weryfikacji pochodzenia danych konfiguracji.

Ta funkcja nie jest widoczna dla użytkowników.

Dostosowywanie

Ta funkcja nie jest przeznaczona do dostosowywania. Producenci OEM nie powinni modyfikować tej funkcji, w tym wymieniać klawiszy. Wszelkie zmiany w tym pliku mogą spowodować, że AndroidX nie będzie działać prawidłowo na urządzeniach, na których występuje problem.

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
...