I have written an Android App which uses the following methods for generating an Android Unique Device ID. I assume this ID is unique to each device, independent of the apps installed on it. I also assume the same ID can be generated on the device even if the app is uninstalled/installed several times: Is there a unique Android device ID?
Code:
private String android_id = Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID);
Code:
final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
final String tmDevice, tmSerial, androidId;
tmDevice = "" + tm.getDeviceId();
tmSerial = "" + tm.getSimSerialNumber();
androidId = "" + android.provider.Settings.Secure.getString(getContentResolver(), android.provider.Settings.Secure.ANDROID_ID);
UUID deviceUuid = new UUID(androidId.hashCode(), ((long)tmDevice.hashCode() << 32) | tmSerial.hashCode());
String deviceId = deviceUuid.toString();
Are there any security vulnerabilities if this value is exposed publicly? Can GCM IDs for push notifications be generated based on these values? Can a reverse lookup be used to identify an individual? Can these be used to extract information about individuals from phone carriers?