"ShareIt", "Xender"등은 "알 수없는 소스"권한없이 APK를 어떻게 설치할 수 있습니까?


9

일반적으로 APK (SD 카드 등)를 설치해야하는 경우 휴대폰 설정에서 "알 수없는 소스"를 활성화해야합니다. 그러나 "ShareIt"을 사용하여 다른 휴대 전화에서 APK를 전송하고 설치할 때 휴대 전화에서 이러한 권한이 필요하지 않습니다.

ShareIt는 어떻게이 권한을 우회 할 수 있습니까?


ShareIt이 기기에 사전 설치되어 있습니까, 아니면 직접 설치하셨습니까?
Izzy

답변:


8

약간의 파기 작업을 수행했으며 API 21 이상의 https://developer.android.com/reference/android/content/pm/PackageInstaller.html 시스템 권한이 없으면 가능합니다 .

실제로 Google에서 제공하는 코드 샘플이 있습니다. https://github.com/googlesamples/android-testdpc/blob/master/app/src/main/java/com/afwsamples/testdpc/cosu/CosuUtils.java


응용 프로그램이 실제로 이것을 사용했는지 여부를 찾기 위해 이것을 파헤쳐 서 좋은
Andy Yan

2
@beeshyams-실제로는 아닙니다. 앱이 "자동"설치를 수행 할 수 없습니다. 보류중인 의도를 통해 설치시 사용자의 명시적인 "클릭"이 필요합니다.
Neo

1
@ 네오 젠장, 그래서 난 그냥 내 대답을 쓸 때 자동 설치를 가정 ... 내 나쁜.
Andy Yan

2
다른 소식으로, ShareIt 패키지는 어떻게 든 혼란스러워 보입니다. 내 도구가 Java 코드 생성에 성공했지만 스텁에서 중요한 것은 없습니다.
Andy Yan

잠깐만-다른 도구를 사용했는데 도구가있을 것 같습니다. 확인 후 답변을 수정하겠습니다.
Andy Yan

4

애플 리케이션이 (보통 설치 대화 상자 iewithout) 자동으로 설치되어있는 경우, 아마도 이러한 애플리케이션은 직접 전화 pm즉, PackageManager시스템 응용 프로그램으로 권한을 부담하는 android.permission.INSTALL_PACKAGES.

앱이 pm루트 컨텍스트에서 호출 될 수 있도록 전화를 루팅해야합니다 . 그렇지 않으면 "사용자 xxxx 또는 현재 프로세스에 android.permission.INSTALL_PACKAGES가 없습니다"라는 메시지가 표시됩니다.

편집 : 의견에서 @Izzy가 지적했듯이에 android.permission.INSTALL_PACKAGES설치된 앱에도 부여됩니다 /system. 더 많은 통찰력을 얻으려면 아래 의견 과이 질문 을 참조하십시오 .


필자는 실제로 ShareIt을 시도하지 않고 실제로 수행하는 작업을 분석하지 않고 가장 가능성이 높은 이론을 제시했습니다. 당신이 뿌리를 내리지 않고 여전히 효과가 있다면 훨씬 더 흥미로운 문제가 생길 수 있습니다.
Andy Yan

1
@beeshyams 여기서 중국의 많은 타사 앱 시장은 자동 또는 자동 설치를 수행합니다. 첫 번째 방법은 여기에 설명 된대로 첫 설치시 루트 권한을 요청합니다. 두 번째는 접근성 서비스를 켜고 "설치"버튼 클릭을 자동화하도록 요청하는 것입니다.
Andy Yan

1
내 전화가 루팅되지 않았습니다. 그리고 루트 권한도 요청하지 않았습니다. 그러나 인도에서 ShareIt은 피어 투 피어를 통해 앱을 설치하는 매우 인기있는 방법입니다.
Neo

1
@beeshyams 해당 앱과 필요한 권한의 끔찍한 몰을 피하십시오. 대신 HTTP (F-Droid에서 사용 가능)를 통한 오픈 소스 공유 사용을 고려하십시오 . 나는 결코 앱과 제휴하지 않습니다.
Grimoire

1
@beeshyams 동일한 네트워크에 연결된 모든 장치에서 작동합니다. 내가 알 수있는 한 호스트는 Android 여야하지만 모든 장치는 동일한 네트워크에 연결하고 앱에 표시된 HTTP 주소를 방문하여 파일을 다운로드 할 수 있습니다.
Grimoire
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.