Se conosci il nome del file installato dell'apk (che su alcuni dispositivi potrebbe essere myapp-1.apk o myapp-2.apk anziché solo myapp.apk) puoi accedervi direttamente come un normale utente incluso l'uno adb che esegue come su un dispositivo sicuro, quindi dovresti essere in grado di adb tirarlo. Ma se non conosci il nome apk installato , non puoi navigare nella directory / data / app senza essere root o aid_system.
Potrebbe valere la pena di indovinare il nome installato: provalo semplicemente, provalo con -1.apk e -2.apk, ecc.
Potrebbe esserci un altro modo: credo che quanto segue funzionerà su un dispositivo sicuro, ma al momento non ne ho uno davanti a me per testarlo.
EDIT: nuova idea per determinare il nome esatto del file APK
1) adb pull /data/system/packages.xml
2) Cerca la voce codePath della tua applicazione
3) adb tirare quello
EDIT: Per quanto riguarda la vecchia idea di seguito, Matthew ha scoperto che mentre i file per processo in / proc hanno l'autorizzazione di lettura su un dispositivo sicuro, sono vuoti quando vengono letti da un utente non privilegiato diverso da quello del loro proprietario. Quindi questo non funzionerà.
1) Avvia la tua app. Avrai anche bisogno di una macchina con adb.
2) tipo
adb shell ps
e cerca la riga con il nome della tua app:
app_1 11959 907 112984 27580 ffffffff afd0c5bc S com.clevername.myapp
3) prendi il numero nella seconda colonna che è l'id del processo e visualizza la sua mappa di memoria virtuale, in questo caso scrivo
adb shell cat /proc/11959/maps
e cerca una linea in cui ha mappato il proprio file apk in memoria
43e9c000-43ea3000 r--s 001f4000 b3:06 15393 /data/app/com.clevername.myapp-1.apk
4) Questo è il nome del file che dovresti aggiungere ad pull
adb pull /data/app/com.clevername.myapp-1.apk .
L'esame delle autorizzazioni della directory in / proc suggerisce che questo dovrebbe funzionare per un utente non privilegiato, mi scuso se non lo fa. Se hai familiarità con l'uso di 'grep' puoi usarlo per evitare la scansione manuale dell'output.
Addendum: non sono davvero sicuro di quale sia la storia delle app installate sulla scheda SD.
adb shell cat /proc/####/maps
non restituisce nulla, purtroppo.