una tarjeta samsung reparar que pasar movil mover moto memoria interno fotos detecta desde dañada como celular cambiar arreglar aplicaciones almacenamiento android sd-card serial-number

android - tarjeta - mover fotos a sd moto g 3



¿Cómo puedo recuperar el número de serie de una tarjeta SD en Android 7.0+? (3)

En algunas versiones de Android y otras variantes de Linux, es posible obtener el número de serie de una tarjeta SD montada, por ejemplo, leyendo el contenido de /sys/class/mmc_host/mmc0/mmc0:0001/serial o /sys/block/mmcblk0/device/serial (los números específicos pueden variar). En mis pruebas, esto ha funcionado de manera bastante confiable, siempre y cuando la tarjeta SD esté insertada en una ranura para tarjeta SD incorporada (no montada a través del adaptador USB).

Pero a partir de Android 7.0 Nougat, se dice que el sistema operativo está bloqueando el acceso a esta información, al menos en algunos dispositivos. Probé esto ejecutando una aplicación de prueba en un nuevo Alcatel A30 GSM (Android 7.0), y de hecho, el enfoque anterior falla con un error de permiso:

java.io.FileNotFoundException: /sys/block/mmcblk0/device/serial (Permission denied) at java.io.FileInputStream.open(Native Method)

Para futuras referencias, nosotros (probando desde un shell adb) tenemos permisos para ls -ld lo siguiente:

  • /sys/class/mmc_host pero no /sys/class/mmc_host/mmc0
  • /sys/block pero no /sys/block/mmcblk0

Dado que el enfoque anterior ya no funciona,

  • ¿Hay otra forma de obtener el número de serie de una tarjeta SD montada en Android 7.0 o posterior?

  • En su defecto, ¿existe alguna documentación u otra declaración de Google sobre los planes para proporcionar o no esta función? No he encontrado nada en el rastreador de problemas de Android, pero tal vez no esté buscando bien.

Para asegurarme de que la pregunta sea clara, estoy hablando de lo que puede hacer una aplicación ordinaria (no de sistema) que se ejecuta en un dispositivo no rooteado, con los permisos que una aplicación normalmente puede solicitar y recibir.

Para su información, el directorio /sbin no parece ser legible, por lo que comandos como /sbin/udevadm no son una opción.


En Android N, el acceso a / sys nad / proc se restringió significativamente, esto se hizo para proporcionar espacios limitados donde se ejecutan las aplicaciones. Esto se explica en issuetracker.google.com/issues/37091475 como intencional. En realidad no se dice que no se pueda acceder a todos los datos en / sys, y Google está abierto para permitir el acceso a otros archivos desde esta ubicación:

Si hay archivos específicos en / sys que cree que deberían estar disponibles para las aplicaciones, pero no lo están, presente un nuevo error donde se pueda evaluar la solicitud. Por ejemplo, / sys / devices / system / cpu está disponible para todos los procesos, por lo que es incorrecto decir que todo / sys está restringido.

Tengo el mal presentimiento de que Google está realizando cambios similares a Apple en los que no está permitido obtener id-s de hardware. Si eso no se resuelve, la solución es utilizar los ID de cuenta de Google en su lugar. Pero soy consciente de que no siempre es posible y requerirá cambios importantes en la lógica empresarial (licencias, etc.).

Esperemos que su issuetracker.google.com/issues/37705442 sea ​​considerado positivamente.

otro SO relacionado que encontré: cambios en el sistema de archivos en Android Nougat


Use StorageVolume.getUuid () en StorageVolume que obtiene de StorageManager.

El valor es el ID de volumen asignado durante el formateo de la tarjeta, y su longitud / formato varía según el tipo de sistema de archivos. Para FAT32 es XXXX-XXXX, para NTFS es una cadena hexadecimal más larga, para el almacenamiento masivo interno devuelve nulo.


adb shell cat /sys/class/mmc_host/mmc1/mmc1:*/cid

También puedes probar

sudo hwinfo --disk

para obtener información sobre sus discos, incluidas las tarjetas SD.

Intenta también

sudo hdparm -I /dev/sdb | more