[myTouch 3G, Magic Android Development] androidcustomrom:
How to create your own ROM update.zip for the T-Mobile MyTouch 3G

Things you will need to perform this:

Java SE Dev Kit from Sun. java.sun.com

May need Cygwin with zlib0 package, from cygwin.com

This will give you Android 1.6 with all the Google applications, Root access.

I never found one place where all this information is all together, so that is why I compiled this together.

Now anyone can do this themselves.

Thanks to all the hard work others have done before this.

1.

First Root your phone and install a new Recovery image, either Amon Ra or Cyanogens Recovery image.

Instructions for one-click root: http://theunlockr.com/2009/08/22/how-to-root-the-mytouch-3g-or-g1-in-one-click/

2.

Download the Android 1.6 System image from

http://developer.htc.com/google-io-device.html

extract the contents of signed-google_ion-img-14721.zip.

3.

You now need to extract the contents of system.img using a tool called unyaffs. The source code is here:

http://code.google.com/p/unyaffs/downloads/list

Or download a prebuilt win32 version here.

http://jiggawatt.org/badc0de/android/index.html

Note you may also need cygwin1.dll and cygz.dll (zlib0 package). Found at cygwin.com

Of course if you already have Cygwin installed with the GCC packages, you can just compile it yourself. Then also

if you comment out the line 67 to "// symlink(oh->alias, full_path_name);"

then it will not create the copies of the symbolic link file, and you will not have to worry about deleting duplicate

symbolic link files later.

Now in the directory where system.img exists, create a new directory called "system"

go into the "system" directory.

type the following command:

unyaffs ..\system.img

That should extract all the files from the system.img file into the system directory.

4.

Now we just need to clean up some items. Since the system.img is a linux file system, it has symbolic

links built into it, but when we extracted it, it just created duplicate files, if you used the prebuilt unyaffs.exe.

So we can just delete the duplicates and have a script recreate the symlink on install.

So we need to delete some extra files from the system\bin directory.

Run the attached DeleteExtras.bat file from the same directory where system.img is in.

If you notice, all the files it deletes are 28 byte files, and if you open them in notepad only contain:

"!<symlink>toolbox..."

And we will remake the symbolic link when it is installed.

5.

Now from the directory where the system.img is, enter the following commands

mkdir META-INF

mkdir META-INF\com

mkdir META-INF\com\google

mkdir META-INF\com\google\android

Now copy the included file "update-script.txt" into the "META-INF\com\google\android" directory

and RENAME it to just "update-script".

This update-script gets run to recreate the symbolic links.

Not sure if these two are needed but they are in some custom ROMs here:

Copy the two files "fix_permissions" and "flash_image" to the "system\bin" directory.

6.

-- Optional --

These add root and Superuser access to the ROM, plus the Terminal Emulator application.

Copy the file "su" from Cyanogen's rom to the folder "system\bin"

Copy the file "Superuser.apk" to the folder "system\app"

Copy the file "Term.apk" to the folder "system\app"

You can also replace the "system\etc\apns-conf.xml" with a more complete one from here:

http://xdaforums.com/showthread.php?t=547718

or here

http://docs.google.com/Doc?docid=0AZNbAmKkmakoZGZxZHNwMnpfMjJkaHg3ejN3eg&hl=en

Turn data roaming off by default by editing line in the build.prop file:

ro.com.android.dataroaming=false

Also to fix the Market program to show "Protected" applications change the ro.build.fingerprint line to the following:

ro.build.fingerprint=tmobile/opal/sapphire/sapphire:1.5/COC10/150449:user/ota-rel-keys,release-keys

Only phones with a fingerprint of a "released" device can access some market applications.

--------------

7.

Now we just need to create a ZIP file for the final ROM

Zip up the following file and two folders:

boot.img

META-INF

system

8.

Now sign the zip file.

See here how to sign a ZIP file for flashing it.

http://androidforums.com/developer-101/8665-how-signing-roms.html

9.

Copy it to your SD card, boot into recovery, wipe, apply the update, Reboot.

You are now running Android 1.6!