플랫폼 서명 공유 UID 허용 목록

플랫폼 서명 앱은 동일하거나 호환되는 서명을 공유하는 앱입니다. 인증서를 플랫폼 패키지 (android)로 교체합니다. 플랫폼 서명 앱은 시스템 앱 (시스템 이미지 파티션에 위치) 또는 비시스템 앱 플랫폼 서명 공유 UID는 공유 UID (android:sharedUserId)로, 플랫폼 서명 앱이 포함됩니다. 디버그 가능한 빌드는 android.os.Build.isDebuggable()true를 반환합니다(예: userdebug 또는 eng). 살펴보겠습니다

과거에는 기기 제조업체에서 어떤 플랫폼 서명을 사용할 것인지에 대한 통제권이 거의 없었습니다. 비시스템 앱은 플랫폼 서명 공유 UID에 조인할 수 있습니다. Android에서 시작하기 15, 제조업체는 플랫폼 서명을 명시적으로 허용할 수 있음 비시스템 앱이 시스템 구성에서 플랫폼 서명 공유 UID에 조인 /etc/permissions 디렉터리에 있는 XML 파일입니다. 플랫폼에서 서명한 비시스템이 앱이 플랫폼 서명 공유 UID의 허용 목록에 추가되지 않음 여전히 플랫폼 서명 공유 UID (android:sharedUserId 사용)에 참여하려고 시도합니다. 해당 앱은 디버그할 수 없는 빌드에 설치할 수 없습니다.

허용 목록 추가

앱의 허용 목록을 단일 XML 파일 또는 여러 XML 파일에 나열할 수 있습니다. 다음과 유사: frameworks/base/data/etc/package-shareduid-allowlist.xml:

<!--
This XML defines an allowlist for packages that want to join a particular shared-uid.
If a non-system package that is signed with platform signature, is trying to join a particular
shared-uid, and not in this list, the installation will fail.

- The "package" XML attribute refers to the app's package name.
- The "shareduid" XML attribute refers to the shared uid name.
  -->

<config>
    <allow-package-shareduid package="android.test.settings" shareduid="android.uid.system" />
</config>

누락된 허용 목록 찾기

누락된 허용 목록 항목을 찾으려면 플랫폼 서명 비시스템을 설치해 보세요. 여전히 설치할 수 있는지 확인합니다. 그렇지 않은 경우 기기 로그에서 다음 형식의 경고 메시지를 검사할 수 있습니다.

Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}