In che modo "ShareIt", "Xender" ecc. Sono in grado di installare APK senza richiedere l'autorizzazione "fonte sconosciuta"?


9

Normalmente, se devo installare un apk (diciamo dalla scheda SD), devo abilitare "Origini sconosciute" nelle impostazioni del mio telefono. Ma quando trasferisco e installo qualsiasi APK da un altro telefono utilizzando "ShareIt", il mio telefono non richiede tale autorizzazione.

In che modo ShareIt è in grado di aggirare questa autorizzazione?


ShareIt è preinstallato sul tuo dispositivo o lo hai installato tu stesso?
Izzy

Risposte:


8

Ho fatto un po 'di ricerche ed è possibile senza le autorizzazioni di sistema dall'API 21 in poi https://developer.android.com/reference/android/content/pm/PackageInstaller.html .

In effetti, esiste un esempio di codice di Google che mostra come farlo. https://github.com/googlesamples/android-testdpc/blob/master/app/src/main/java/com/afwsamples/testdpc/cosu/CosuUtils.java


Complimenti per averlo scoperto, ora per scoprire se l'app ha effettivamente utilizzato questo ...
Andy Yan

2
@beeshyams - Non proprio. L'app non può eseguire un'installazione "silenziosa". Attraverso l'intento in sospeso, al momento dell'installazione è richiesto il "clic" esplicito dell'utente.
Neo

1
@Neo Damn, quindi ho appena assunto un'installazione silenziosa quando ho scritto la mia risposta ... Mio cattivo.
Andy Yan,

2
In altre notizie, il pacchetto di ShareIt sembra essere in qualche modo offuscato, quindi anche se i miei strumenti sono riusciti nella generazione del codice Java, dagli stub non si vede nulla di significativo.
Andy Yan,

Aspetta, ho usato un altro strumento e penso che potrei averlo. Lo avrò modificato nella tua risposta dopo la verifica.
Andy Yan,

4

Se le app vengono installate in modo silenzioso (senza la solita finestra di dialogo di installazione), presumibilmente queste app chiamano direttamente pm, vale a dire PackageManagerche come app di sistema ha l'autorizzazione android.permission.INSTALL_PACKAGES.

Il telefono deve essere rootato in modo che l'app possa chiamare pmin un contesto root, altrimenti verrai accolto con il messaggio "Né l'utente xxxx né il processo corrente hanno android.permission.INSTALL_PACKAGES".

EDIT: come sottolineato da @Izzy nel commento, android.permission.INSTALL_PACKAGESè concesso anche alle app installate su /system. Vedi il commento qui sotto e questa domanda SO per ulteriori approfondimenti.


Nota che in realtà non ho provato ShareIt e non ho analizzato ciò che fa realmente, ma ho semplicemente avanzato la teoria più probabile. Se non sei rootato e ha ancora funzionato, allora potremmo avere un problema molto più interessante da esaminare.
Andy Yan,

1
@beeshyams In Cina qui, molti mercati di app di terze parti eseguono l'installazione silenziosa o automatizzata. Il primo modo è come descritto qui e chiederanno il permesso di root alla prima installazione; il secondo è chiederti di attivare un servizio di accessibilità, quindi automatizzare i clic sui pulsanti "installa".
Andy Yan,

1
Il mio telefono non è rootato. E non ha nemmeno chiesto i permessi di root. Ma in India, ShareIt è un metodo molto popolare per installare app tramite peer-to-peer.
Neo

1
@beeshyams Evita quell'app e la sua orribile talpa di autorizzazioni necessarie. Prendi invece in considerazione l'utilizzo della condivisione open source tramite HTTP (disponibile su F-Droid). Non sono in alcun modo affiliato con l'app.
Grimoire

1
@beeshyams Funziona con qualsiasi dispositivo collegato alla stessa rete. Per quanto ne so, l'host deve essere Android, ma qualsiasi dispositivo può quindi connettersi alla stessa rete e visitare l'indirizzo HTTP mostrato nell'app per scaricare i file.
Grimoire
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.