diff options
author | Doug Zongker <dougz@android.com> | 2010-02-03 10:36:40 -0800 |
---|---|---|
committer | Doug Zongker <dougz@android.com> | 2010-02-03 10:48:22 -0800 |
commit | 4f8ff39c1e2448d44ac900e04f9348f9d2aeaaf5 (patch) | |
tree | 67295a6b7219bfb33187a066577eb2addf353533 /packages | |
parent | 2c355e26e9920966051b5aae3cc991c1055e586e (diff) | |
download | frameworks_base-4f8ff39c1e2448d44ac900e04f9348f9d2aeaaf5.zip frameworks_base-4f8ff39c1e2448d44ac900e04f9348f9d2aeaaf5.tar.gz frameworks_base-4f8ff39c1e2448d44ac900e04f9348f9d2aeaaf5.tar.bz2 |
use device serial number to seed RNG for generating ANDROID_ID
Change-Id: I1bcc55f1309cb908803bc42084846a046041eda6
Diffstat (limited to 'packages')
-rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index 265d138..4080a6a 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -17,9 +17,10 @@ package com.android.providers.settings; import java.io.FileNotFoundException; -import java.util.Random; -import java.security.SecureRandom; +import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; +import java.util.Random; import android.backup.BackupManager; import android.content.ContentProvider; @@ -197,6 +198,14 @@ public class SettingsProvider extends ContentProvider { final String value = c.moveToNext() ? c.getString(0) : null; if (value == null) { final SecureRandom random = SecureRandom.getInstance("SHA1PRNG"); + String serial = SystemProperties.get("ro.serialno"); + if (serial != null) { + try { + random.setSeed(serial.getBytes("UTF-8")); + } catch (UnsupportedEncodingException ignore) { + // stick with default seed + } + } final String newAndroidIdValue = Long.toHexString(random.nextLong()); Log.d(TAG, "Generated and saved new ANDROID_ID"); final ContentValues values = new ContentValues(); |