Android - Seguridad
Detectar root
Por llave
Si la llave está en ‘release’ entonces no está rooteado
cat /system/build.prop | grep ro.build.tags
La salida debería ser parecida a;
ro.build.tags=release-keys
Por binarios
Si existen estos binarios entonces el dispositivo está rooteado;
- supersu.apk
- com.noshufou.android.su
- com.thirdparty.superuser
- eu.chainfire.supersu
- com.koushikdutta.superuser
- com.zachspong.temprootremovejb
- com.ramdroid.appquarantine
- /system/bin/su
- /system/xbin/su
- /sbin/su
- /system/su
- /system/bin/.ext/.su
- /system/usr/we-need-root/su-backup
- /system/xbin/mu
- *chainfire*
- busybox
Por permisos de directorios
Si el dispositivo está rooteado entonces estos directorios van a tener los permisos de escritura y ejecución para ‘Otros’;
- /data
- /system
- /system/bin
- /system/sbin
- /system/xbin
- /vendor/bin
- /sys
- /sbin
- /etc
- /proc
- /dev
Por permiso de usuario
Listar ID del usuario activo
dumpsys activity | grep -E “mUserLru” | grep -Eo “[0-9]+]$” | tr -d “]”
Obtener datos del usuario ID
id [user_ID]
Si aparece 0 (root) ó 998 (wheel) entonces el dispositivo está rooteado.
Detectar custom ROM
Generalmente ls custom ROMs no tienen los certificados de Google para recibir actualizaciones OTA (Over The Air);
ls -l /etc/security/otacerts.zip
La salida debería ser parecida a;
-rw-r–r– root root 1733 2008-08-01 07:00 otacerts.zip
Listar paquetes instalados
Solamente desde un usuario con root;
pm list packages
Listar capacidades (actividades) de una aplicación
adb shell dumpsys package | grep -i “ + [enter package name] + “ | grep Activity