summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorDoug Zongker <dougz@android.com>2010-02-03 10:36:40 -0800
committerDoug Zongker <dougz@android.com>2010-02-03 10:48:22 -0800
commit4f8ff39c1e2448d44ac900e04f9348f9d2aeaaf5 (patch)
tree67295a6b7219bfb33187a066577eb2addf353533 /packages
parent2c355e26e9920966051b5aae3cc991c1055e586e (diff)
downloadframeworks_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.java13
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();