서명된 구성 기능을 사용하면 APK에 비 SDK 인터페이스 제한 사항의 구성을 삽입할 수 있습니다. 이를 통해 블랙리스트에서 특정 비 SDK 인터페이스를 제거하여 AndroidX가 해당 인터페이스를 안전하게 사용할 수 있습니다. 이를 통해 AndroidX 팀은 이미 출시된 Android 버전에 새로운 기능에 대한 지원을 추가할 수 있습니다. Android 10 이상에서 지원됩니다.
Signed Config를 올바르게 지원하면 AndroidX 라이브러리가 향후 기기에서 올바르게 작동할 수 있습니다.
이 기능은 사용자 정의할 수 없습니다. AOSP에서 완벽하게 지원되며 이를 지원하기 위해 OEM의 노력이 필요하지 않습니다.
예제 및 소스
기능 구현은 시스템 서버의 frameworks/base/services/core/java/com/android/server/signedconfig
에 있습니다. CTS 테스트 CtsSignedConfigHostTestCases
에는 사용 예시와 cts/hostsidetests/signedconfig/app/version1_AndroidManifest.xml
의 구성 예시가 포함되어 있습니다.
구현
기능을 지원하는 데 노력이 필요하지 않으며 특정 하드웨어 요구 사항도 없습니다.
이 기능은 두 개의 애플리케이션 메타데이터 키를 사용하여 APK 내에 구성과 서명을 삽입합니다. 해당 키는 android.settings.global
및 android.settings.global.signature
입니다. AndroidX 라이브러리가 향후 블랙리스트에서 제거하기 위해 비 SDK 인터페이스를 요구하는 경우 이러한 키의 값은 Android 팀 및/또는 AndroidX의 일부로 게시됩니다.
APK 메타데이터 키 android.settings.global
및 android.settings.global.signature
에는 모두 Base-64로 인코딩된 데이터가 포함되어 있습니다. android.settings.global
키의 값은 SettingsProvider
의 전역 설정에 적용되는 JSON 인코딩 구성 값입니다. android.settings.global.signature
값은 JSON 데이터의 ECDSA-p256 서명입니다. 서명은 구성 데이터의 출처를 확인하는 데 사용됩니다.
이 기능은 사용자에게 표시되지 않습니다.
맞춤화
이 기능은 사용자 정의용이 아닙니다. OEM은 키 교체를 포함하여 기능을 수정하는 것을 권장하지 않습니다. 이를 변경하면 향후 영향을 받는 기기에서 AndroidX가 제대로 작동하지 않을 수 있습니다.
확인
CTS 테스트 CtsSignedConfigHostTestCases
기능 구현을 확인합니다.
적절한 APK를 설치하고 adb logcat
출력을 검사하여 기능을 수동으로 테스트할 수도 있습니다.
$ adb install CtsSignedConfigTestAppV1.apk
...
$ adb logcat
...
I SignedConfig: Verified config using production key
...