如何在Android Oreo上获取应用特定的ANDROID_ID?

E. *_*din 6 android android-8.0-oreo

如上所述, Oreo为每个应用程序提供了唯一的ANDROID_ID,这使得上一个命令无法按照我的意愿获取id.

adb shell settings get secure android_id
Run Code Online (Sandbox Code Playgroud)

我怎么能在Oreo上获得特定应用所看到的android id?

欢迎Root和非root解决方案.

Ale*_*pov 2

adbANDROID_ID目前不支持检索特定于应用程序的 ANDROID_ID ,因为特定于应用程序的 ANDROID_ID 正在写入单独的文件中( settings_ssaid.xml, 而adb只允许访问system,secureglobal表中的值)。但是,在模拟器或 root 设备上,这可以轻松实现:

# switch into a root mode and open a shell
$ adb root
$ adb shell
$ pm list users
Users:
    UserInfo{0:Owner:13} running
    UserInfo{10:New user:10} running
# let's find all the app-specific ANDROID_IDs for user 0
$ cd /data/system/users/0
$ cat settings_ssaid.xml  
<settings version="-1">
  <setting id="0" name="userkey" value="E4FC4CFF14039F5AD44AD63F70007F85FDBBE1FF9BCB9FF5331B3FD33E057461" package="android" defaultValue="E4FC4CFF14039F5AD44AD63F70007F85FDBBE1FF9BCB9FF5331B3FD33E057461" defaultSysSet="true" tag="null" />
  <setting id="4" name="10072" value="9d5f269e42d4ca76" package="info.osom.ssaid" defaultValue="9d5f269e42d4ca76" defaultSysSet="false" tag="null" />
</settings>
Run Code Online (Sandbox Code Playgroud)

在此示例中,我有一个包名称为 的应用程序info.osom.ssaid,其ANDROID_ID值为9d5f269e42d4ca76