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