Dipende principalmente dal sistema operativo (la maggior parte degli smartphone usa Android) e dal virus/malware che ha infettato il dispositivo e quanto in profondità è sepolto nel sistema.
Qui c'è la spiegazione delle partizioni sul sistema Android:
Partizioni Android spiegate: boot, sistema, recupero, dati, cache e misc
Partizioni Android spiegate
Il malware Android comune si installa nella partizione /data dove l'utente ha accesso per installare le applicazioni. Questo è ciò che il reset di fabbrica è in grado di cancellare.
Se il malware riesce a scalare i suoi privilegi di root (jailbreaking | rooting | abusando di unlocked boot | fake rooting/jailbreak guide per guidare gli utenti a installare il malware) e si installa nella partizione /system o anche nelle partizioni /boot e /recovery (che normalmente non sono nemmeno visibili agli utenti del telefono) allora il reset di fabbrica non vi aiuterà e dovrete usare qualche strumento speciale per liberarvi del malware. Intendo tecniche come il re-flashing hardware del chip di memoria o riottenere i privilegi di root e re-flashare le partizioni colpite da immagini pulite/backup.
C'è anche da dire che un numero abbastanza significativo di dispositivi Android (a basso costo) è stato recentemente trovato per essere spedito ai clienti con il malware pre-installato nel sistema quindi il reset di fabbrica non aiuterebbe in questi casi.