Las tareas básicas de un antivirus no requieren que gran parte de los accesos de superusuario; para ver si un archivo ejecutable determinado parece contener un virus conocido, entonces el acceso de lectura a ese archivo es suficiente. Esto se puede hacer desde la zona de usuario, sin modificar el kernel o incluso obtener privilegios root
; el sistema de permisos configurables para aplicaciones puede manejar eso. Del mismo modo, la intercepción del tráfico de red se puede hacer con el permiso relevante .
Lo que requeriría jugar con el kernel sería lanzar el antivirus en un archivo cuando se ejecute ese archivo. Pero Android tiene un modelo de seguridad más estricto que los sistemas operativos de escritorio; El código de la aplicación no puede hacer todo lo que desea, por ejemplo. Inspeccionar la memoria RAM utilizada por otras aplicaciones. Esto restringe lo que puede hacer un antivirus, pero también lo que puede hacer un virus. Si el malware ya ha ido más allá de esta capa impuesta por el sistema, las cosas son mucho peores de lo que el antivirus puede solucionar.
Por supuesto, en un dispositivo rooteado, estas cosas cambian mucho. Un dispositivo arraigado es muy similar a, por ejemplo, una PC. En ese caso, una PC con un tipo de Linux, donde los virus y los antivirus son escasos.
Aparentemente , Google está (o estuvo) muy en contra de la mera idea de un antivirus en Android. El modelo de permisos es tal que, al menos en papel, el filtrado de malware se realiza mejor en el repositorio de la aplicación (Google Play); al menos así que se reclama . El software antivirus es útil solo mientras detecta malware que, de lo contrario, sería perjudicial para su dispositivo o sus datos, pero dicha interrupción se consideraría un error en el sistema operativo o en el repositorio de la aplicación, y se solucionará rápidamente por Google. Por lo tanto, un antivirus es eficiente solo en la medida en que el proveedor de antivirus y su política de actualización son más reactivos que los propios Google.