9 votes

Comment "ShareIt", "Xender" etc. peuvent-ils installer des APK sans demander la permission "source inconnue" ?

Normalement, si je dois installer un apk (disons depuis la carte SD), je dois activer "Sources inconnues" dans les paramètres de mon téléphone. Mais lorsque je transfère et installe un APK à partir d'un autre téléphone en utilisant "ShareIt", mon téléphone ne demande pas cette autorisation.

Comment ShareIt peut-il contourner cette autorisation ?

8voto

Neo Points 271

J'ai fait quelques recherches et il est possible de le faire sans les autorisations du système à partir de l'API 21. https://developer.Android.com/reference/Android/content/pm/PackageInstaller.html .

En fait, il y a un exemple de code par Google qui montre comment le faire. https://github.com/googlesamples/Android-testdpc/blob/master/app/src/main/java/com/afwsamples/testdpc/cosu/CosuUtils.java

4voto

Andy Yan Points 9360

Si les applications sont installées de manière silencieuse (c'est-à-dire sans la boîte de dialogue d'installation habituelle), on peut supposer que ces applications appellent directement pm c'est-à-dire PackageManager qui, en tant qu'application système, porte la permission android.permission.INSTALL_PACKAGES .

Le téléphone doit être enraciné pour que l'application puisse appeler. pm dans un contexte Root, sinon vous serez accueilli par le message "Neither user xxxx nor current process has Android.permission.INSTALL_PACKAGES".

EDIT : Comme @Izzy l'a souligné dans le commentaire, android.permission.INSTALL_PACKAGES est également accordée aux applications installées sur /system . Voir le commentaire ci-dessous et cette question SO pour en savoir plus.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X