Xposed Framework를 사용하여 Android 애플리케이션(APK) 서명 확인을 쉽게 비활성화할 수 있지만 대부분의 경우에는 이 작업을 수행해서는 안 됩니다.
시스템 응용 프로그램을 수정하고 다시 설치하려고 시도한 적이 있다면 아마도 어떤 형태로든 응용 프로그램 서명 확인을 접했을 것입니다. 계속하기 전에 원본 앱을 제거했거나, 이전 애플리케이션을 먼저 제거하지 않고 설치되도록 수정된 APK에 다른 패키지 이름을 부여했습니다. 그리고 두 경우 모두 처음에 애플리케이션을 설치하려면 애플리케이션에 직접 다시 서명해야 했습니다.
애플리케이션 서명 확인을 일시적으로 비활성화하면 이러한 모든 동작을 피할 수 있습니다. 하지만 이 글의 은유적인 고기와 감자에 대해 알아보고 그렇게 하는 방법을 알려드리기 전에, 응용 프로그램 서명 확인과 그 기능, 그리고 왜 ~해야 한다 절대 대부분의 경우 제거합니다.
Android 서명 확인 기본사항
기본적으로 Android OS에는 다음이 필요합니다. 모두 설치하기 위해 서명해야 하는 애플리케이션. 매우 기본적인 용어로 이는 애플리케이션 서명이 애플리케이션 작성자를 식별하는 데 사용됨을 의미합니다(즉. 적법성 확인)뿐만 아니라 동일한 서명을 가진 응용 프로그램 간의 신뢰 관계를 설정합니다. 전자를 사용하면 유효한 서명이 있는 응용 프로그램이 예상 개발자로부터 나온 것임을 (합리적인 정도로) 확신할 수 있습니다. 그리고 후자를 통해 동일한 개인 키로 서명된 애플리케이션은 동일한 프로세스에서 실행되고 개인 데이터를 공유할 수 있습니다. 그런 다음 애플리케이션 업데이트를 설치할 때 Android OS는 이 서명을 확인하여 다음 사항을 확인합니다. B) 응용 프로그램의 인증서가 현재 설치된 인증서와 일치합니다. 버전.
그렇다면 이 모든 것이 현실 세계에서 나에게 어떤 영향을 미치나요? 정말 간단합니다. Google Play 스토어 외부에서 APK를 얻어 현재 설치된 앱에 대한 업데이트로 설치하려고 하는 경우(읽기: 동일한 패키지 이름), OS는 애플리케이션 인증서의 유효성을 검사하여 해당 인증서가 동일한 초기에서 나온 것인지 확인하려고 시도합니다. 개발자. 인증서가 일치하면 응용 프로그램 설치가 계획대로 진행되고 응용 프로그램은 기존 데이터를 유지하며 모두 유효합니다. 서명이 유효하지 않거나(APK가 변조되었음을 나타냄) 인증서가 원래 앱의 인증서와 일치하지 않으면 설치가 실패합니다. 앞서 설명한 대로 애플리케이션 인증서는 이전 버전에 서명하는 데 사용된 것과 동일한 개인 키로 서명된 경우에만 일치합니다. 즉, APK의 서명과 일치하는 유효한 서명이 있는 경우에만 애플리케이션을 설치할 수 있습니다. 내용이 있으며 해당 인증서가 이전 버전의 인증서와 일치하는 경우에만 업데이트를 설치할 수 있습니다. 앱의.
[이 복잡한 기사에서는 유머러스하게도 개인 애플리케이션 서명 키가 분실되거나 손상된 매우 공개적인 사례가 하나 있습니다. 물론 패키지 이름이 다음에서 변경된 업데이트를 받은 Google 자체 OTP 앱을 언급하고 있습니다. com.google.android.apps.authenticator 에게 com.google.android.apps.authenticator2 약 2년 전 업데이트에서요. 이러한 변경으로 인해 모든 후속 인증기 앱 업데이트는 새 개인 서명 키로 생성된 새 서명을 사용하여 새 패키지 이름으로만 발행될 수 있습니다.]
서명 확인을 (일시적으로) 비활성화하려는 이유
이제 애플리케이션 서명 확인을 일시적으로 비활성화할 수 있는 잠재적인 시나리오를 살펴보겠습니다. 이 기사의 시작 부분에서 언급했듯이 기존 시스템 응용 프로그램을 수정할 때 서명 확인은 약간 골치 아픈 일이 될 수 있습니다. 시스템 응용 프로그램의 수정된 버전을 설치하는 경우 유효하고 일치하는 인증서를 사용하여 응용 프로그램에 서명할 수 없습니다. 이와 같은 경우 일반적으로 기존 애플리케이션을 먼저 제거한 다음 수정된 버전을 정상적으로 설치하는 것이 좋습니다. 서명 확인을 비활성화할 수도 있지만 서명 확인을 활성화한 상태로 두고 새 버전을 설치할 수 있도록 이전 버전을 제거하는 것이 더 좋고 안전합니다. 그러나 교체하려는 앱에 잃어버리고 싶지 않은 데이터가 있는 경우 이는 약간의 문제가 될 수 있습니다. 루트 액세스를 사용하여 수동으로 데이터를 보존하고 새 버전의 데이터로 이식하는 방법이 확실히 있습니다. 하지만 사용자는 일시적으로 서명 확인을 비활성화한 다음 확인을 재개할 수도 있습니다. 나중에. 또는 XDA 수석 회원이 지적한 대로 mcbyte_it 주석에서 이는 애플리케이션 개발에도 유용할 수 있습니다.
그렇게 하는 방법
지금까지 서명 확인을 비활성화하는 것은 거의 모든 문제에 대한 끔찍한 해결책이었습니다. 그렇게 하면 Android에 내장된 보호 기능이 기본적으로 폐기되기 때문입니다. 귀하의 응용 프로그램이 변조되지 않았으며 해당 업데이트가 원본에서 제공되었는지 확인 개발자. 그러나 이제 Xposed Framework의 마법 덕분에 일시적으로 서명 확인을 비활성화하고 수정된 응용 프로그램 설치를 완료한 후 다시 활성화할 수 있습니다. 그러한 Xposed 모듈 중 하나 이를 정확히 수행할 수 있는 제품이 최근 XDA Senior Member에 의해 출시되었습니다. 파일러, Xposed를 실행할 수 있는 모든 장치에 대해 계획대로 작동합니다. 이렇게 하면 적절하게 서명되지 않은 수정된 응용 프로그램 업데이트를 설치하려는 경우 간단히 다음을 수행할 수 있습니다. 모듈을 활성화하고, 재부팅하고, 수정된 애플리케이션 업데이트를 설치하고, 모듈을 비활성화하고, 재부팅하고 즐거운 시간을 보내세요. 방법.
이제 서명 확인을 일시적으로 비활성화하는 방법을 알았으므로 서명 확인이 얼마나 중요한지 다시 한 번 강조하는 것이 중요합니다. 비활성화할 매우 타당한 이유가 없는 한 서명 확인을 항상 활성화된 상태로 두는 것입니다. 그것. 따라서 이러한 도구는 자신이 직접 만든 애플리케이션 업데이트를 적용할 목적으로만 사용해야 하며, 단순히 이전 애플리케이션을 먼저 제거하는 것보다 이를 수행해야 하는 참작이 가능한 상황이 있습니다.
안전하고 현명하게 사용하십시오.