gpt4 book ai didi

java - Android 设备 Udid 与 AirWatch Udid

转载 作者:行者123 更新时间:2023-12-02 03:42:41 27 4
gpt4 key购买 nike

我以编程方式获取的 Android 设备 UDID 与同一设备的 AirWatch Udid 不同。还有其他方法获取设备Udid吗?

我使用Secure.ANDROID_ID来获取udid,但它仍然与AirWatch获取的UDID不同。

Secure.getString(getContentResolver(), Secure.ANDROID_ID);

AirWatch UDID 的长度如下:ak26fs007bf8S786f2fr281d22c6996d

我期望相同的输出,但我从上面的代码中得到的 Udid 是:63a34441u6ajj2ed

最佳答案

air watch UDID 是通过将设备的多个方面哈希在一起生成的,其中 Secure.ANDROID_ID 只是其中之一 - ro.serialno 可能是另一个,但要点是它们将这些结合在一起,使用 128 位哈希,这就是您得到的。

如果您绝对必须匹配他们的计算,那么找到他们的 APK .dex 并不难,其中他们在类方法中执行计算,您只需通过反编译即可查看代码。

他们的代码自然会被混淆,但你可以从

开始

com.airwatch.core.AirWatchDevice.isDeviceUDIDInitialized()

从一两个位置调用,并且 - 如果返回 false - 它们调用 UDID 方法(实际的完整方法名称在这里没有用,因为它被混淆了,类似于“d.a.p0.d0.g0.c” “它在每个构建中都会发生变化,但 isDeviceUDIDInitialized() 仍然可见)。

另一种方法是寻找他们从哪里捞出 ro.serialno,

通过 java.lang.Class.getMethod("android.os.SystemProperties", "get", ..)

其中他们还寻找 android.os.Build.MANUFACTURER 和一堆其他属性。

此外,在某些版本中,formatDeviceUid 作为一种方法 - 直接应用 MD5。

关于java - Android 设备 Udid 与 AirWatch Udid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56825826/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com