Articles of 序列号

如何在Android 7.0+中检索SD卡的序列号?

在某些版本的Android和其他Linux版本中,可以获取已安装SD卡的序列号,例如通过读取/sys/class/mmc_host/mmc0/mmc0:0001/serial或/sys/block/mmcblk0/device/serial (具体数字可能有所不同)。 在我的测试中,只要将SD卡插入内置SD卡插槽(不通过USB适配器安装),这就非常可靠。 但是从Android 7.0 Nougat开始, 据说操作系统阻止访问这些信息,至少在某些设备上是这样。 我通过在新的阿尔卡特A30 GSM(Android 7.0)上运行测试应用程序对此进行了测试,实际上上述方法失败并出现权限错误: java.io.FileNotFoundException: /sys/block/mmcblk0/device/serial (Permission denied) at java.io.FileInputStream.open(Native Method) 为了将来参考,我们(从adb shell测试)拥有ls -ld以下权限: /sys/class/mmc_host但不是/sys/class/mmc_host/mmc0 /sys/block但不是/sys/block/mmcblk0 由于上述方法不再有效, 有没有其他方法可以获得Android 7.0或更高版本中安装的SD卡的序列号? 如果不这样做,谷歌是否有关于提供或不提供此function的计划的任何文件或其他声明? 我没有在Android 问题跟踪器中find任何内容,但也许我没有find正确的搜索引擎。 为了确保问题清楚,我正在谈论在非根设备上运行的普通(非系统)应用程序可以做什么,以及应用程序通常可以请求和接收的任何权限。 仅供参考, /sbin目录似乎不可读,因此像/sbin/udevadm这样的命令不是一个选项。