플랫폼 서명 앱은 동일하거나 호환되는 서명을 공유하는 앱입니다.
인증서를 플랫폼 패키지 (android
)로 교체합니다. 플랫폼 서명 앱은
시스템 앱 (시스템 이미지 파티션에 위치) 또는 비시스템 앱
플랫폼 서명 권한은 플랫폼 패키지에서 정의한 권한입니다.
signature
보호 수준도 있습니다. 디버그 가능한 빌드는
android.os.Build.isDebuggable()
가 true
를 반환합니다(예: userdebug
또는
eng
빌드.
과거에는 기기 제조업체에서 어떤 플랫폼을 사용할지에 대한 통제권이 거의 없었습니다.
플랫폼 서명 비시스템 앱에 signature
권한을 부여할 수 있습니다.
Android 15부터 제조업체는
시스템 구성 XML 파일에서 플랫폼 서명 권한을
/etc/permissions
디렉터리에 있습니다. 플랫폼에 서명한 비시스템 앱이
플랫폼 서명 권한의 허용 목록에 추가되면 해당 권한은
앱이 디버그할 수 없는 빌드에서 서명된 플랫폼이 아닌 것처럼 작동합니다.
허용 목록 추가
앱의 권한 허용 목록을 단일 XML 파일 또는 여러 파일에 나열할 수 있습니다.
frameworks/base/etc/permissions
디렉터리에 있는 XML 파일:
/etc/permissions/signature-permissions-OEM_NAME.xml
/etc/permissions/signature-permissions-DEVICE_NAME.xml
콘텐츠 구성 방법에는 엄격한 규칙이 적용되지 않습니다. 기기 구현자는 다음을 수행할 수 있습니다. 콘텐츠 구조를 결정할 수 있는 권한이 허용 목록에 추가됩니다
허용 목록 맞춤설정
AOSP에는 필요에 따라 맞춤설정할 수 있는 허용 목록 구현이 포함되어 있습니다. 유사한 독점 권한 허용 목록. 예를 들면 다음과 같습니다.
<!--
~ This XML file declares which platform signature permissions to grant to
~ platform signed nonsystem apps.
-->
<permissions>
<signature-permissions package="com.android.example">
<permission name="android.permission.READ_DEVICE_CONFIG"/>
...
</signature-permissions>
...
</permissions>
누락된 권한 찾기
누락된 권한을 찾으려면 플랫폼 서명 앱을 설치하고 기기를 검사하세요. 다음 형식의 경고 메시지 로그를 기록합니다.
Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist
시스템은 여전히 디버그 가능한 빌드에 대한 권한을 부여할 수 있지만
디버그할 수 없는 빌드(예: user
빌드)