从 ADB 和 Android SDK 获取 Android 设备标识符
我正在寻找从 Android adb 和 Android ADK 本身获取唯一 Android 设备标识符的最简单方法。
例如,当我使用 adb 'devices' 命令时,我连接的设备的序列号会输出到屏幕上。我尚未在 Android sdk 中找到一种方法来获取相同的序列号。
我不关心使用什么唯一标识符,只关心可以从 adb 和 android sdk 轻松检索的东西。植根设备将不是一个选项。
I am looking for the easiest way to get a unique android device identifier from both the Android adb and the Android ADK itself.
For example, when i use the adb 'devices' command, the serial number of my connected device is outputted to the screen. I have yet to identify a method in the Android sdk to get me the same serial number.
I don't care what unique identifier is used, just something that can be easily retrieved from both the adb and android sdk. Rooting a device will not be an option.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
您可能想要使用 ANDROID_ID。
您可以通过以下方式通过 adb shell 查询其值:
或者通过查询设置内容提供程序:
You would probably want to use ANDROID_ID.
This is how you can query its value via adb shell:
Or by querying the settings content provider:
就像使用 adb 一样简单
Simple as that with adb
Android 将所有设备相关信息存储在一个或另一个 sqlite 数据库中。
这些数据库可以在/data/data/文件夹中找到。
要从 adb 读取这些数据库,您需要 root 权限。
android id 可在 /data/data/com.android.providers.settings/databases/settings.db 中找到,
因此对于 adb 使用此命令。
**您必须在 adb 中以 root 身份运行 adb
Android stores all the device related info in one or the other sqlite DB.
These databases can be found in /data/data/ folder.
To read these databases from adb you will need root permissions.
The android id is available in /data/data/com.android.providers.settings/databases/settings.db
So for adb use this command.
**you must be running adb as root in adb
可以使用 getprop 在设备内检索 Android 序列号:
getprop ro。 Serialno
在 Java 中,您可能需要使用 Runtime.exec()
The Android serial number can be retreived within the device with getprop :
getprop ro.serialno
From Java, you may want to execute it with Runtime.exec()
我用的是adb。首先,我使用以下命令列出附加的设备 ID 号:
输出将如下所示:
从之前的输出中,您将需要设备 ID 号(例如:
YOGAA1BBB412
)。为了获取设备 ID,我使用以下 adb 命令:输出如下所示:
I use adb. First I list the attached device ID numbers with the following command:
And the output will look something like this:
From the previous output, you will need the device ID number (eg:
YOGAA1BBB412
). To get the Device ID, I use the following adb command:And the output looks like this:
尝试 ANDROID_ID。正如文档所述“[它]是在第一次启动时随机生成的,并且应该在设备的生命周期内保持不变”。
Try ANDROID_ID. As documentation says "[it] is randomly generated on first boot and should remain constant for the lifetime of the device".
请通过运行以下命令确保您的设备已连接。
之后要获取该设备的 android id,您可以运行以下命令。
Please make sure your device is connected by running the below command.
after that to get the android id of that device you can run the below command.
adb shell 设置获取安全的 android_id
此命令返回 ANDROID_ID,但它可能与代码级别收到的 ANDROID_ID 不同。应用程序可以使用不同的最低 API 级别,并且从 adb shell 获取的值可能不匹配
可以从 [net.hostname] 属性获取 ANDROID_ID。它在 API 级别 23 中工作。
获取 API 级别 23 的 android_id 的命令
adb shell getprop net.hostname
在 android 8.0 及更高版本中,由于 android 隐私政策更改,此属性返回 null。
因此,ANDROID_ID 不再是唯一设备 ID 比较的可靠方法。
adb shell settings get secure android_id
This command returns ANDROID_ID but it may not be the same as ANDROID_ID received at code level. The application can use different min API level and the value obtained from adb shell may not match
It was possible to get the ANDROID_ID from [net.hostname] prop. It worked in API level 23.
Command to get the android_id for API level 23
adb shell getprop net.hostname
In android 8.0 and above this prop returns null due to android privacy policy changes.
Hence, ANDROID_ID doesn't remain to be a reliable method of unique device id comparison.
试试这个并找到 Android 之外的
id
。该命令基本上提供了有关手机的所有信息。Try this and find the
id
besides Android. The command gives basically all info about the phone.使用具有 Android 的
getprop net.hostname
唯一 ID 后跟关键字android-<64 位十六进制字符串>
示例:
Use
getprop net.hostname
which has an Android unique Id followed by keywordandroid-<64 bit Hexadecimal String>
example:
要在 ubuntu 上查找有关已连接 USB 设备的所有信息,请使用以下命令
lsusb -v
查看链接
它会给你设备ID,比如
总线 001 设备 005:ID 18d1:4ee7 Google Inc.
所以使用前四个“18d1”来添加android usb规则
To find everything about connected usb device on ubuntu use below command
lsusb -v
See the link
it will give u device id like
Bus 001 Device 005: ID 18d1:4ee7 Google Inc.
So use first four "18d1" to add android usb rules
您可能应该使用 IMEI:
you should probably use IMEI: