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