Friday, October 15, 2010

Android ID Changer

Version 1.5 Updated on October 24, 2010

Each android device needs a unique identification number, know as the Android ID, in order to function properly.  This identification number is stored in a protected database on the phone.  However, custom ROMs will overwrite this database and supply all user of a given ROM with the same, non-unique ID.  This app allows you to restore your unique android ID without SDK tools, command line functions, or even a computer.  Keep this app on your phone and easily restore your unique device ID after every ROM change.

Before you can restore your android id, you will need to know what it is.  If you are still running your stock ROM, simply fire up this app and it will tell you what your current android id is.  Save this value anywhere it can be easily accessible for future use.  If you have already upgraded, you will need to flash to a backup of your stock ROM (you are making backups, right?) where the original information is stored.

In your new ROM, fire up the Android ID Changer and enter your unique android id.  Once a valid id is entered (16 hex characters meaning 0-9 and a-f), click the Change ID button.  The app will then update your android id and reboot the phone to make the changes stick.

In order for this app to work properly, it must be rooted (SU) and have the BusyBox tools installed.  If these conditions are not met, you can still read your android id.  However, clicking Change ID will not result in any changes being made to your system.

WARNING:
As with any app that accesses core system features with root access, there is always a possibility that something may go wrong leading to undesirable operation of the phone.  Please use this app at your own risk.

Head over to the android market to grab a copy and enjoy.











Change Log

Version 1.4 - 1.5
* Changed app to get SU credentials at program launch
* If you click "Remember" when allowing the SU command, this will ensure proper functionality first time

Version 1.3 - 1.4
* Removed explicit sqlite3 binary dependency

Version 1.2 - 1.3
Added error handling routines:
* Checks for presence of required tools.
* Checks to make sure sdcard is mounted read/write.
* If something is going wrong, this should help tell you what it is.

Made changes to support Droids and other models
* Motorola Droids, Nexus One, and others have a file structure different from the Galaxy-S models.
* Performs dynamic file structure checking to accommodate different system layouts from different manufacturers.

Added Save/Load ID Functionality
* Click 'Save ID' to save your current ID to your SD card so it will be there after flashing.
* Saved to update.id on sdcard.
* Click 'Load ID' to load the ID back into the app for easy restoration after a ROM flash.

Display Changes
* Forces app portrait mode for best display results.
* Added scrollability to text to accommodate different resolutions.


18 comments:

  1. Getting this with my Droid X. My X is rooted and should have all the requirements.

    10-20 23:13:02.531 1893 1893 W System.err: java.io.IOException: Error running exec(). Command: [which, su] Working Directory: null Environment: null
    10-20 23:13:02.531 1893 1893 W System.err: at java.lang.ProcessManager.exec(ProcessManager.java:226)
    10-20 23:13:02.531 1893 1893 W System.err: at java.lang.Runtime.exec(Runtime.java:196)
    10-20 23:13:02.531 1893 1893 W System.err: at java.lang.Runtime.exec(Runtime.java:285)
    10-20 23:13:02.531 1893 1893 W System.err: at java.lang.Runtime.exec(Runtime.java:218)
    10-20 23:13:02.531 1893 1893 W System.err: at adaptive.cogid.Main.testResources(Main.java:406)
    10-20 23:13:02.531 1893 1893 W System.err: at adaptive.cogid.Main.onCreate(Main.java:80)
    10-20 23:13:02.531 1893 1893 W System.err: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    10-20 23:13:02.531 1893 1893 W System.err: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2701)
    10-20 23:13:02.531 1893 1893 W System.err: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2753)
    10-20 23:13:02.531 1893 1893 W System.err: at android.app.ActivityThread.access$2500(ActivityThread.java:129)
    10-20 23:13:02.531 1893 1893 W System.err: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2107)
    10-20 23:13:02.531 1893 1893 W System.err: at android.os.Handler.dispatchMessage(Handler.java:99)
    10-20 23:13:02.531 1893 1893 W System.err: at android.os.Looper.loop(Looper.java:143)
    10-20 23:13:02.539 1893 1893 W System.err: at android.app.ActivityThread.main(ActivityThread.java:4701)
    10-20 23:13:02.539 1893 1893 W System.err: at java.lang.reflect.Method.invokeNative(Native Method)
    10-20 23:13:02.539 1893 1893 W System.err: at java.lang.reflect.Method.invoke(Method.java:521)
    10-20 23:13:02.539 1893 1893 W System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    10-20 23:13:02.539 1893 1893 W System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    10-20 23:13:02.539 1893 1893 W System.err: at dalvik.system.NativeStart.main(Native Method)
    10-20 23:13:02.539 1893 1893 W System.err: Caused by: java.io.IOException: Permission denied
    10-20 23:13:02.539 1893 1893 W System.err: at java.lang.ProcessManager.exec(Native Method)
    10-20 23:13:02.547 1893 1893 W System.err: at java.lang.ProcessManager.exec(ProcessManager.java:224)
    10-20 23:13:02.555 1893 1893 W System.err: ... 18 more
    10-20 23:13:02.586 1893 1893 W System.err: java.io.IOException: Error running exec(). Command: [which, sqlite3] Working Directory: null Environment: null

    ReplyDelete
  2. Chan, open up a terminal emulator and verify that you have the which command available in a standard shell.

    ReplyDelete
  3. can't change ID for galaxy Beam 18520.
    error writing database on the first click (changeID) then on 2nd click it just rebooted.

    ReplyDelete
  4. The error writing the database on the first click is due to SU permissions not being granted at the time of writing the database. This is fixed in version 1.5 by instructing SU to always grant permission for this app. After the reboot, go back into the Android ID Changer program, it should show you that the ID has been changed. A reboot is required for the system to use the new ID and the Android ID displayed is the ID the OS is using. Please comment back if this helps.

    ReplyDelete
  5. "error verifying resources", Rooted Galaxy S with official 2.2 ROM. :(

    ReplyDelete
  6. Any chance to post a download link? The application currently cannot be found in the Market.

    ReplyDelete
  7. error writing the database tip didn't help. After reboot still the same id. Android ID Changer has su according superuser

    ReplyDelete
  8. error writing the database tip didn't help. After reboot still the same id. Android ID Changer has su rights according superuser. Busybox installed.
    Froyo PDA: I9000XXJPO, Phone: I9000XXJPP, CSC: I9000DBTJP3

    ReplyDelete
  9. Im sorta an android noob
    It says error verifying something, on htc desire , not rooted

    ReplyDelete
  10. I have the same problem as Rickg...will just reboot without changing ID. I've reinstalled busybox and tried multiple times...

    ReplyDelete
  11. this app works flawlessly. Got a rooted DROID running Pete's Bugless Beast

    ReplyDelete
  12. Doesn't Work. :-( HTC Desire. It doesn't even reboot. I noticed the file it writes in the SD card when saving is udpate.id instead of update.id.

    ReplyDelete
  13. Any chance to post a download link? The application currently cannot be found in the Market.

    -

    cant find it either plz post donwload link

    ReplyDelete
  14. Same situation as Justin and Rickg.
    Allows to change, reboots phone, same ID after reboot.

    ReplyDelete
  15. After boot its the same ID is there something I'm missing???

    ReplyDelete
  16. Afternoon,
    Currently having an issue with the Android Id Changer. I've got the current Busy box installed, I'm fully rooted and using an mb300 Backflip with 2.1-update1.
    I will input an ID, the proper 16 hex, and click Change ID, the Phone will shutoff as if rebooting, but will not turn back on. I need to manually press the power key to turn it back on. I will then go into Android Id and check the id, which is still the same as before I tried switching. I also noticed that the saved file that's created is not called update.id but rather udpate.id. Is there a reason for this? If you can either post or shoot me an email I would be very appreciative. =) Thank You!

    ReplyDelete
  17. market wont let me d/l. says not compatible with my device . i have Motorola atrix unlocked and rooted and have all the requirements in ur list. help me please

    ReplyDelete
  18. Need to update so it works with Droid X

    ReplyDelete