서명 권한 허용 목록

플랫폼 서명 앱은 동일하거나 호환되는 서명을 공유하는 앱입니다. 인증서를 플랫폼 패키지 (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 빌드)