Porting Themes..

Discussion in 'Droid 2 Roms' started by pkbest, Nov 29, 2010.

  1. pkbest
    Offline

    pkbest New Member

    Joined:
    Nov 22, 2010
    Messages:
    200
    Likes Received:
    0
    Trophy Points:
    0
    Location:
    Dayton, OH
    Other than the obvious of getting permission from the original artist...


    What does it take to "port" a theme. I guess I am having trouble understanding why a theme made for Droid 1, does not work on Droid 2 if both are developed under Android OS. (e.g. Droid Incredible Theme for Droid 2).

    LIke in linux for example, I know as long as the GTK Version of say...your distro's kernel is 2.2.x and the GTK version of the Metacity theme is 2.2.X they work. Is this same philosophy with Android?

    If this is the case, can someone help me find/port the theme from the Incredible (HTC Sense Theme) to Droid 2? Or atleast point me in right direction. I just got the tools apktool, apkmanager, and i already had 7zip.. not sure what else I need. I know XML if that helps...
  2. phrozen087
    Offline

    phrozen087 New Member

    Joined:
    Aug 30, 2010
    Messages:
    43
    Likes Received:
    0
    Trophy Points:
    0
    I'm definitely not an expert at this but I have messed around with my Fission rom enough on my own to give you an idea about how to start and where to go. If anyone has more detailed info about theming I'd be interested to here it also! From what I can see there are 2 things you can theme: individual apks and the system icons, bar, etc... Actually you probably won't need much other than photoshop and winrar which is all i used (7-zip should work fine also if you don't have winrar). I just kinda figured this out by unzipping a bunch of other themes and looking at changes they made and what was inside, etc...

    Here are 2 simple examples of stuff like what I was mucking around with.

    Note: ALWAYS MAKE SURE YOU ARE THEMING THE APKS FROM WHATEVER BUILD YOU ARE USING OR YOU WILL PROBABLY FLASH AN INCOMBATIBLE FILE SOMEWHERE AND END UP IN A BOOTLOOP!!!!

    Theming an individual APK:
    (Here is an example using the Music.apk found in android.)

    1) Open winrar
    2) Drag the APK you want to edit into the window or simply open it, should look like a zipped folder with folders inside
    3) Navigate to "\res\drawable-hdpi\" inside the apk and you should see a bunch of images
    4) If you want to look at the ones inside just drag them out
    5) You can edit these outside in something like paintshop or just grab already themed files from somewhere else
    6) Simply drag them back into winrar (or 7z) and let it recompile.
    7) If you do it this way then you don't have to resign the apk, at least i didn't ever.

    Theming the system:
    (I've only done this using my fission rom but it is probably universally similar, someone correct me if I'm wrong though.)

    Notes: I actually looked through some already existing themes to get an idea. I ended up starting with their simple theme but really it seems like you just need a .zip that you can apply in ClockworkMod that is signed and you put what you want in it. You can also make a MetaMorph file if you want to try that. That simply involves packaging the files in a normal zip and adding the XML and THM to the zip and loading it that way. The MM file doesn't need to be signed, but if you use another theme as your "base" you start with a signed package to begin with so you shouldn't need to worry about it. I was doing a quick battery mod but my experience should explain it somewhat.

    1) So I went and grabbed a theme, in this case it was the "D2_Theme_Fission_2.2.2_Bat_OEM.zip".
    2) I opened this up in winrar
    3) Go into "\system\framework\" (no quotes) and find the "framework-res.apk" in this folder and extract it out (just drag it out)
    4) Open this up in winrar again
    5) The process is almost identical to before except that there are a ton of files in the "\res\" folder. Also "\drawable-hdpi" has a ton of stuff as well. Basically just replace whatever you want wherever you want.
    6) When you are done with this apk just drag it back into the update.zip file (in my case D2_Theme_Fission_2.2.2_Bat_OEM.zip) and then load the file onto your sd card.

    If you are theming apks and the framework-res.apk you will probably see that most themes have folders containing both things. Just make sure all the files you want to theme are in there correctly and then load it up in ClockworkMod and apply your updated .zip file. It should then theme anything you changed.

    As I mentioned before, this may not be the best way or even entirely correct but it seemed to get the job done for me so I hope this at least helps you get off on the right foot.


    EDIT: I guess answering this question could have helped :)
    Basically the "theming" seems to be just modifying the individual apks and stuff. Each ROM using different apks and has different changes. They are all different. A theme must therefore be created from the unique files that exist from a specific rom. So basically a theme made by editing the files found inside say the Fission Droid 2 Rom would not work in the Unleashed Rom or the Stock rom. You also have to consider some themes are made for different sized phone screens which could be another problem. I could likely simply take the pictures from one rom and embed them into the apks and framework of the other rom and that would work fine (assuming no xml editing is needed) but you can't simply copy a theme as all the internals are different. Because of all the tweaks to a rom if anything gets copied incorrectly or a file gets changed from how it was edited for that rom you end up in a bootloop. Just as disclaimer, I haven't been messing with this stuff more than a few days but from what I can understand about how everything works this seems to be why themes are uniquely customized to a specific rom and/or phone build.
    Last edited: Nov 30, 2010
  3. pkbest
    Offline

    pkbest New Member

    Joined:
    Nov 22, 2010
    Messages:
    200
    Likes Received:
    0
    Trophy Points:
    0
    Location:
    Dayton, OH
    Thank you for the reply.. this helps definitely. Like I said, no experience in Android Dev. so looking for a start in it. All I'm honestly trying to do is port a theme. However, I am wondering now... what that involves. Like, is there certain APK's that belong with D2 that don't belong with say.. a droid incredible that I have to remove. Or.. for example.. a theme that is made for 2.1.1 (made the number up i think, but w/e) and this squidly rom im using is 2.3.2 . I'm wondering what I have to compile/change to make it compatible.. does this make sense?