Related
Heres a script that ports your themes from firmware to firmware, rom to rom.
How it works:
- Looks through app/framework folder for apks that exist in new/old rom
- Then extracts pngs from those apks
- Then deletes mismatching pngs
- Repacks old themes pngs into new rom
- Done
Note: Benefit of this method is that you could literally port a donut theme to a froyo rom because it only copies images that exist in the new rom, and none that don't.
Betas are spread out through-out the thread (they provide a lot more features)
Instructions:
- Download zip
- Extract zip
- Place old framework/app in old folder (Rom that has the theme)
- Place new framework/app in new folder (Rom u want to port it to)
- Run batch script
- The new folder is now themed
Requirements: Windows environment
Improvements:
- Dependant on demand for this script.
NOTE: For now u can only transfer themes from 2.0+ to 2.0+ roms and pre 2.0 to pre 2.0 roms. Big reason is because of the mdpi folders whereas before there was only one. Will implement it as soon as possible.
Beta 3 Download - http://www.multiupload.com/62I7MXV620
amazing concept... and most likely awesome work like your others.. keep them coming!
definitely gonna give this a try .....
thanks
has anyone actually tried this?
I would try it myself but i don't have the time atm.
Had a minor hiccup in my script , fixed/uploaded.
UltraLinx said:
has anyone actually tried this?
I would try it myself but i don't have the time atm.
Click to expand...
Click to collapse
I just tested this script by doing the following :
1. adb pulled /system/app and /system/framework from my phone into the old folder
2. place cm6 into new folder
3. Ran script
4. Pushed files to phone and it works perfectly
Sorry. I'm relatively new to this, so how do I get the framework/app?
excellentnuke said:
Sorry. I'm relatively new to this, so how do I get the framework/app?
Click to expand...
Click to collapse
Well u can either extract app/framework from ur theme's update.zip or pull it from ur phone by doing
adb pull /system/app <drag app folder from theme-porter folder here>
adb pull /system/framework <drag framework folder from theme-porter folder here>
HOLY SHIZEN!
now if u can possibly implement the transformation of HDPI to MDPI id pay u at least 20-30 bucks for that..
in the interim..thank u very much for your contribution!
SoCalSpecialist said:
HOLY SHIZEN!
now if u can possibly implement the transformation of HDPI to MDPI id pay u at least 20-30 bucks for that..
in the interim..thank u very much for your contribution!
Click to expand...
Click to collapse
Hmm interesting idea. Certainly possible, however not all images are to be resized equally, some more than others. I'll look into it, can't promise though
Edit: Very hard to do, basically u'll have to have a list of image filenames where each must be noted as to what resolution they must be on a mdpi device.
im sort of new to this. i have a question.
will this work if im using an update.zip theme in the old folder
and a clean rom in the new folder?
ex.
i wanna port the Elegance Theme for SuperD for Dream
to
SuperE for Dream.
and another question.
if this is how it will work
can i then create an update.zip out of what comes from the new folder?
avisions said:
im sort of new to this. i have a question.
will this work if im using an update.zip theme in the old folder
and a clean rom in the new folder?
ex.
i wanna port the Elegance Theme for SuperD for Dream
to
SuperE for Dream.
and another question.
if this is how it will work
can i then create an update.zip out of what comes from the new folder?
Click to expand...
Click to collapse
As i said i'll improve it if ppl find this script to be useful, i'll base it on # of downloads lol
For now u'll have to extract the framework and app folder from elegance theme for dream into old folder and extract framework and app folder from super e to new folder. Then run script, once done ur new folder's stuff will be themed.
do i have to then push the files from the new folder over or can i use your create update.zip script and flash the new themed apps and framework?
avisions said:
do i have to then push the files from the new folder over or can i use your create update.zip script and flash the new themed apps and framework?
Click to expand...
Click to collapse
Yes u can do that or u can just push the files. Yea an update to this will prolly have an option to make the new folder into an update.zip.
thanks man. the combinations of these 2 scripts will help me to make a rom how i want it.
great work. keep it up
avisions said:
thanks man. the combinations of these 2 scripts will help me to make a rom how i want it.
great work. keep it up
Click to expand...
Click to collapse
Cool, post back on ur results from using this script, users tend to be dependant on the comments of other users
Daneshm90 said:
Hmm interesting idea. Certainly possible, however not all images are to be resized equally, some more than others. I'll look into it, can't promise though
Edit: Very hard to do, basically u'll have to have a list of image filenames where each must be noted as to what resolution they must be on a mdpi device.
Click to expand...
Click to collapse
i figured as much..thank u tho for taking the time to look into it.
i appreciate the efforts..in the meantime, ive got a theme to find and give ur app a go!
Love this applications it is so usefull used it all day,, Thanks
Very usefull and simple to use tool !
Thank you man
XxKOLOHExX said:
Love this applications it is so usefull used it all day,, Thanks
Click to expand...
Click to collapse
ondris said:
Very usefull and simple to use tool !
Thank you man
Click to expand...
Click to collapse
Ok so the # of downloads have reached my defintion of *in demand*
So these are the changes im thinkin of bringing, feel free to make suggestions.
- Make the "new folder" into an update.zip once the script has run through its paces
- Have an option to pull app/framework directly from ur phone
Those are the only 2 i can see as being useful, if anymore let me know.
crossing platforms doesnt work.
tried to move the celadon theme for CM 5.0.7 (which is android 2.1)
to SuperD 1.11 (which is android 1.6)
i also tried transfering Elegance for SuperD 1.11
to SuperE 1.0.3
the fonts transfered. nothing else did.
but i did successfully transfer the celadon theme for CM 5.0.7
to SuperE 1.0.3
I've decided to go ahead and make a tool mostly for themers to make their life of porting the endless amounts of pictures from rom to rom. Now, this doesn't mean users cant use this as well, but PLEASE make a nandroid before hand. It's in beta so don't expect it to be perfect. I have an auto updater with it as well so ill be updating it that way.
*** i had no idea there was a working theme porter on here untill after i made this. I tried i think 1.3 and it failed so i decided to make my own. I just came across the 1.0 posted last month.
WILL NOT PORT GAPPS IF ITS NOT IN THE STOCK ROM.
Im currently working on a fix for that, if you want gapps, throw them in the stock rom your self and then port it.
Notes:
This has only been tested on Motorola Droid.
Instructions:
1. Make a nandroid. I don't want to hear whining if it doesn't work and you lose everything. I'm also not responsible if this bricks your phone. Even if it does, you have recovery, then you have SBF.
2. Download, DO NOT simply just run if your using IE (Who uses IE anymore...?)
3. Select the theme as "Select Theme".
4. Select the STOCK rom you are running as "Select Stock Rom".
5. Hit port and sit back and watch.
Limitations:
Only supports Update.zip formats, for now. i may support Meta Morphs in the future.
Only moves .pngs to new rom, Meaning if the theme has custom .xmls in it, it WONT port.
Change log:
Code:
Version: 1.0:
Ability to port themes from one rom to another.
Progress bars on extracting / moving (Title of console window)
Output log on screen (Not great, will work on.)
Version 1.1:
Added Auto Updater.
Added some crash fixes.
Version 1.2:
Fixed bug where if theme has no themed /system/app's it would crash.
Version 1.5 (Initial Release):
Fixed Progress bar on extracting / moving to archive.
Implemented Suggestion/bug reporting system.
Some general bug fixes.
Added audio on port completion.
Version 1.5.1.0
Added options form.
-Change colors of output console.
-Save last used .zips (toggle)
-Play sound on port completion (toggle)
-Fade out on exit (toggle)
Download:
TheDeathly said:
Only moves .jpgs to new rom, Meaning if the theme has custom .xmls in it, it WONT port.
Click to expand...
Click to collapse
Hmm so it will port the default wallpaper xD
Did you heard about MetaMorph? From your description I think it does exactly the same and more and it's some kind of standard in theming world.
Brut.all said:
Did you heard about MetaMorph? From your description I think it does exactly the same and more and it's some kind of standard in theming world.
Click to expand...
Click to collapse
I've heard of people having lots of issues with metamorph over a standard update.zip, and at least in the moto droid community we use update.zip's over metamorph's especially since metamorph was buggy with Froyo for the longest time, I do not know if it still is or not.
C0mpu13rFr34k said:
Hmm so it will port the default wallpaper xD
Click to expand...
Click to collapse
Oops, i meant it'll only port over .pngs. sorry for the typo lol
Hey cool, haven't tried it but does it work for porting eclair/froyo themes to cupcake/donut roms ? and vice-versa ? A lot has changed since the firmwares (including some .9 being changed to .png and vice versa). Checkout the last beta i posted, it had support for that, u cud prolly use most of the schemes.
@Brut, correct this is a lot like metamorph but metamorph is firmware dependant whereas this isnt/shudnt be. For eg, title_bar in pre eclair/froyo roms was a .png and now is a .9 png. Metamorph just inserts images and hence would cause problems. This only brings over files if they match and in some cases like my script renames them to match the firmware's naming convention (eg, pre-eclair/froyo didnt have mdpi,hdpi, just plain drawable). Hope that clears the air.
Also another thing that makes these have the upperhand to metamorph is the capability to take a dump of ur phone, put the dump of a rom u want to try and BAM ur theme is ported to that rom. Whereas with metamorph, id have to go out and look for the individual morphs that helped me accomplish the look/feel of my phone.
Daneshm90 said:
Hey cool, haven't tried it but does it work for porting eclair/froyo themes to cupcake/donut roms ? and vice-versa ? A lot has changed since the firmwares (including some .9 being changed to .png and vice versa). Checkout the last beta i posted, it had support for that, u cud prolly use most of the schemes.
@Brut, correct this is a lot like metamorph but metamorph is firmware dependant whereas this isnt/shudnt be. For eg, title_bar in pre eclair/froyo roms was a .png and now is a .9 png. Metamorph just inserts images and hence would cause problems. This only brings over files if they match and in some cases like my script renames them to match the firmware's naming convention (eg, pre-eclair/froyo didnt have mdpi,hdpi, just plain drawable). Hope that clears the air.
Also another thing that makes these have the upperhand to metamorph is the capability to take a dump of ur phone, put the dump of a rom u want to try and BAM ur theme is ported to that rom. Whereas with metamorph, id have to go out and look for the individual morphs that helped me accomplish the look/feel of my phone.
Click to expand...
Click to collapse
Hey, i actually have not had a chance to look at donut/eclair themes. My first Android phone was the moto droid so ive never done anything with a donut rom. i will make sure to take a look into that though. Ill go take a look at your latest beta now and see what i can come up with. thanks
Edit: i just took a look at your script and very nice work i have to say also, i may in the future decide to add support to 1.6 and lower to 2.0 +. it'll port most of it over as is except for the .9 and everything that does get ported over wont be resized properly as it does in yours. This should port eclair to froyo fine. ive actually ported over a mdpi to hdpi just fine with this so im assuming it works fine. in anycase thanks for the heads up.
Daneshm90 said:
@Brut, correct this is a lot like metamorph but metamorph is firmware dependant whereas this isnt/shudnt be. For eg, title_bar in pre eclair/froyo roms was a .png and now is a .9 png. Metamorph just inserts images and hence would cause problems. This only brings over files if they match and in some cases like my script renames them to match the firmware's naming convention (eg, pre-eclair/froyo didnt have mdpi,hdpi, just plain drawable). Hope that clears the air.
Click to expand...
Click to collapse
Ahh, ok, thanks for explanation.
But I don't understand, how such tool would work so it'll be flexible and reliable. I mean... it would need to guess what to do. Human could look at files and say: "Ohh, this file was moved here, so I should rename it to xxx.", but what about the computer? How it will know how to port themes to other platforms? Of course you could implement hooks for specific situations as porting between eclair and froyo. But what about custom frameworks from manufacturers? What about changes made by themers? I could add, rename, remove anything I want, so how this tool will know, what I did and how to port my changes to other systems?
Maybe I don't understand something.
Correct its definately not perfect and apks modified more than theming ie smali\xml edit will have to be left out.
Also user must select which firmware theme is and which rom is.
Still its a step up from metamorph imho. In the end the user must recognize a products limitation and react accordingly.
Sent from my GT-I9000M using XDA App
help please.. i get this error....
Error: Could not find file 'C:\Users\Jason\AppData\Local\Temp\Rar$EX00.444\port\new\META-INF'.
Whats next
What do I need to do when finished it says my ZIP file is the final folder but it is just a folder not ZIPPED please help this is too cool to not use.
Edubyah said:
What do I need to do when finished it says my ZIP file is the final folder but it is just a folder not ZIPPED please help this is too cool to not use.
Click to expand...
Click to collapse
Just go inside of the final folder and zip all the contents with a winzip, and make sure it zips as a zip file and not a zipx. after you're done you can use a program to sign your zip like RegawMOD Zip Signer v1.0.
The supplied zip file is not flashable for some reason - have had to manually add them to a ROM.
Going to test this out tomorrow. Any success stories?
I'm giving this a run, but I'm trying to port an hdpi theme to mdpi... will let you know the results. All in all, this is really nice work!!!
Unfortunately for me, the theme I wanted to port is giving me issues because it's a UI rather than a theme. I was trying to get DarkEdge on my Eris. I did want to say though that every thing worked beautifully and this is really an incredible resource for the android community.
From me to you on Cyanogentazz [insert latest version here] Eris
This works great now that it get that instant update! Thanks for the work!
READ THIS FIRST:
The original post is here alot of questions have been answered, here browse around there first.
UPDATE 9 PATCH TWEAKS:
This new version will port your favorite hdpi theme to an mdpi rom... yes 9 patch resizing. I want to be the first to say this is not 100% and it probably never will be, and over the next couple of days we can discuss this.
What it will do is resize every 9 patch in a rom and move it over to the mdpi theme. Yes this is the same method I used for all my hdpi ports.
What it might not get is the 9 patching data correctly, which means that it might get stretched incorrectly, most times you won't noticed but others it will be obvious. This will happen anywhere from 1% to 30% of the 9 patch pngs in a port, but all you will need to do is redraw them using the 9 patch draw tool in the adb folder.
My next version will have this included along with some instructions, along with font and boot animation porting.
Please respect other peoples work. If you port a theme using this and repost it don't just link back to the op... mention the author and give them props.
Also want to say I spent a looooong time trying to figure this out, and I tried many different ways, and I'm open to others suggestion on making this better
Oh and don't forget to to install Image Magick, its included and the HDPI to MDPI will not work without this.
This tool will take your favorite theme and inject it into your favorite rom... provided they are compatible with each other (might work if they aren't but thats for later). I did this cause alot of themers and people who like themes are always waiting for the nightly theme to get applied, well this will do it for you.
You can think of this as almost a theme installer.
INSTRUCTIONS by Norm12:
1. Download and extract.
1.5 Install image magick from the image magick folder... just run the installer and its ready to go. This is important the hdpi to mdpi will not work without it.
2. Copy both the theme and rom into the 1 click folder---the extracted one.
3. Open the 1-click folder and you should see your theme, rom, lib folder, and the injector script.
4. Doubleclick on the injector script----if you did everything correct it will open a cmd prompt
5. Enter the names of the rom and theme when asked...I did use the exact names and added ".zip" to the end.
5.5 Answer y if this is an hdpi to mdpi port otherwise n.
6. Hit enter and wait. When it is really done it will auto-close the cmd prompt. This may take 15 minutes.
7. Your newly themed rom will be in the same folder as the unthemed rom and theme zips. If it worked it should be slightly larger than the original rom. Enjoy
!!!IMPORTANT... BECAUSE 7ZIP SHOWS OUTPUT IGNORE THE "EVERYTHING IS OK" LET THE SCRIPT FINISH WHEN ITS DONE IT WILL CLOSE ITSELF IF YOU DOUBLE CLICKED IT OR IT WILL RETURN TO COMMAND PROMPT!!!
Ignore any errors your seeing while it runs, this is normal like before let it run completely through till it closes out.
Run time could be up too 20 minutes (60 with HDPI to MDPI) on a big theme/rom, but faster that waiting!
You must now install Image Magick if you would like to use the hdpi to mdpi resizing!
ISSUES:
There also seems to be an issue with the gallery3d.apk and the differences in the mdpi and hdpi version. For now remove this from the theme your porting otherwise it won't come out right.
Update 4:
HDPI to MDPI porting!!!!!
Update 3:
Removed verbose but added optopng verbose just let it run. It works but you have to let it finish, the cmd window will close it self.
Update 2:
Added verbose output so that you guys will know to close it out before its done...even tho 7zip says everything is ok... just let it do its thing.
Update 1:
Had the optimization stuff commented out... sorry its back on.
Script will clean up now after it finishes.
JAVA CLASSPATH:
Its needed for the signer to work properly goto a command prompt and type in java -version. if you get and error back java is not in your classpath and needs to be.
just right click on my computer, then goto properties, then click on the advanced tab, at the bottom click on the "Environment Variable" button.
Now click on the new button... the one on the bottom for system variable and put in this
variable name: JAVA_HOME
variable value: C:\<path-to-where-java-is>
Now click ok and select the path system variable and then click edit. IMPORTANT only append to the end of the value this... ;%JAVA_HOME%\bin
then click ok and ok out of all those windows and open a new command prompt and type java -version you should get no error if you do your path to java was wrong follow the steps above again and make sure the path is correct.
WHAT THIS WON'T DO:
It won't port over xml or smali edits.
It wont port over what it can't find... so if your theme has a facebook widget or something but the rom does not then it will ignore that.
It will not port over fonts or anything other than the framework-res.apk and all the themes apks in the system/app folder. If this is popular Maybe other stuff can get included.
WHAT THIS WILL DO:
Shrink a 9 patch from HDPI size to MDPI size.
Push over all the themes pngs from the apk with it to the roms matching apk.
Optimize every png in the theme you are porting over.
Zip align all the apks in your newly themed rom.
Sign the newly themed rom.
Give me feed back.
I might make this easier and make the injector steal the apks for injection right from your phone and then inject and make a flashable to put right back on... tell me what you think.
New HDPI to MDPI version with 9 patch porting download
reserved 10char..
Nice work
Sent from my HTC Desire using XDA App
TheRedDrake said:
Nice work
Sent from my HTC Desire using XDA App
Click to expand...
Click to collapse
Thank you. hasn't caught on in this forum yet i guess.
I'll try this out now, this seems easier than the theme porter that's already on the forum.
Looks promising! I will try it out right now!
dl and try after work
will this work for porting themes to the HTC Tattoo?? does it rescale the theme to suite the phone?
vura said:
will this work for porting themes to the HTC Tattoo?? does it rescale the theme to suite the phone?
Click to expand...
Click to collapse
This will port any theme to any rom... provided they are compatible. So while you can go from a sense theme and inject it into a AOSP rom, it probably won't catch everything since it works off of matches. It also does not have any scaling included.
The biggest thing with this is that the theme and rom have to have a same file structure so all rom come and the have the system/app folder and the system/framework/framework-res.apk, this is what the injector looks for. So honestly you could build a theme from a buncha different apks from other themes it will inject that into your rom and give you back a flashable zip. So a good theme structure example would be Gommarah's Black Mod in the HERO CDMA forum.
I do however have a way to port HDPI theme to and MDPI ROM but its not 100%... if I get enough request I'll put it in its just the process I use to accomplish this is very complicated and requires some extra software, its also adds a significant overhead to the script run time (and 3x longer to run) It works in the since the it will shrink the HDPI 9patch png but the 9 patch data is wrong about 10-20% of the time. This won't cause the roms to force close but will just make some of the 9patch pngs to stretch wrong and would require a simple edit in the 9patch draw to fix it.
+1 for hdpi to mdpi scaling!
Any others want the hdpi to mdpi scaling? I've considered releasing it.
Sent from my PC36100 using XDA App
Just curious if I did this right as I am still fairly new to this whole scene and this whole process seemed to work way to easy. But basically I got both the rom and theme converted and then signed both zips. Does that mean that I can now successfully flash the new theme? Thanks in advance!
theu2621 said:
Just curious if I did this right as I am still fairly new to this whole scene and this whole process seemed to work way to easy. But basically I got both the rom and theme converted and then signed both zips. Does that mean that I can now successfully flash the new theme? Thanks in advance!
Click to expand...
Click to collapse
There is no need to sign anything, the injector will sign the final output zip. Take your theme zip and your rom zip and place it in the folder next to the script. Then just run the script when its finished you will get a a new zip called themed-<roms-name>.zip.... this is ready to flash (optoed, align and signed).
ASimmons said:
Any others want the hdpi to mdpi scaling? I've considered releasing it.
Sent from my PC36100 using XDA App
Click to expand...
Click to collapse
Can I vote multiple times?
Ill try and get it ready for this weekend and see what you think.
Sent from my PC36100 using XDA App
First of all,great software worked as a charm...
I subscribe to the resizing,all the best themes are for HDPI...would make this the best theming tool out there for android
thanks that did it!
what if the rom needs has a seperate gapps.zip with it? thanks!
theu2621 said:
what if the rom needs has a seperate gapps.zip with it? thanks!
Click to expand...
Click to collapse
Just put the gapps system/app files into your ROM's system/app files. Then inject your theme, the tool does the rest
thanks again for the help! yall really helped, and rather quickly too!
This is a gingerbread framework for froyo to reproduce -work in Fresh Froyo and CM 6, took it from krispy.
The different from froyo is the animation after sliding the unlock screen and the pop up notification.
I have try it, and this is nice just for refreshing our froyo before the source is come out.
This is not an update package.
How to apply it ?
First post is intend for releaser, but i'll give you an update. This update is the one that installed on my vogue but not include the fonts. Only for Fresh Froyo based off -ie incubus/kyle build (i'm never make a theme for CM )
How to make it by yourself ?
simply open your framework ( /system/framework/framework-res.apk ) with winrar or 7zip ( dont extract it ).
Then extract my 1st attachment on 1st post, add it to your framework via winrar or 7zip.
Remember to follow the structure of its folder.
Don't worry! I already did make a theme for CM lol. I just pulled the animations and it looks great with CM.
lol, i know that CM guys is better than me. goodluck with the new rls.
Thank you guy. It looks very good
vellowax said:
First post is intend for releaser, but i'll give you an update. This update is the one that installed on my vogue but not include the fonts. Only for Fresh Froyo based off -ie incubus/kyle build (i'm never make a theme for CM )
How to make it by yourself ?
simply open your framework ( /system/framework/framework-res.apk ) with winrar or 7zip ( dont extract it ).
Then extract my 1st attachment on 1st post, add it to your framework via winrar or 7zip.
Remember to follow the structure of its folder.
Click to expand...
Click to collapse
vellowax said:
First post is intend for releaser, but i'll give you an update. This update is the one that installed on my vogue but not include the fonts. Only for Fresh Froyo based off -ie incubus/kyle build (i'm never make a theme for CM )
How to make it by yourself ?
simply open your framework ( /system/framework/framework-res.apk ) with winrar or 7zip ( dont extract it ).
Then extract my 1st attachment on 1st post, add it to your framework via winrar or 7zip.
Remember to follow the structure of its folder.
Click to expand...
Click to collapse
This update works quite well on any Froyo
Very cool animations and looks - Thanks!
I patched my framework and then reinstalled it via ADB shell (using root file manager caused a boot loop for some reason)
This theme looks fantastic, and I love the animations. My only problem is that I can no longer see my clock on the notification bar. I'm assuming it's because the numbers are still black therefor match the background.
Any way to change this? I can't make sense of the XML files, they don't look like anything I've ever seen before.
im guessing this doesnt work with odex'ed builds?
leoleotheiii said:
im guessing this doesnt work with odex'ed builds?
Click to expand...
Click to collapse
themes will never work on odex'd builds, its one of the few drawbacks to the odexing process
I came across these two great threads for the X10 and the Epic 4G and thought that it might be good for the fascinate themers/prospective themers to have a kind of community repository for theme help/links edits/how tos...while these 2 (and many others) are great resources for themes...i felt that actual edits/knowledge specifically for our phone would be a help.
i guess just based on the amount of themes i port i tend to get a ton of pms across xda/androidforums/irc on how to get started, what programs to use, how to make what edits, etc
i really dont know a whole lot relative to "real" themers from other phones and most of what i know i either picked up from reading endless links or begging for help.
whether this catches on and proves useful, or it goes down in flames like others things ive tried...i figured its worth a shot
rather than post endless links that dont always pertain directly to our phone, perhaps a good format would be me maintaining the op with small write ups of whatever edits/how tos and linking the the original. ill gradually start putting up the edits i know of that work with touchwiz and aosp (over the next few days)...but would GREATLY appreciate it if some smarter people would help out and post edits im mssing....also feel free to ask questions of how to edit what, where something is, and if i dont know/can't find out, then hopefully someone else can
Post away.........
***If anyone is interested in writing up brief tutorials on whatever or contribute links/edits, it would help out a lot***
Fascinate Contributors (directly or indirectly through posts or help along the way in some form):
dtachtd
thatdudebutch
sbrissen
andmer
retrokid223
adiliyo
oldmanjames
tiger4life
adrynalyne
s44
Credit to these threads/posts/links for much of the info
Want To Learn To Theme?
How to Theme Your Droid
Theme Help Tutorial
Installing the Android SDK (especially for adb) is mentioned below..however (imo): DO NOT BOTHER THINKING ABOUT GETTING INTO THEMING WITHOUT FIRST INSTALLING AND HAVING SOME BASIC UNDERSTANDING OF ADB. Far too many people that have issues doing theme related stuff (mostly irc) do not even have adb installed or know what it is. To me this is appalling! /end rant
Getting Started (much of this info grabbed from DtatchD http://androidforums.com/android-themes/174669-how-theme-apks.html)
What do I need (tools) to theme with?
-Umm obviously you need to be rooted
-Have the Android SDK installed
*If you've never done this before, follow Adrynalyne's awesome ADB Tutorial/Workshop
-Some form of editing software
*if you have photoshop, great...if you want a free (and imo awesome) program, then gimp is the way to go!
*another free alternative (some prefer to gimp) is paint.net
-Something akin to winzip
*or my preference (again free) 7-Zip
-Tools for editing/decompiling xml (also for cheating on .9's..but more on that later)
*look no further than either apktool, or apkmanager (automated version of apkt)
*i personally use notepad ++ to edit the decompiled xml files
-a program to *deal* with .9 images
*if you follow any how-to guide, its going to tell you that you have to patch the images in the Draw-9 Patch tool in the SDK, and then compile the images in eclipse. I'm going to tell you its a lot easier than that. Make sure you have apk(tool, manager) and then get the super awesome Draw9 Patch tool from xeudoxus here (might as well grab the full xultimate as well to deodex with)
-something to edit the service.jar with
*2 ways to go about this. one is installing smali/backsmali in your sdk (if you plan on removing things like the clock from the status bar, you need this as well) or another ridiculously awesome program Ohsaka's colorchanger program
-other REALLY important tools/programs
*Theme Kitchen (ever wonder where most of us get all those battery images/data + signal icons?)
*RGB Color Picker (one of many resources to get color codes, or you can do it in gimp from color picker too)
Drop by IRC Freenode: #fascinate-themers for help/discussion
*3.31.11*
Ok, I have the tools...now what???
I. Working with regular images in your framework-res (and in a TW Rom, tw-framework-res)
A. Where do I get a stock framework-res.apk and twframework-res.apk?
-a few options here...in an "ideal" scenario a dev or someone else has put out a stock but deodexed rom that you can just unzip and remove the frameworks/system apps/jars from...ie i generally grab mine out of something like jt1134's super clean roms or the equivalent. if a new os/update is out and that hasnt happened yet then move onto:
B. How do I deodex my framework so I can theme it?
have you downloaded xultimate
-I'm not going to further update this, as xultimate is kinda self explanatory and virtually all of our releases are predeodexed. 3.18.11
C. Where are most of the images in a theme located??? (touchwiz-based roms)
-For some stupid reason, Samsung thought it would be a good idea to split the framework-res.apk into 2 files: framework-res.apk and twframework-res.apk (in all fairness htc kinda does this with htc.resources.apk and now gingerbread does this with systemui.apk). Therefore there are *2* places that the framework images are generally located.
II. Working with the magical/infamous .9's
A. What is a .9 image exactly?
-Well heres google's explanation
-My less technical breakdown: basically .9 images are ones that are used either more than once in an .apk. If android had to define every single thing with a unique image, there would be a whole lot more going on in the framework and quite repetitive (it already is cluttered enough). By making an image that can be used in several places and stretched/resized in more than one way, it solves that issue.
1.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
2.
1=Image with defined "patches" telling where to stretch/resize
2=stock/compiled .9 image
In example 1 we see a png image that is "patched" (but not compiled) the black lines on the very outside of the frame are telling android where it is allowed to stretch the image to make it fit where its needed. General rule of the thumb is a line all along the bottom of the frame where the image is and all along the right side, with a single dot in the top middle and the middle left of the frame. This differs depending on the shape. If you are patching in draw 9, on the right side of the screen it will show you the possible shapes the image can be stretched based upon your patches.
***Most of the force close problems people report when first getting into theming are a direct result of not understanding .9s. They simply try and edit the compiled 9 and then replace it in the framework, not understanding that when you edit the image in gimp/ps/whatever it strips the patches from the image and make it a standard png image, which does not tell the os the information it needs.
B. Now that I know what .9s are (hopefully) how do i work with them?
-Well there are a few ways of going about this. For simplicity sake, I'm going to outline the method that I personally use. At some point if someone who does things the other way(s) wants to do a write up, I'll include that as an addendum.
1. Editing pre-existing pngs.
a. You've opened up your framework/apk and taken a look at the images in there...you see a bunch that you want to change the color of or edit in some manner but you release that many of them have the .9 honor. best way to deal with these suckers is to decompile the framework with the images.
-put the apk in apkmanager...decompile it (see my write up on using apkmanager..coming soon)...and go into projects...navigate to the folder with the images and you ll notice that they now have their 9 patches showing....
feel free to now edit these images accordingly while preserving the patches. however...depending on your image software changing transparency levels will change the black patches as well.
*example* here is an .9 image that was decompiled (notice the black patches already there). in this instance ive used the rectangle tool in gimp to select the area inside of the 9 patches to colorize/color change to fit my theme. this is one way to edit .9s without using draw9 patch.
C. Now that I've edited my .9 pngs (either cheating them or patching them) How Do I compile them?
1. The previously accepted method required using eclipse....but thanks to xeudoxus we have the awesome xUltimate Draw9Patch Compiler !
a. Download the program....and unpack it somewhere that you'll remember where it is (if you have adb/java in your PATH it doesn't have to be in the SDK-tools folder).
b. You will see examples (1, 2, and music) on how how to work with the program. Basically (after getting rid of the examples, but not the folders there in) put the .9s in one of the folders..(I use example1 generally, but it doesn't matter)..then run the program
3.12.11
Wait...So not everything I have to change in a theme is an image???
III. Editing the Framework(s) XML for text and progress bar *color* changes
*note, some edits can be made in multiple ways, ie both through service.jar and framework edits*
A. Why would I want to screw around with xml files at all? Looks complicated!
-I'll admit I put off working with the xml a lot longer than I should have when I got into this stuff. I think i released 2/3 themes without any edits whatsoever...and frankly theres no comparison between a theme that has been properly edited, and a theme that is just using the stock settings. This is especially true in touchwiz, as samsung went with that absolutely hideous aqua color as its secondary text.
B. How To Decompile Frameworks to Make Edits (APKM/APKTOOL). *3.12.11*
1. First things first: if you havent downloaded both APKMANAGER and APKTOOL...do so now, ya really need both....also, apktool 1.3.2 will not work right for everything (you will need it for working with gmail though if you theme that). Here is apktoo1 1.3.1 (replace apktool.jar in "other" folder in apkm).
-For apkmanager you can really unzip/set it up anywhere (I keep it on the desktop, and I have a 1.3.1 and 1.3.2 version set up)
-For apktool unzip "windows installer" and place apktool.jar in your /tools folder in the sdk
-by default an aosp framework-res.apk is installed in your directory...this is fine for *most* edits...however to work with certain apks that call on the system (contacts, dialer, etc)..this is a problem...so once everything is installed...we will want to then install our twframework-res.apk and framework-res.apk from a stock deodexed rom.
Code:
cd your tools folder
apktool if framework-res.apk
apktool if twframework-res.apk
***Tbc
IV. Ya know, I'd really like to have accurate battery and reboot options in my theme!
*tbc*
V. Working with the service.jar
A. Why would I want to mod the services.jar?
-Well theres a few reasons: remapping the status bar images and removing the status bar clock are big....and changing carrier/date/notifications title colors
B. How would i do it?
1. Well you can *cheat* and use our friend apkmanager *2.25.11*
a. rename the service.jar to service.apk
b. insert the renamed file into your "for modding" folder in apkmanager
c. open the script and select 9 to decompile
d. navigate to your "projects" folder and find the file to edit (again I use notepad ++)
e. when done, reopen the apkm script and compile with 11 (if any errors come up, you did something wrong)
-yes to system.apk, no to copy over
f. in your "for modding" folder you now have a file named "unsignedservice.apk"
g. rename this to service.jar and you are gtg
2. you can smali/backsmali it (my prefered method for dealing with classes.dex) *2.25.11*
***Thatdudebutch put together a zip with instructions for using smali (and the commands) as well as the most up to date backsmali/smali (download an unzip to see example..ill post another example below)
a. How to backsmali (decompile) the service.jar
*(i rename smali-1.2.6.jar and backsmali-1.2.6.jar to just smali.jar and backsmali.jar for simplicity in terminal use):
-use 7zip/winzip to extract the classes.dex file from the .jar...and extract it to the folder where smali/backsmali is (again i assume you would want to put it in your sdk-tools folder)
-cd your sdk-tools folder (or wherever smali/backsmali is located, but ideally thats where you put it) then:
Code:
java -Xmx512M -jar baksmali.jar -o classes/ classes.dex
-you now will have created a "classes" folder inside your sdk-tools (might as well leave your terminal open and set to your tools folder for the later steps)
-navigate inside this folder to whatever file you want to edit (i use notepad ++ to edit)
-once those edits and saved and done:
b. How to smali (compile)
Code:
java -Xmx512M -jar smali.jar -o classes.dex classes/
-you now have a new classes.dex file
-use 7zip to open up your service.jar and delete the old classes.dex in there and copy the new one in. close 7zip
-you now have a new service.jar....insert it into your theme and you *should* be good to go (assuming something didnt go wrong )
3. if you just want to change colors (not remove clock or anything..or for that matter change clock color on touchwiz {sammy fail on clock location}), then you can use the super awesome clockchanger program I mentioned above.
*info originally from this wonderful post on androidforums)
*2.22.11*
1. locate the services.jar you are planning to edit (pull with adb from your phone or rip out of a rom)
2. make a folder called framework and move services.jar into that folder
3. create a zip file of the framework folder and call it theme.zip
4. move your "theme.zip" file into your android sdk tools folder
5. open up a terminal (cmd/powershell/whatever)
6. navigate to your tools directory
6a.*example*
Code:
cd c:\android-sdk-windows\tools
7. what needs to be entered to edit the service.jar: (plus whatever you want to edit) (aarrggbb color code)
Code:
java -Xmx512M -jar colorChangev3.jar theme.zip
7a. example of changing date color, carrier color, notificatons, etc
Code:
java -Xmx512M -jar colorChangev3.jar theme.zip date=FF000000 ongoing=FF00000000 network=FF000000 latest=FF000000 none=FF000000 roam=FF000000 clear=FF000000
8. hit enter and let program run (see below)
9. you will now have a "theme-new.zip" file in your tools folder
10. use 7zip to extract the service.jar from it and and insert it into your theme
3.4.11
FAQs
Q: Is theming AOSP-based roms different than TW-based roms?
A: Significantly different in some aspects...The same in others. Obviously many images are going to have different names, and certain images/features are different. Biggest difference is one framework, versus two in TW. Many of the xml edits are different as well.
Q: Is there any etiquette to theming?
A. Umm, yeah there really is .
1. for porting themes: always credit the original creator of the theme in your op, preferably with a link to their post (or donate link if they have one). its cool if you check with the original themer ahead of time before porting, but generally speaking (unless specified by the themer) as long as you aren't claiming it as your own or they now own the device you have (and could possibly be bringing it over on their own) its cool. IMO, simply saying its a port isn't good enough, a link to the original or the website of the creator must be included.
-also credit everything else you don't do on your own (apps/mods) to the people responsible
-example of a themer who *doesn't want anyone working on/porting his themes*: http://www.droidforums.net/forum/928droid/69199-theme-928droid-black-glass-x-droid-x.html#post723150
2. for making your own themes: if you use anything at all from someone else, you have to credit it. and BE HONEST about it (big problem in the android world imo)
-example: if you are using 5 lockscreen mod/reboot options/accurate battery for an EB01 theme you plan to release, credit that to sbrissen. even if you used someone else's theme as a "base" (ie kanged their framework with those built in) you can't simply credit the themer you got it from, you must credit those behind the mods they use.
-example 2: if you are using dialers/apps/images from someone else's theme, credit them for specifically what you are using (best practice would be: google search widget and dialer from bendbowden for example)
Q: What about donations?!?!
A: Yeah this is a tricky one...but let me share *my personal* thoughts on it: let me start out by saying I dont accept donations for porting themes or even making quasi-original ones (gb themes). i dont feel right accepting money from people ...that being said i probably wouldnt accept donations even for a completely original work i did from scratch. anyway....i think that themers that make an original theme from scratch or do something almost completely original are entitled to have a donate button...and if someone wants to donate a few bucks, then have at it ....
i think soliciting donations for straight theme ports (even if they take a lot of time) or just modifying/merging/doing mashups of others themes isn't really kosher so to speak. again this is my *own* opinion and not gospel obviously, but i think that far too many people feel the need to release slightly modified themes with a rebranded name and then accept money for it. really, unless you are changing a significant portion of a theme (imo at least a few hundred pngs) then it really doesnt warrant its own thread and name. if (for example) you modified JAMT's status bar, then best practice would be just to post it in the original thread as a post like "heres my own modification to jamt with an alternate status bar and icons, that i thought some might like"...not "Phoenix Unleashed" or something.
again just *my* take
***tbc***
Useful Links
Finding Colors for a Theme
How to Black Menus
Quickpanel Text Colors (credit andmer) *new 2.17.11*
How to Theme the Android Market *4.12.11
I think this will open up a lot of ideas for people to try it! Nice post nit. I was gonna ask how you get started themeing.
Sent from my SCH-I500 using XDA App
Bob-o said:
I think this will open up a lot of ideas for people to try it! Nice post nit. I was gonna ask how you get started themeing.
Sent from my SCH-I500 using XDA App
Click to expand...
Click to collapse
Indeed. I have been trying to learn a bit through reading and whatnot. I have all the tools and am teaching myself how to use them. This guide will be EXTREMELY helpful compared to bouncing between all the pages I currently have bookmarked.
nitsuj17 said:
I. Working with regular images in your framework-res (and in a TW Rom, tw-framework-res)
A. Where do I get a stock framework-res.apk and twframework-res.apk?
Click to expand...
Click to collapse
Such an important point. You must work from a stock (or as close to stock as possible) deodexed framework-res.apk and twframework-res.apk when making xml edits (although I realize this section is dealing with image editing). You can't use one already themed because when you recompile stupid **** will happen. I had to figure this out the hard way (and had to dig to do so).
BTW: awesome guide, nitsuj17! If the ***tbc*** 's are as detailed as what you have already done, this guide will be one of the best and most comprehensive/non-technical guides out there. Keep up the good work!
You sir, are the man! Been looking for exactly this!
sorry ive been neglecting this the last few days...its gonna be a wip/add as i go thing for awhile
I liked you for porting matted blue.. now I love you for making this lol. Was looking for a guide and stumbled on this.
THANK YOU for starting this guide!
I realize I could have searched endlessly to learn this stuff, but in reality I have more skills than time and learning yet another thing the hard way isn't in the cards.
I'm impatiently waiting for more on the TW framework specific section, as I have no idea what edits work for what in each.
Also, some real work examples would be excellent.
e.g.: The required xml file edits for changing all text to #5555FF.
An image reference would be awesome, as well.
e.g.: The most commonly themed images and what their framework.res names are.
I find myself trying to make a theme and giving up simply because 50% of the images look very similar, and I don't have the time to edit an image, flash it, boot the phone, figure out what changed, then move to the next random-looking image.
Also, is there a faster method to test theme changes?
Booting the phone, copying the theme over, rebooting to CWM, flashing the theme, then booting to see the changes is extremely time consuming, especially when you're not even sure where the change will occur and find yourself randomly pulling up menus and dropdowns trying to see what your change affected.
Cheers for the help.
You really did fill a deep void and I thank you bunches for the help. You will also see a beer or two coming your way for the effort. Community support like this really does get rewarded, in more than just new themers making themes.
Ill be getting to more and more in depth answers and faqs as I go along....dl30 kinda dropped in the middle of my work on this and theres a lot of themes to do. ....but thank you for specific questions id like to see more from everyone so I know what are some more commonly asked questions and what people are looking to do.
lowkee said:
An image reference would be awesome, as well.
e.g.: The most commonly themed images and what their framework.res names are.
I find myself trying to make a theme and giving up simply because 50% of the images look very similar, and I don't have the time to edit an image, flash it, boot the phone, figure out what changed, then move to the next random-looking image..
Click to expand...
Click to collapse
This is a really good idea, I talked about making one a while back but never really got around to it. Maybe I can talk to some of the guys and we can throw something together.
lowkee said:
Also, is there a faster method to test theme changes?
Booting the phone, copying the theme over, rebooting to CWM, flashing the theme, then booting to see the changes is extremely time consuming, especially when you're not even sure where the change will occur and find yourself randomly pulling up menus and dropdowns trying to see what your change affected.
Click to expand...
Click to collapse
ADB is probably the quickest and least painful way to test a theme. When you have completed it adb push <path/to/file/locally> <destination/on/phone>. Then adb reboot.
e.g.: adb push framework-res.apk /system/framework/
N00b here with theme question for Fascinate
I apologize if I am posting in the wrong place also if this has been asked before. I have searched the web and also the forum and I was looking for step by step instructions on how to install a theme ( like myst v3.3) because prior to downloading DL30 I was running supah clean and tried installing dark-myst ( on DL09- Samsung Fascinate) and I placed it on the SD card ( yes clockword is installed) and I went to update.zip then to install zip from sd card and loacted it. it installed, cleared the cache and then it went to the SAMSUNG screen and I had to restore the phone in order to get it functioning again. I am hoping that someone can provide step by step instructions on installing a theme onto Samsung Fascinate with DL30? Thank you !!!!!
tennisjunkie said:
I apologize if I am posting in the wrong place also if this has been asked before. I have searched the web and also the forum and I was looking for step by step instructions on how to install a theme ( like myst v3.3) because prior to downloading DL30 I was running supah clean and tried installing dark-myst ( on DL09- Samsung Fascinate) and I placed it on the SD card ( yes clockword is installed) and I went to update.zip then to install zip from sd card and loacted it. it installed, cleared the cache and then it went to the SAMSUNG screen and I had to restore the phone in order to get it functioning again. I am hoping that someone can provide step by step instructions on installing a theme onto Samsung Fascinate with DL30? Thank you !!!!!
Click to expand...
Click to collapse
Are you saying it got stuck on the "SAMSUNG" screen? If you used a DJ05 theme on a DL09 rom, you have to apply the DL09 theme fix otherwise your phone will get stuck on "SAMSUNG".
DL09 Theme Fix: http://dl.dropbox.com/u/17566514/DL09 Theme Fix.zip
Edit:
Install DL30: http://forum.xda-developers.com/showthread.php?t=937499
Flash only DL30 themes after installing DL30! Here's a list: http://forum.xda-developers.com/showthread.php?t=922455
Installing a DL30 theme is the same as on a DL09 but you need the new CWM to do it.
Sorry for all the info. I hope somewhere in there you got an answer to your question.
DtatchD said:
This is a really good idea, I talked about making one a while back but never really got around to it. Maybe I can talk to some of the guys and we can throw something together.
Click to expand...
Click to collapse
I'm a totally new at this but if I can help do some legwork on it I'd be willing to try. I was just thinking about looking for a list like this...
Samsung Fascinate DL30 and installing themes
letmehearucaw said:
Are you saying it got stuck on the "SAMSUNG" screen? If you used a DJ05 theme on a DL09 rom, you have to apply the DL09 theme fix otherwise your phone will get stuck on "SAMSUNG".
DL09 Theme Fix: http://dl.dropbox.com/u/17566514/DL09 Theme Fix.zip
Edit:
Install DL30: http://forum.xda-developers.com/showthread.php?t=937499
Flash only DL30 themes after installing DL30! Here's a list: http://forum.xda-developers.com/showthread.php?t=922455
Installing a DL30 theme is the same as on a DL09 but you need the new CWM to do it.
Sorry for all the info. I hope somewhere in there you got an answer to your question.
Click to expand...
Click to collapse
Thank you so much for taking the time to respond to all my scattered questions. So to install a theme I put it on my SD card then flash through ROM Manager, then boot into recovery and apply theme from SD card? DO I need to backup and clear data? I dont want to uninstall the ROM. I ended up installing Rubiks DL30 ROM. It is pretty nice looking.
tennisjunkie said:
Thank you so much for taking the time to respond to all my scattered questions. So to install a theme I put it on my SD card then flash through ROM Manager, then boot into recovery and apply theme from SD card? DO I need to backup and clear data? I dont want to uninstall the ROM. I ended up installing Rubiks DL30 ROM. It is pretty nice looking.
Click to expand...
Click to collapse
Correct. Place the theme you want (should be .zip file) onto your SD card. So if you already have the rom installed, then you reboot into CWM recovery (when I upgraded to DL30, I never even used Rom Manager).
I've read on a couple of forum that its good to clear data and wipe caches (I've done it and not done it without noticing any difference). From there, you flash the theme ("apply .zip from SD card" is the actual command in CWM) and then reboot the phone (this is an option in CWM).
Personal preference, I always make a backup (I use Titanium Backup, but I hear nandroid is good too) before I re-theme.
Samsung Fascinate DL30 and installing themes
Ok. I apologize for all the questions. I tried to do exactly as you described above and it places me at the "Samsung" screen where it has installed the package then looks as if it is going to boot up but does not boot so I have to start back at stock again. I am trying to use DL30 Midnight V1.1 - (midnight for 2.2) as my theme and my ROM is 2.2 Roms
RubikS 0.3 DL30
Is it possible it is not compatible, any suggestions will be appreciated. Thanks again.