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 ich używanie. 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.
Właściwe obsługiwanie podpisanych plików konfiguracyjnych zapewni, ż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
Nie trzeba podejmować żadnych działań, aby obsługiwać tę funkcję. Nie ma też żadnych wymagań sprzętowych.
Ta funkcja używa 2 kluczy metadanych aplikacji, aby osadzić konfigurację i podpis w pliku APK. Te klawisze 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 pakietu APK android.settings.global
i android.settings.global.signature
zawierają dane zakodowane w formacie base64. Wartość klucza android.settings.global
to zakodowane w formacie JSON wartości konfiguracji, które mają być stosowane do ustawień globalnych w kluczu android.settings.global
.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
sprawdza implementację funkcji.
Funkcję możesz też przetestować 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
...