2017-03-22 9 views
0

바인딩. 이제 특정 작업 만 바인딩하여 서비스를 사용할 수 있도록 일종의 액세스 제어를 사용하려고합니다. 그런 것이 가능합니까?안드로이드 서비스 나는 두 프로세스가 통신 할 수 있도록, 매니페스트</p> <pre><code>android:process=:newProcess </code></pre> <p>나는 서비스 클래스를 사용에 다음과 같은 태그를 사용하여 별도의 프로세스에서 활동을 실행되는 응용 프로그램이 액세스 제어

저는 SDK에서 작업 중이므로 SDK 사용자가 리버스 엔지니어링을하기 때문에이 작업이 필요합니다. 나는 그들이 내 서비스에 바인딩하고 내 서비스에서 사용되는 데이터에 액세스 할 수 없길 원합니다.

하나의 옵션은 의도로 키 역할을하는 문자열을 전달하는 것이고 서비스의 onBind 메서드는 키의 유효성을 검사하고 올바른 바인딩 만 허용 할 수 있지만 sdk 사용자는이 키를 간단히 볼 수 있습니다 (문자열이 프로 가드에 의해 난독 화되지는 않음) 키를 전달하고 서비스에 바인딩 할 수 있어야합니다.

답변

0

내가 생각한 한 가지 가능한 접근 방식은 작업을 위해 SDK가 호출 될 때마다 UUID를 생성하는 것입니다. 해당 UUID는 SDK의 범위 내에서만 액세스 할 수 있으므로 사용자는 SDK의 핸들을 얻을 수 없습니다. 이 uuid는 내 의도를 통해 전달할 키입니다.이 uuid가 일치하는 경우에만 서비스 바인딩이 허용됩니다. 이렇게하면 해당 uuid에 액세스 할 수있는 클래스 만 내 서비스에 바인딩 할 수 있고 uuid는 SDK를 호출 할 때마다 다시 생성됩니다.

현재이 문제는 예상하지 않지만 뭔가 빠뜨린 것 같습니다.