플랫폼 서명 앱은 플랫폼 패키지 (android
)와 동일한 (또는 호환되는) 서명 인증서를 공유하는 앱입니다. 플랫폼 서명 앱은 시스템 앱 (시스템 이미지 파티션에 있음) 또는 비시스템 앱일 수 있습니다. 플랫폼 서명 권한은 signature
보호 수준도 있는 플랫폼 패키지로 정의된 권한입니다. 디버깅 가능한 빌드는 android.os.Build.isDebuggable()
가 true
를 반환하는 빌드입니다(예: userdebug
또는 eng
빌드).
지금까지 기기 제조업체에는 어떤 플랫폼 signature
권한을 플랫폼 서명 비시스템 앱에 부여할 수 있는지에 대한 제어 권한이 부족했습니다.
Android 15부터 제조업체는 /etc/permissions
디렉터리의 시스템 구성 XML 파일에서 플랫폼 서명 권한을 명시적으로 부여할 수 있습니다. 플랫폼 서명 비시스템 앱이 플랫폼 서명 권한의 허용 목록에 추가되지 않으면 해당 권한은 디버그할 수 없는 빌드에서 앱이 플랫폼 서명되지 않은 것처럼 작동합니다.
허용 목록 추가
앱의 권한 허용 목록은 다음과 같이 /etc/permissions
디렉터리에 있는 단일 XML 또는 여러 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
빌드와 같은 디버그 불가능한 빌드에는 권한을 부여할 수 없습니다.