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