Come posso impedire a 'am' di iniziare la mia attività?

4

Ho un'app per Android e ha 3 attività; A, G e B. Quando l'app avvia gli utenti, vedi Attività A. Se l'utente desidera accedere all'attività B, l'app avvia l'attività G e richiede una password. Se la password è true, l'utente viene indirizzato all'attività B, se non torna all'attività A. Nessuna delle attività viene esportata. Il problema è sui dispositivi rooted un utente può avviare l'attività B dalla riga di comando usando

am start -n package.name/package.name.B

comando. Come posso impedirlo?

    
posta mk_ 25.11.2015 - 16:00
fonte

2 risposte

15

Effettua il controllo di sicurezza effettivo nell'attività B o fai in modo che G invii un qualche tipo di token a B nell'Intento.

Il token può essere qualsiasi dato casuale generato in fase di runtime. Poiché G e B condividono lo stesso processo, possono facilmente accedervi, ma altri processi non possono (non senza debugging manuale).

Ma tieni presente che tutto ciò rende solo difficile agli utenti utilizzare la tua app senza la password. L'utente controlla il file binario e la memoria, quindi può ignorare qualsiasi protezione inserita.

    
risposta data 25.11.2015 - 16:23
fonte
12

Non puoi impedire a AM di essere eseguito su un telefono rooted. Il mio approccio per impedire che l'attività B venga eseguita separatamente sarebbe quello di scrivere l'attività B in modo errato a meno che non abbia passato un codice dall'attività A o G, a seconda di quale attività lo avvia.

    
risposta data 25.11.2015 - 16:04
fonte

Leggi altre domande sui tag