I have had my G1 for like 2 weeks now and was already getting bored of the stock icons. So, I decided to dig into the filesystem to find the possibilities of a shiny new skin and after several days, I finally made some progress. Without further ado, I present the first ever skinned G1!
Skinning G1 is a tricky process and your G1 needs to be jailbroken.
The icons are stored in /system/framework/framework-res.apk. Every stock apk is signed by Google and contains three signature files, MANIFEST.MF, CERT.SF, CERT.RSA. The first two files keep a check on what files are inside the apk along with their SHA1. The third file is sort of a result of the first two. In simple words, if you change even a bit of info inside the apk or any of the three files, the whole package become useless. So how do we change the icons ?
The checksum calculated inside those three files is based on the icon's name and size, which means
any file with same name and exact size could be slid in to replace the stock one. cool eh ! Now, as much as we would love to compile our own skin apk, that is not yet possible because at bootup, the signature of the apk is checked, if it doesn't match with Google's, you are left staring at the droid robot, so we don't do that.
Instead, we slide our images into the stock apk without setting off any alarms. Changing the file extension to .jar works fine, should work with .zip too, haven't tried it out though. If you have used WinRAR, you would know its a mere right-click to add files into a .jar/.zip.
But still, the file size of the new icon needs to be matched that of the old icon. This is the tricky part and requires a lot of patience. This can be much better explained with a complete tutorial which i'll put up alongwith the apk of the above screenshot soon.
As of now, i've done just the status bar, but this is just the beginning, stick around and have fun. We have just started a revolution and you don't wanna miss it.
pf edit: We've set up a
skinning forum as well for releases/questions.