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;

  1. supersu.apk
  2. com.noshufou.android.su
  3. com.thirdparty.superuser
  4. eu.chainfire.supersu
  5. com.koushikdutta.superuser
  6. com.zachspong.temprootremovejb
  7. com.ramdroid.appquarantine
  8. /system/bin/su
  9. /system/xbin/su
  10. /sbin/su
  11. /system/su
  12. /system/bin/.ext/.su
  13. /system/usr/we-need-root/su-backup
  14. /system/xbin/mu
  15. *chainfire*
  16. 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’;

  1. /data
  2. /system
  3. /system/bin
  4. /system/sbin
  5. /system/xbin
  6. /vendor/bin
  7. /sys
  8. /sbin
  9. /etc
  10. /proc
  11. /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