3

I want to build a device_id with android_id, any one knows the answer to these three questions?

  • Where is the android_id value stored?
  • When is the android_id value initialized, i.e. the first time the value is set?
  • In which cases does the android_id value change?
2

1 Answer 1

7
  • Where is the android_id value stored?

On Android 5 and earlier this was stored in secure namespace of device Settings. So you can extract using:

~$ content query --uri content://settings/secure --projection value --where "name='android_id'"

Or:

~$ settings get secure android_id

Or directly read the secure table of settings.db database file. For device owner:

~# sqlite3 /data/user/0/com.android.providers.settings/databases/settings.db 'select * from secure where name="android_id"'

Since Android 6 settings are saved in xml files. For device owner:

~# grep android_id /data/system/users/0/settings_secure.xml

Since Android 8, android_id is "unique to each combination of app-signing key, user, and device" so as to deny "developers the ability to track users across multiple applications". These unique IDs are stored in /data/system/users/<User_ID>/settings_ssaid.xml.

  • When android_id value init, the first time set the value?
  • Which case does the android_id value change?

As evident, android_id "is randomly generated when the user first sets up the device and should remain constant for the lifetime of the user's device" unless a factory reset is performed which clears all settings.

On Android 8+ the app specific android_id "value may change if a factory reset is performed on the device or if an APK signing key changes".

Keeping all in view it doesn't seem a good idea to build a device_id with android_id.

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .