2016-09-19 3 views
2

내 앱 중 하나가 다른 앱에 콘텐츠를 제공하는 고전적인 사례가 있습니다. 나는 컨텐트 프로 바이더가 시그니처 보호 레벨을 가진 허가를 사용하여 보안 될 수 있음을 안다. 그러나 나는 다른 방향에 대해 우려하고있다. 콘텐츠 제공 업체가 포함 된 앱이 설치되지 않았고 악의적 인 앱에 동일한 권한을 가진 제공 업체가 포함되어있는 경우 (권한이 실수로 충돌해서는 안되지만 악의적 인 앱에 대해 생각하고 있음) 내 앱이 동일한 서명이있는 앱에 정의 된 앱만 쿼리하는지 확인하려면 어떻게해야합니까?ContentProvider의 서명 확인

제가 생각할 수있는 가장 가까운 것은 패키지 관리자를 통해 내 다른 앱을 찾고 서명이 일치하는지 확인하는 것입니다. 그리고 내 다른 응용 프로그램은 콘텐츠 공급자를 가지고 있기 때문에 동일한 권한을 가진 다른 콘텐츠 공급자를 동일한 장치에 설치할 수 없습니다. 그러나 이것으로 패키지 이름과 권한을 연결합니다. 나는 더 깨끗한 방법이 있기를 바라고있다.

답변

3

PackageManagerresolveContentProvider()을 호출하고 전거 문자열을 전달하십시오. 그러면 해당 문자열에 대한 ContentProvider의 세부 정보가 제공됩니다. 거기에서 해당 공급자의 패키지 서명이 사용자의 패키지와 일치하는지 확인하십시오.