9.png framework-res.apk problem - Android Themes

ok... status_bar_close_on_cust.9.png
i believe i have followed all the guides i have seen correctly. sorry. i've been stuck on this for almost 4 hours.
i opened the apk in 7zip, exported the image.
removed the 9 from the file name
edited the png in PS
opened draw9patch,
added the full bottom and right side lines.
added the 2 dots i need on top and made the leftside work after eclipse failure
did the eclipse project thing
pulled new status_bar_close_on_cust.9.png from the eclipse created apk
opened framework-res.apk in 7zip again
i tried both..
- deleting the original image and then adding the new to the archive
- drag-drop the new image thus replacing the original
resign the rom's zip
when i install on system i get the bootloop with each loop getting shorter.
i have tried converting framework-res.apk to a zip, resigning it, and then back to an apk
i know this is a much descussed subject on this forum and all the other's i googled looking for the missing step or something i'm doing wrong
i have tried apkmanager, apktools, shorter suggested methods i've seen, and full drawn out methods.
i dont know if i'm messing something up in the png edit, the draw9patch, eclipse, signing or not the apk, or somewhere else.
i've tried pulling a logcat/boot.log from the device but i get some sort of error. i dont know if it's not creating one or i'm trying to pull it from the wrong place.
i'm sure a ton of you guys have had this happen to you. please offer some advice

Do you get an error when importing into eclipse? If so what does it say?

im sorry shoulda clarified that. originally i failed to put the patches on the left side. it failed when trying to make the apk. put thos there and the apk was created. my proplem is with the framework-res.apk i guess.
i put it back in the rom, sign it, and boot-loops.
i guess it has something to do with adding the image to the framework-res.apk. apparently it doesnt like the new image, so to speak. i have tried finding out how to re-build the framework-res.apk, to no avail. hell, i may be using the wrong terminology when searching. at this point, i have no idea.

If i change any images i use metamorph, free from the market. You dont need to sign and flash full apk's, just the files that need changing, a lot quicker and easier.
You could create your ***.9.png as a full size png and remove the 9 patch data, eg. instead of having a 5x32.9png make it 320x32.png(depending on your resolution).
In fact come to think of it ive never seen the "status_bar_close_on_cust.9.png" on my screen, just "status_bar_close_on.9.png".
EDIT: If you've used apktool or other to decompile, crop the the edges by 1 pixel each side, this will remove the 9 patch data, edit your image, then use your draw9 tool, and recompile with eclipse.
You may have been adding another 1 pixel 9patch border to the already existing 9patch border, hope that makes sense.

this is the custom pull down notification bar in gingerfly-1.7.0 based on cm6.1 i believe with some gingerbread looks.

This is how I do it:
1. Extract image from framework-res.akp. You can right click on the framework > 7-zip > open archive and extract the image this way or just extract the whole apk.
2. Edit the image. Open the image in Photoshop and do what you want. Don't worry if you don't have the border. Save the image as a .png file.
3.Add the border. Open draw9patch and add the image. A border for the dots should be created automatically so just do what you need to do and save it as the same file name. It should automatically change the file type to .9.png.
4. Compile the image.9.png. Download the file attached. In the zip, you should see a file called 'xUltimate-d9pc' and a folder called 'Original'. Put the image into the folder 'drawable inside 'res' inside 'Original'. Then open the file named 'xUltimate-d9pc' and wait. When it has finished, there should be a new folder and inside should be the compiled image.
5. Replace the image in framework. Right click framework-res.apk > 7-zip > open archive. Drag the new image into the framework, make sure you have the same file name. You shouldn't need to sign it.
Now you should have a framework-res.apk working with no problem.
I'm not sure if it will work for a custom rom as I use the framework-res.apk from my X10
Hope this helps.

that worked! thanks much!!! the one step i did add to this is to re-sign the rom. i have had nothing but problems anytime i have not signed it after making any changes. it may be an un-needed step, but it worked. thanks again!!!

Can I bump this real quick?
This is my first post here and I'm sorry if I shouldn't bump this thread but my problem is closely related and I hope someone out there knows what I'm doing wrong.
First things first, I'm using the EVO, that's probably important information.
I just flashed Warm Z TwoPointTwo and I love it, except... I really want the vanilla lockscreen. No problem, right? Just rename or delete HtcLockScreen.apk and you're good to go.
That works, and the vanilla lock screen appears upon hot reboot, but the images aren't right; they are all transparent in Warm Z. I have been trying basically all day to get the stock images back into framework-res.apk and nothing has worked; I bootloop every time.
The images are jog_tab_* except that the images in MY framework-res.apk have for example jog_tab_bar_left_end_confirm_gray.png (for all of the left and right end confirm images), whereas the AOSP framework-res.apk has 9patches for all of those.
I've tried deleting the jog_tab_* images in mine and placing in the ones from AOSP, I've tried placing the AOSP images in alongside the ones already in my copy, but nothing works.
I've tried apktool, apk manager, xultimate... I've read about 25 xda threads on this and tried every new suggestion. It bootloops no matter what I do. I think I'm missing something.
I've done the 7zip replacement without re-signing, I've re-signed, I've done xultimate with compression 0, and I've tried creating my own metamorphs. Something about Warm Z is conflicting with the vanilla images, but I'm too inexperienced in themes and the Android OS to know what's up.
Perhaps Warm Z changes definitions elsewhere as to which images are used, or perhaps something else isn't lining up properly with the vanilla lockscreen code. I hope someone out there knows what on earth I'm talking about.

Related

Wasting lots of time and getting nowhere!

I managed to somehow stumble through a few minor edits in the Launcher.apk by relying purely on colour replacement tools but that was messy and I tried to be more accurate and do something that works and looks how I want. Unfortunately it doesn't seem to matter what I do now on any .apk PNGs they don't work. I resign them when I'm done, push to my phone and nada. It either fails to load or half loads then throws up a ton of acore FCs so clearly I'm doing something wrong. Perhaps someone here can point out what I'm doing wrong if I list what I do.
unzip .apk and find image to edit.
Pull image into Photoshop
Change image as needed / wanted
Save file (I haven't touched any .9s yet)
zip the lot back up, rename to .apk and sign
Push file back to phone, reboot.
I've tried pushing the file while in recovery and while it's been running, neither makes a difference and I have little enough hair without resorting to pull it out :| I did just notice in another thread where Ted mentions using Paint.NET to pry open those damned indexed files. I'm going to look at that but earlier if it was indexed I ended up opening it then manually cleaning it up before making sure it was indexed when I saved it again.
That's about it. If anyone can offer insight into the cause I'd be most appreciative
try not resigning individual apks (system apks). After you edit them, zip them back up. put them back into the update.zip that it came from and resign the update.zip and reflash. that should work.
Yeah what I do is unpack the theme/ROM with the .apk I want to edit. Then I unpack the .apk, go into the folder and edit the images I need, then zip the contents of the folder back into a .apk (make sure you zip the contents, not the folder they are in) and replace the current .apk with mine. Then I re-zip the theme/ROM and resign it. it's a long and arduous process, but it works
i use 7-zip, extract the folders i want to edit from the archive, delete all of the .xml's out of it (since they can break something between versions sometimes) then edit my images, go back to the .zip or .apk file (7-zip will open either extension) go to the folder with the images i edited, then drag my images into it.
i never actually never unzip an entire zip or apk and rezip it when i am done. it is rather quick and easy. just make sure that you click ok when it ask you to update the archive.
david1171 said:
i use 7-zip, extract the folders i want to edit from the archive, delete all of the .xml's out of it (since they can break something between versions sometimes) then edit my images, go back to the .zip or .apk file (7-zip will open either extension) go to the folder with the images i edited, then drag my images into it.
i never actually never unzip an entire zip or apk and rezip it when i am done. it is rather quick and easy. just make sure that you click ok when it ask you to update the archive.
Click to expand...
Click to collapse
Hes got the solution..........its the way ive done it from day 1, and 7-zip FTW.
brandenk said:
Hes got the solution..........its the way ive done it from day 1, and 7-zip FTW.
Click to expand...
Click to collapse
well i got it from a certain post you made on how you made themed quickly and easily
Thanks for all the replies I've been a fan of 7-zip for a while, glad to see I'm not alone there! From the sound of it all the re-signing might be the cause so I'll give the method david suggested a whirl!
Are there any major things to avoid? For example, I noticed a lot of the icons don't take the full size of the image like the 3G notification icon or the satellite notification icon. Is it safe to go the full size or will that cause a horrible mess? I don't quite see why the images have so much space around them basically and want to use some of those extra pixels lol
Hey about using metamorph bud? much easier to do then what your doing
Check it out.
www.RelentlessAddictions.com/android
http://forum.xda-developers.com/showthread.php?t=589315
Stericson
If your on windows, its simpler not to unzip the .apk or .zip. Since the begining, there have been problems with the way windows zips files. It seems the way Linux and windows zips files are some what different. There may lie your problem. Simply drag the folder on to your desktop, edit the pngs, then drag the folder back on to the .apk inside the .zip. I also agree with the above statements. Sign the whole zip as one instead of each one independably. You can also erase any apk or jar archive not being editing to make your update smaller and faster to load...
Also, most .apk's are universal, meaning they can be used in any rom. Some are not! Meaning they will break the system. Examples are framework, launcher...
Stericson said:
Hey about using metamorph bud? much easier to do then what your doing
Check it out.
www.RelentlessAddictions.com/android
http://forum.xda-developers.com/showthread.php?t=589315
Stericson
Click to expand...
Click to collapse
I thought about it for simple recolours but this is me trying to teach myself what works and what doesn't before I attempt to make myself a theme. I'm still going to have a look at metamorph though so thanks for the links Stericson.
Quick edit to note that using Paint.NET to change lots of bits in framework-res.apk worked Now I can have a little rest before I tackle things like Launcher and others. Out of all the programs to open indexed PNGs I would've thought Photoshop would do it. I only own Elements but the trial version of CS4 still opened them as corrupt. Strange stuff!

[Guide] Learning To Theme: Putting the tools to use pt. 1

[Guide] Learn To Theme Part 1: Everything you need to get started
So you want to theme android.
Don't know where to start.
This should help.​
***This is written going in step with editing a theme for the Samsung Epic 4g, but the principle can be applied to any android phone, granted there will be differences in phones***
First off you are going to need the basic tools:
7zip - http://www.7zip.com
Gimp - http://www.gimp.org/downloads/
Second off you need a general understanding of what you are about to do.
The majority of files you are going to edit will be found within framework-res.apk. This is a file located inside of the folders system/framework inside of a rom. A rom of course is a collection of files which combines into your operating system.
To get to the framework-res.apk file you will need 7zip, it's like winzip but is real quick for themeing.
http://www.7-zip.org/download.html
7zip will see any file named *.apk as a file named *.zip. With WinRar, Winzip, and others you have to rename the apk file .zip edit it, and rename it back to .apk. With 7zip this is not necessary. All you have to do is right click a file and choose 7zip-Open archive.
So you have your rom downloaded onto your desktop or in a folder you set up as the root of your themeing.
On my PC I have a folder inside of User/Documents/ called Themes
I also theme for the Samsung Moment so I have all my themes labeled inside of there:
(My folder looks as follows)
Epic Green Mayan Theme
DE03 Stock Theme Template
DI18 Stock Theme Template
Epic Files
Pink Life Moment
Pink Life Epic
Mayan Green Moment
Epic Black Hole
First and foremost, you really need a Stock *** Theme Template. *** being whatever version your phone is running.
The stock theme template serves a number of purposes. First, it is deodexed. This means that all of the files in system/ and system/framework that have the .odex extention are deleted and the stock apps that are included on your phone by default are replaced with files that have been full deodexed files.
This is essential for themeing because if they weren't deodexed, either your apps would ForceClose when you reboot after themeing or they will dissappear from your laucher tray and desktop, meaning essential they are deleted by the phone.
Another good thing about a stock theme template is that it deodexes your phone from an update zip so you can theme the stock rom your running instead of having to install another rom simply to apply a theme.
Download your stock theme template for the Epic 4G here for EC05
http://forum.xda-developers.com/showthread.php?t=1042386
So lets begin here.
Open your folder on your PC that holds your theme. For me it will be Users/Documents/Themes/NewTheme
Inside of that folder (COPY) your stock theme template to this folder. You will want an original theme template to remain inside of it's own folder cause obviously you are going to edit the one inside of New Theme folder.
Stock_DI18_Theme_Template.zip
Now rename stock_DI18_Theme_Template.zip to the name of your new theme.
NewTheme.zip
Now right click the .zip file and choose 7zip-Open Archive.
Double Click on the folder labeled "system" to Open it.
Double Click on the folder labeled "framework" to Open it
Here you will notice several files including one called framework-res.apk.
Inside your theme folder /Themes/New Theme/ create another folder called framework.
Drag and drop the file framework-res.apk into the framework folder.
Right click on framework-res.apk and choose 7zip-Open Archive.
Double click on the folder labeled "res"
Now you will notice several folders. On the Epic 4g the main one you want is called Drawable-Hdpi
Drag and drop this folder into the same folder you created called framework.
Open this folder and browse around. There are many images in here that your phone pulls in various locations. The first thing I like to do doing this on a new phone is to play with my phone and at the same time look in this folder and try to locate the same files I'm looking on the phone itself. You'll begin to see similarities inside of the drawable-hdpi folder for instance files that begin with the label sys_stat_*_* usually show up in your status bar. The rest you will learn over time.
You will also come across two main file types. The first is .png and the second is .9.png. This write up will not cover those, coming in the future.
A popular start for most people is wanting to alter the status bar. This is an easy one or so it seems.
navigate into the drawable-hdpi inside of the framework folder located /Themes/NewThemes/framework
scroll down until you find a file named status_bar_background.9.png
Since it's a .9.png you already know we can't edit it yet. The reason is the .9.png files are pictures that might hold more then one place on the phone and most probably will be portrait and landscape. The status bar is one size on portrait mode, but when you flip your phone into landscape, it has to stretch to fit the screens. In order to stretch a picture and retain it's looks, a tool called draw9patch in the android sdk is used to show you your image in 3 different stretch modes. Your goal is to set the guidlines on what must be retained at each zoom. After you add these guidlines on the picture, they show up in the picture. You have to program the guidelines inside of the picture and remove them from being displayed. That is done by a program called Eclipse. (Use version 3.5) But all this will come into play later don't rush out and get confused because familiarizing yourself the basic pictures and colors found in framework-res.apk is your current goal. Just because you have no idea what you are doing with the .9.png files doesn't mean you can't change the color of the status bar though. The next best thing is to "borrow" one from a theme that exists so you can get a feel for modding some files. The only one you can't use from another theme is the clear status bar. That has to be done in xml files as well and for now were sticking to the basics. Here's what you do. Find the theme that holds the status bar you like. To make sure you preserve all the files the way they need to be it's best to make a whole new folder in the theme folder called whatever theme you plan to use as a donor /Themes/Donor Theme/. Open the theme zip with 7zip open archive. Navigate to res (double click) and framework. Make another folder inside /donor theme/ called framework. Drag and drop the framework-res.apk. Open this file in 7zip and drag and drop drawable-hdpi into the framework folder. Now open it and scroll down to the status_bar_background you intend to borrow. (Right about now it's not wize to have your windows of "my computer" open full screen you can do this a lot easier with two open explorers side by side swapping files). Side by side, open the drawable-hdpi folders in both theme folders, /New Theme/ and /Donor Theme/. Drag the status bar from the donor theme into the folder for the new theme. Microsoft will give you **** about it choose copy and replace and your done. Now to get this change back in the theme is pretty easy. Your drawable-hdpi folder inside /Themes/New Theme/framework is where you will alter the pictures, framework-res.apk is where your going to put it. In your framework folder is the original framework-res.apk If you closed the instance of 7zip where you had framework-res.apk for new theme open, you need to right click and re-open it. Double click on /res and open it. Drag and drop the drawable-hdpi into the open archive NewTheme.zip where all the other drawable folders are. Make sure not to copy it IN one of those other drawable folders. It will overwrite the one thats already there automatically. Now, you have to stick that framework-res.apk back into NewTheme.zip before your ready to flash it from recovery. First close the 7zip instance of framework-res.apk. Right click and open NewTheme.zip double click on system/framework/. Now drag and drop the framework-res.apk from /New Theme/framework into NewTheme.zip. Your done, now flash the NewTheme.zip in recovery and see how it worked.
Any other file you choose to edit, the steps will be the same. Edit the image in drawable-hdpi, drag it into framework-res.apk, drag framework-res.apk into the theme /res/framework/ folder. You will be doing this a lot.
That's it for part 1. This will give you enough to play with and familiarize you with the images used by most any android phone. If this were a samsung moment you would be doing all of this editing inside the same file structure except in framework-res.apk /res folder you would be editing a folder called drawable-mpdi.
Part two will be out soon enough. I'll go more in dept inside the framework-res.apk/twframework-res.apk
[Guide] Learning to Theme: Required Tools
How To Theme
Required Tools​
First off this is the very 1st guide in my line of theme guides. This one is just to reference you to the required tools, and instructions on how to set them up since it can be a little tricky. The link at the bottom is for guide 1, what to do with these tools now that you have them. At the bottom of that guide is link to a two part Putting the tools to use covering editing images in framework and .9.png files.
Grab you some tools:
Gimp:
www.gimp.org
7zip:
http://www.7-zip.org/download.html
Java6:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
scroll down and select (under Java Platform, Standard Edition, JDK 6 Update 22) Download JDK
Download and install with the on screen instructions.
Android SDK:
http://developer.android.com/sdk/installing.html
Notice the instructions on Step 2. Downloading the SDK Starter Package.
It says "On Windows, right-click on My Computer, and select Properties. Under the Advanced tab, hit the Environment Variables button, and in the dialog that comes up, double-click on Path (under System Variables). Add the full path to the tools/ directory to the path."
This means if you extracted the folder called android-sdk-windows inside the zip you downloaded @ C:\android-sdk-windows, then when you go to add the path (there will already be other values in your path, type a ";" behind the last one and type in c:\android-sdk-windows\tools
this means you can call any of those scripts inside of android-sdk-windows\tools by typing them at the c:\ in command prompt.
For example, if you did not do this, and you wanted to use adb, you have to open the command prompt and type the following
C:\>
C:\>cd android-sdk-windows\tools
C:\android-sdk-windows\tools>
C:\android-sdk-windows\tools>adb ***
After adding the tools folder to path you can do the following
C:\>
C:\>adb ***
APK Manager 4.9 (Latest Version):
http://forum.xda-developers.com/showthread.php?t=695701
There is a video on the page as well to give you an overview of how to work it.
I downloaded the zip, created a folder at the c:\ drive called apk manager. Opened the archive (apkmanager4.9.zip) highlighted all the folders and the bat file, drag and dropped them into the folder located at C:\apk manager\.
Eclipse 3.5:
http://www.eclipse.org/downloads/packages/release/galileo/r
This is called Eclipse galileo download the one called Eclipse Classic
Once again you extract this file into a folder on your computer like you did with APK Manager. I created the folder @ C:\eclipse\
Now navigate to this website to learn how to add the adroid sdk into eclipse to have it ready when we are going to need it.
http://developer.android.com/sdk/installing.html
Note the android SDK download at the top, you should already have this. Read right below where it instructs you to add that into eclipse.
Start out like this. Open Eclipse now that it is installed. It's the icon in the eclipse folder that looks like a purple planet. With Eclipse open on your screen click on Window in the tool bar at the top. Click on Help-Install new software. The box that appears, it says "type or select a site" ignore this text input box and go straight to click "Add" button. When it comes up name it Eclipse Plugins and in the field where you put the web address, type the following: https://dl-ssl.google.com/android/eclipse/ . Click on the box next to developers tools and click next at the bottom. This will install what is called Android SDK and AVD Manager. Eclipse will probably need to restart to add the plugin to the menu list. Alternatively, if you get errors doing this there is a problem with you computer connecting to the secure server (in the web address you typed https: note the S at the end. If, for any reason you do get errors, simply go back to Help-Install New Software, and this time put in the web address field http://dl-ssl.google.com/android/eclipse/ When eclipse opens back up, click on Window and select "Android SDK and AVD Manager". Now your screen should look like the pictures in the link.
Now Eclipse Should be upgraded.
After following this all the software should be installed to work on themes.
Next Guide Below
Click My thanks button below
Meta Morph tutorial
by Dreamsforgotten​
This is a primer in using MetaMorph on the Samsung Epic, at the time of writing I'm using a froyo leak with the Bonsai 2.0.1 rom so MetaMorph being a little buggy for us now will probably clear up when official is out. The bottom of the guide addresses what I'm talking about.
Create a folder on your desktop. Call it froyo (or whatever).
Inside that folder make one called framework-res (don't put the .apk)
Inside that folder put the folders you need to edit example
If I want to change the images in drawable-hdpi, make the folders like this
froyo/framework-res/res/drawable-hdpi
so inside the froyo folder create "framework-res". Inside framework-res create "res". Inside res create "drawable-hdpi". It follows the same structure as apk manager when you decompile. If you want to edit the styles.xml, that gets recompiled into resources.arsc. If you are in apk manager and you goto projects, you'll see unsignededitedframework-res, open it and right inside you'll see resources.arsc, androidmanifest.xml, res, meta inf, etc. So to MetaMorph the resources.arsc, your NEW resources.arsc goes into
froyo/framework-res/
Do this for any .jar or .apk file, create your folder structure and put only the new files into the folder, you don't have to flash an entire drawable-hdpi folder only the files you are changing.
Next thing you need to do is make a xml file that tells metamorph what files your editing and links the folders you created to that file. Do that like this:
Inside the froyo folder, create a text file. Either open Notepad and save the file into this folder or right click choose new file, text file. Set your .xml file up like this:
<?xml version="1.0"?>
<themename>Crystalline Froyo</themename> <--You can call this whatever
<themeversion>2.1</themeversion> <--Number that whatever number you want
<screenshot></screenshot> <--include a screenshot if you like. put the screen in /froyo and type the file name here
<author>Dreamsforgotten</author> <--your name
<authorweblink>http://forum.xda-developers.com/member.php?u=2551535</authorweblink>
<phone>Samsung Epic</phone>
<rom>Bonsai 2.0.1</rom>
<themedescription>UI Improvements for Crystalline Froyo</themedescription>
<item>framework-res.apk</item>
<path>/system/framework/</path>
<description>**** a Reboot Required</description>
Now the line right above this <item, path, description> You have to follow this for any folder your updating. Notice in the <item> space, you put the actual apk name being edited. So here I have <item>framework-res.apk</item> This tells metamorph to put your edits from the folder you named framework-res into framework-res.apk in the same structure as you set up, ie /res/drawable-hdpi or /res/anim whatever it is you might be editing. It's that simple. Now say you wanted to theme the market. You can use metamorph to theme system apps, but NOT market apps!!!!!! You would do this
<item>vending.apk</item> <--name of APK
<path>/system/app/</path <--path to the APK
<description>Market Update</item> <--whatever you like for descripton
You would put somewhere inside the xml as well. You can put the instructions for MetaMorph to flash in any order you like, You can theme apks first, framework-res first, however you like, BUT its good practice to put the framework-res last because it causes a reboot and anything behind it won't flash. Samsung devices pay attention, TWframework-res and framework-res both require a reboot, so you have to have two separate metamorph zips.
Now, moving along. You have your xml file with all the fields written properly, you have your folder structure set up you just need to do two more things. Inside your original froyo folder on your PC, create a blank text file. Name it .nomedia that (dot).nomedia don't forget the period. This tells media scanner not to add all your images from this zip into your gallery. It's very important. Now the final step, zipping it all up to flash. Whatever you chose to name that xml file for example I used this on the last one I created. crystalline2.1.xml This was the name of my theme control file (the .xml file inside of froyo) so your zip file HAS to be named the same exact thing. If your xml is theme.xml, then your zip has to be theme.zip. If your xml file is theme1.2.xml then your zip file has to be theme.1.2.zip. It will error if the zip and xml file don't match. That's it copy it to your SD card under AndroidThemes, open MetaMorph and apply!
Keep in mind MetaMorph has a 500 file limit and gets buggy when you push it toward the 500 mark. Break large themes into 2-3 different files if you must. You already have to have two separate flashes for our two frameworks on the Epic so you might as well split the images between the two anyway.
One last note on MetaMorph on the Epic. I'm using the latest and I noticed sometimes you open it and it closes right back, or you go to extract a new theme and it closes. Seems that the free version has issues with displaying the ads (which could be due to the host file on Bonsia I'm running, not sure, but when you open MetaMorph, give it time for the ads to load before hitting the start checks button. If the ads at the top and bottom of the app don't load soon, and it doesn't close on its own, proceed. If you give it time for the ads to load and it crashes, just open it right back up. Sometimes it takes me 2-3 times opening MM to get it to stay on the screen but after it does, the flash goes smooth every time.
[GUIDE] Learning to Theme: Putting the tools to use
APK Manager:
This is one of my favorite programs it makes the whole process smoother imo.
Navigate your harddrive to c:\apk manager\ or wherever you extracted the progam to.
Grab the framework-res.apk from a theme template/rom/etc.. and drop it in the folder called "place here for modding"
Double click on Script.bat. Leave the apk manager window with the folders (where Script.bat is) open.
Look into the second section called "Advanced tasks Such As Code Editing
Type "9" to decompile apk
Immediately type 11 to recompile apk (This step is because I have ran across framework-res.apk's before that wouldn't recompile even if no changes were made and this could save you some time down the road.
Minimize the window, Maximize the apk manager window
Open the folder called projects
Open the folder called framework-res.apk
Open the folder called res
Here is where there are plenty of files you can edit. These are the XML files that control the look and behavior of android. If you are lost at this point, lets work on a file together to get the feel for what is possible in here. Scroll down and click on the folder called "values" and open it. Inside you will find a file called colors.xml. Right click on the file and choose open with and choose notepad if you have nothing else that works as a basic text editor. Me personally, I use Notepad++. It's a free download. Either way once it is opened, you will see many values that look like this:
(This is not stock Epic colors.xml file so don't be confused)
#ffb97f7d
#ffffffff
#ff000000
#00000000
#ff000000
#ffffffff
These are text colors for your primary and secondary text on your phone, as well as background highlight colors.
Note Background_dark background_light. That is the background color so if it is the same as your text colors you won't be able to see the text. I made this mistake before so you can change every text color in this file but leave the backgrounds alone, or use a color your text will show up on.
#ffb97f7d
#ffb97f7d
#ffb97f7d
#ff64917d
#ff64917d
#ff64917d
#ff64917d
#ff808080
Here, the color name=" describes the text, the "#ffb97f7d" is actual code for the color.
So if you want to change this color, where do you get the codes from?
Easiest way for me is to use the color chooser in Gimp, when you pick a color, either background or foreground, it will show you the hex value on the screen. But remember that the color codes Gimp gives you hold 6 places ie #000000. The values in the xml files hold 8, so when you compile there will be an error. That is because the first two places describe transparency. You need to add "FF" in front of any value you get from Gimp. So if the code in Gimp is 000000 in the xml file you need to put #ff000000. Always start the code with a "#".
Now the question is what text is described by dim_foreground_dark? Two ways to find out. Change it, compile it, flash it. Or dig around the "out" folder in apk manager and look for text xmls. The next one is located in /apk manager/projects/framework-res.apk/res/color
You will see primay_text_(dark)(dark_disable_only)(dark_focused)(dark_nodisable)(light)(light_disable_only)(light_focused)(light_nodisable)
Search_url_text
secondary_text_(dark)(dark_nodisable)(light)(light_nodisable)
tab_indicator_(text)(textv4)
and a few more. You can open each of these xml files and see what's inside. We'll use primary_text_dark.xml as an example. Right click and edit with notepad++
Take a look at this line in the code:
android:color=" (this tells the xml what color to display. The @color tells where to pull the value from. So you either find color.xml like we did above and edit the field bright_foreground_dark_disabled to render the color your after, or you can simply put the hex color code right here bypassing the need to look up @color(color.xml). It would look like this if you did that. and the "#ff000000" would give this text color the value of black. Instead if you had used the color "#ffffffff" you would get the color white.
Here note android:color in the code. That's because some of the values are for text, and some are for background. In the text lines elsewhere, as seen below, we will use android:textColor instead.
Now this is all general text colors. If you want to edit status bar text, both in the status bar, and when it's expanded, you'll need to dig in a different folder. Navigate to this folder in apk manager on your c:\ drive. C:\apk manager\projects\framework-res.apk\res\layout. You are looking for the following file called status_bar.xml.
Keep in mind when your looking through these xml files, you will see this value in a lot of fields "android:id="@id/icons" or something similar. These are keys to what you are editing. The first line you might want to edit in status_bar.xml would be line #13 which looks like this:
The only thing that's important on this line is @id/tickerText which tells you a color value here would let you change the color of the ticker text. The ticker text is the text that pops up in the status bar for things like a text message being recieved, and if your phone is set that way, the content of your text message.
There is just one problem here. In most lines where you can edit color you will see this already in the line android:textColor="********" and that value is NOT in the ticker text line. But being that this is a text view line because the id is ticker text, you can add the value android:textColor in right before the words "android:id=". The edited line will look like this:
Learn To Theme Putting The Tools To Use Part 2 .9.pngs
We are going to walk through editing a .9 file and getting it back in place to do this as you read the guide.
Before you begin, check out this video from fxn
http://www.youtube.com/watch?v=KNvGgmJDqPQ
Now the guide will get you lined up with the instructions in the video.
Open "my computer" and navigate to C:\apk manager\.
In another window open C:\*\Documents\Themes\
Browse to the folder in Themes that holds your theme template
Right click and Browse your stock di18 theme template or rom.
Navigate to system/framework/
In your apk manager window, open the folder called place here for modding
Click and hold framework-res.apk in your second window which is the 7zip browing the zip file.
Drag the apk into place here for modding folder.
Now you can close the zip file window.
Back out of the place here for modding window and you should be back in the apk manager folder.
Run Script.bat and choose the option "9" and hit enter.
Click open the folder called projects
Click open the folder named framework-res.apk
Click open the folder named drawable-hdpi.
Find the file icon_highlight_rectangle.9.png Pay attention to the screen while your scrolling. Apk manager decompiled all the .9.png files exposing the lines that were used in draw9patch by default.
Right Click the file and choose edit with gimp.
Now in gimp you will see the picture, and the lines drawn in for draw9patch. This will save you time. Edit the picture as you see fit. Change the color, or completely redesign the image. Then when you goto save it, choose file save as. Keep the same file name but save it on your desktop, creating another folder naming it new theme nine files. Save the image.
Open up Eclipse.
Click on file-new-android project
When it Opens, click in the field named Project Name type "nine files"
In the field called "Built Target", choose Android 1.5, click the check box next to it.
In the field called "Application Name" type "ninefiles"
In the field called "Package Name" type "com.example.ninefiles"
No Quotes in any field.
Uncheck the box labeled "Create Activity".
Now your Workspace should be open in eclipse, and on the left pane there should be a folder labeled ninefiles. Double click on it and it will expand a folder tree. Look for res. Then click it if it's not expanded as well. Look for drawable. There will be a file in there called icon.png. Leave that file alone. Now on your desktop, open the folder called new theme nines. Click, drag and drop the edited icon_highlight_rectangle.9 file right into that drawable folder in eclipse. You are skipping using draw9patch because the lines were there from the start.
Now go back to the parent folder in Eclipse, the one labaled ninefiles where all the other folders come from. Right click on it and choose android tools all the way near the bottom. Then slide over and choose export unsigned application. This will bring up the save prompt on your screen, choose the desktop once again, and export it. It will show a message about the export and telling you to zip align it and sign it with a device key. Ignore all this, your just using Eclipse to target that .9.png. Keep in mind every time you open Eclipse now, it will show you the workspace with ninefiles. Expand the folders, delete the last image you used Eclipse to work on and add new ones in, bypassing the need to create a new android project each time.
Lets say your new .9.png image is nothing like the original and it won't display correctly using the lines on it after decompiling in apk manager. You need to feed the image through draw9patch.bat located in c:\android-sdk-windows\tools\
Double click it and a shell will open, then another one will open on top of it that has a square with a down arrow in it. Save your image from gimp into the folder on the desktop called new theme nines, like you did above. Then Drag and drop the saved image on top of the windows inside the square, and on top the arrow lol.
The picture will be transformed in draw9patch concentrate on the outer edges along the entire image. Bring your mouse over to the left of image around dead center. Click once and draw a pixel. Next go dead center on the top just like you did on the left and draw the 1 pixel. Now expand that line up and down on the left side looking at your 3 preview pictures on your right hand side. If there is no gradient or fade effect to your image the center pixel will be about good enough but if your image fades, expand that line up and down and your 3 previews will give you an idea if you capture it or not. Once you have the left side of the image looking good, begin the same process on the top. Use as little line as possible to have the image looking right. Never have a gap in the line that you draw.
Now focus on the right side and the bottom. The two lines drawn there should be about the size of the entire image minus a few pixels at the very end. You can get the idea from the one you pulled from apk manager and adjust the lines to work on your changes. When your done with draw9patch, click file save 9 patch. It will save in the folder on your desktop. Now drag and drop this image into the drawable folder of Eclipse/ninefiles as described above.
This should be a shortcut to getting you busy with 9 files. Any questions or anything noticed missing, please let me know.
One last bit of advice. Sometimes when you open a file in draw9patch, the image is zoomed in too big and you can't get to the outer edges to draw the top and bottom lines. There is a bar at the bottom of the program that will allow you to zoom in and out of the main image and zoom in more to the 3 preview images. Use these to adjust the image to where you can work with them.
All these introduction guides should get you started, your own drive should take you the rest of the way. I'm not the first to write a theme guide I'm just sharing with the Epic community because the amount of new users who are requesting how to do these things. All my information came from asking questions to those that were theming before me like Khanning, Crake, Chibucks, the list is never ending. Also this list of videos here have helped a lot:
http://forum.xda-developers.com/showthread.php?t=593932
.9.pgn write up posted.
Just AMAZING thank you so very much...
No problem I hope I wrote it so anyone starting fresh could understand
rjmjr69 said:
Just AMAZING thank you so very much...
Click to expand...
Click to collapse
Do as thou wilt be the whole of the law
I'm really digging these guides as I really want to get into theming and eventually (with any luck!) cooking ROMs. i'm a self made techie and pick things up pretty quick, so I thought theming was a good place to start off.
any chance you'd consider a writeup on extracting a theme from a themed ROM, pitfuls and things to know/watch out for etc... i think that would be a helpful supplement to see how themes are implemented in ROMs and know what certain files affect. maybe even a list of what parts of a theme/ROM are in what files (such as lockscreen i think is android.policy.jar etc...)
thanks again for your time and effort into putting this out there
No doubt, there is definitely more write ups to be done my goal was to get some guides out that just touch on the basics so people who never tried before can begin to get their get wet.
Do as thou wilt be the whole of the law
hey so i wanted to come back and thank you again for these. i've read but havent dived into editing .9.pngs just yet, but i've really been playing with the rest of the stuff to mostly modify existing themes that i like most of, tweaking a bit. its really cool and i cant wait to actually start putting some of my own stuff together. i know the threads havent gotten a lot of love but its appreciated!
Hey, this is amazing, thx so much for it.
I'm running into a prob and wondered if you could assist.
I've already modded (only replaced/changed some png colors on photoshop), and have flashed it successfully to my phone with no problems. However, when I pull the framework res back out, decompile (with no problems), then try to recompile immediately (as instructed), that part seems to fail. It errors, then asks if it is a system apk (yes?)...then creates a temp folder and asks me to delete the resource.asc if I've modded an xml. Even though it errors, I made a change to the strings xml, compiled, with same error, then signed and flashed- it seems to work fine, but the change I made to the xml didn't hold.
any ideas or suggestions?
Thx again so much.
sent from my RAZR
decalex said:
Hey, this is amazing, thx so much for it.
I'm running into a prob and wondered if you could assist.
I've already modded (only replaced/changed some png colors on photoshop), and have flashed it successfully to my phone with no problems. However, when I pull the framework res back out, decompile (with no problems), then try to recompile immediately (as instructed), that part seems to fail. It errors, then asks if it is a system apk (yes?)...then creates a temp folder and asks me to delete the resource.asc if I've modded an xml. Even though it errors, I made a change to the strings xml, compiled, with same error, then signed and flashed- it seems to work fine, but the change I made to the xml didn't hold.
any ideas or suggestions?
Thx again so much.
sent from my RAZR
Click to expand...
Click to collapse
i "think" thats because you are recompiling edited images. i think thats what he mentions elsewhere in these threads, always compile with stock images, then drag and drop your edited images. so you probably want to start with a stock framework, not one that already has edited images in it. i'm learning too though so dont quote me.
EDIT: hey dreamsforgotten, getting an error exporting: Failed to export NineFiles: C:\eclipse_workspace\Nine Files\bin\NineFiles.apk doesn't exist!
EDIT2: looks like somehow my ADB got wiped out from the tools folder so Eclipse couldnt find it, reinstalled, pointed to it in Eclipse preferences, works like a charm.
I think you are correct.. Ive just gotten so far away away from the original.. On my (own) 5th revision . That's cool though. I did try decompiling and re compiling immediately on an untouched framework, and it did in fact work.
sent from my RAZR
hey i was wondering if you have already posted your 2nd tutorial? If not is there going to be one anytime soon?
dreamsforgotten said:
Where do you go from here?
http://forum.xda-developers.com/showthread.php?t=817998
Click to expand...
Click to collapse
see above bro! each one has a link to the next, if your a little tech savvy they should be enough to get you started, i learned off of them so if you have any questions feel free to ask!
useruser25 said:
hey i was wondering if you have already posted your 2nd tutorial? If not is there going to be one anytime soon?
Click to expand...
Click to collapse
Noob Questions- I'm new to theming but i catch on very quick. I just have a few questions tho..I'm running on the Midnight ROM (CWM3)..I like the DK28 Gingerbread Theme 1.8 but would like to change the text colors a lil..So I Decomplied and recompile with zero errors..i ended up with a smaller file and it was named unsignedframework-res.apk..So i changed the name to framework-res.apk and put it back into the DK28 Gingerbread Theme zip so that i could flash it..I tryd to flash it in CWM3 but it told me it was aborted bc it was a bad file..so my two questions are how to get a theme to be CWM3 compatible and what im a doing wrong when it comes to decompiling and recompiling? Any advice would be greatly appreciated Thanks in advance
Noob Questions- I'm new to theming but i catch on very quick. I just have a few questions tho..I'm running on the Midnight ROM (CWM3)..I like the DK28 Gingerbread Theme 1.8 but would like to change the text colors a lil..So I Decomplied and recompile with zero errors..i ended up with a smaller file and it was named unsignedframework-res.apk..So i changed the name to framework-res.apk and put it back into the DK28 Gingerbread Theme zip so that i could flash it..I tryd to flash it in CWM3 but it told me it was aborted bc it was a bad file..so my two questions are how to get a theme to be CWM3 compatible and what im a doing wrong when it comes to decompiling and recompiling? Any advice would be greatly appreciated Thanks in advance
I haven't made a cwm3 zip yet but for a short cut you can find a theme created for it and copy the files from your theme in leaving the meta inf folder alone. I've noticed in the past as well when I recompile the file gets smaller and smaller according to the pc but that end up flashing all the same. Hope that helps.
Sent from my SPH-D700 using Tapatalk
chris378 said:
Noob Questions- I'm new to theming but i catch on very quick. I just have a few questions tho..I'm running on the Midnight ROM (CWM3)..I like the DK28 Gingerbread Theme 1.8 but would like to change the text colors a lil..So I Decomplied and recompile with zero errors..i ended up with a smaller file and it was named unsignedframework-res.apk..So i changed the name to framework-res.apk and put it back into the DK28 Gingerbread Theme zip so that i could flash it..I tryd to flash it in CWM3 but it told me it was aborted bc it was a bad file..so my two questions are how to get a theme to be CWM3 compatible and what im a doing wrong when it comes to decompiling and recompiling? Any advice would be greatly appreciated Thanks in advance
Click to expand...
Click to collapse
You can't decompile and recompile a framework with different images. The .9s will show funny
You need a edify script for cwm 3
Sent From Da Hood.

[Q] rom porting question

Alright....I've tried searching and searching but I can't find exactly what I need. I'm wanting to try to port blue echo to cm6.1. Now I'm still a little new at this but I've learned how to smali and baksmali, use flashboot, sdk, sign zips, create flashable zips, zip align, optimize, pretty much all the ends and outs of the basic. I've only been at this 4 months but I love android and want to learn to become a dev. Now I'm trying to learn how to theme roms. There are a million guides that I've found but now will tell me how to do this . Could someone point in the right direction to a thread explaining how to port a sense theme to cm6.1. Ive tried replacing the images in the drawables folders from framework-res . Repackaged zip aligned optimized signed and flashed. Nothing took. So I opened the zip all the images had copied over in the cm6 rom zip. So I wiped and flashed the modded zip it still reverts to the original framework of cm6. I don't understand how that is. I need a way to just copy the colors and images. Does anyone know what I'm doing wrong or know of a how to with just the steps .I already have all the programs on my pc.
shawn328 said:
Alright....I've tried searching and searching but I can't find exactly what I need. I'm wanting to try to port blue echo to cm6.1. Now I'm still a little new at this but I've learned how to smali and baksmali, use flashboot, sdk, sign zips, create flashable zips, zip align, optimize, pretty much all the ends and outs of the basic. I've only been at this 4 months but I love android and want to learn to become a dev. Now I'm trying to learn how to theme roms. There are a million guides that I've found but now will tell me how to do this . Could someone point in the right direction to a thread explaining how to port a sense theme to cm6.1. Ive tried replacing the images in the drawables folders from framework-res . Repackaged zip aligned optimized signed and flashed. Nothing took. So I opened the zip all the images had copied over in the cm6 rom zip. So I wiped and flashed the modded zip it still reverts to the original framework of cm6. I don't understand how that is. I need a way to just copy the colors and images. Does anyone know what I'm doing wrong or know of a how to with just the steps .I already have all the programs on my pc.
Click to expand...
Click to collapse
Simplest way, if you just want the icons, pics and notification bar things is to use 7zip for PC. Don't extract the theme, just open it. Navigate to the framework-res.apk file of the new ROM you want the theme to work on, open but don't extract, copy all the .png files from the theme into the ROM or new theme you are making. It will ask you to replace, obviously you say "yes" When you are done, just close it all back up, no recompressing or signing needed because you didn't extract anything. Just put it on your SD card and it will flash.
Let me know if you need more help. This by and large the simplest method for making minor edits to a theme.
Download the CyanogenSense theme by mrinehart93 found here: http://forum.xda-developers.com/showthread.php?t=723224
It's a working Sense-looking theme on CM6. Download it, unzip it on your PC, pick it apart, etc. to see how he changed and compiled it to make it work. Hopefully that will help you figure out how to do what you want to do. Good luck.
chromiumleaf said:
Download the CyanogenSense theme by mrinehart93 found here: http://forum.xda-developers.com/showthread.php?t=723224
It's a working Sense-looking theme on CM6. Download it, unzip it on your PC, pick it apart, etc. to see how he changed and compiled it to make it work. Hopefully that will help you figure out how to do what you want to do. Good luck.
Click to expand...
Click to collapse
+1 Good idea!
ranger61878 said:
Simplest way, if you just want the icons, pics and notification bar things is to use 7zip for PC. Don't extract the theme, just open it. Navigate to the framework-res.apk file of the new ROM you want the theme to work on, open but don't extract, copy all the .png files from the theme into the ROM or new theme you are making. It will ask you to replace, obviously you say "yes" When you are done, just close it all back up, no recompressing or signing needed because you didn't extract anything. Just put it on your SD card and it will flash.
Let me know if you need more help. This by and large the simplest method for making minor edits to a theme.
Click to expand...
Click to collapse
I did this but had to flash clockword because i was using ra, it wasn't verifying the update. So i turned off signature verification. But I'm using firerat mtd and forgot that i have to repatch the clockword for this so I did'nt really get to see if it worked yet. But thanks all of you responding I appreciate it. Ill let you know if these methods work.
I fixed the prob. Did everything suggested by copying the png's between the zips without extracting them. Even doubled checked all the png's everything looked like it was a go . But I only got 3 of my new icons. Everything else was still stock cm6 even the notification bar was stock. Do I got to do more than just transfer the png's cause it seems like maybe the xml's are reverting them back to stock?

[HOW TO] Do it yourself guide for theme editing

To get started, read the posts below by tsachi.
Then give this a glance - Do it yourself guide for theme editing
More Resources:
http://forum.xda-developers.com/showthread.php?t=982300
https://docs.google.com/Doc?docid=0AcdxIJRSH9ypZGZzc2pxNDlfMjdnazk4OHNxZA&hl=en
http://forum.xda-developers.com/showthread.php?t=916814
Info on how to edit the items in notification bar:
+ http://forum.xda-developers.com/showpost.php?p=11158662&postcount=3
All credit belongs to the original authors. I am simply gathering all this information to make it easier.
For any help or support, post in this thread and we will try to help you the best we can.
Expanded Information
Introduction
The link in OP gives you instructions on how to replace images, but it lacks information for the inexperienced themer. Here is some background information and some more details on the steps before and after you insert new images in your framework.
System Icons and background images sit in two main files: framework-res.apk and twframework-res.apk. Within these files there is a res directory, and under that you have the folders containing data. Google has guidelines on icon design, although themers usually ignore those in order to get a different from stock look. One thing you would notice is that there are a lot of repeated icons. For example, framework-res.apk has both drawable-hdpi and drawable-hdpi-v4. The first is there for compatibility with older APIs (anroid 1.6 or older) so I am not sure why it is still there, but if you remove it your phone will not like it.
Each application has its own res folder where the launcher icon and other visuals are kept. There are, however, a lot of applications that reference the framework.apk for visuals. An example is the dialer that calls on some background images from both framework-res and twframework-res.
There are 2 types of images that you would encounter. Normal icons and images are non-scalable. They take a certain amount of real estate on the phone, and that’s it. Example of these are the battery levels and notification icons. The other type is the .9 images. These are images that are going to be stretched to fit whatever space is needed. An example of that are the menu backgrounds. The .9 images have a special format. The one pixel border around them defines how they stretch and how content is displayed in them. It is highly recommended to follow the standards in order to get repeatable and consistent look. Android SDK has a tool to help with .9 file design: draw9patch.bat.
Important note: The .9 files show the borders ONLY when de-compiled. If you grab a file from the framework directly you will not see that line. It is therefore required to compile the .9 files after you make them. You can use apk manager or ThemePro-JAVA to recompile the framework apk after modifying the files.
Definitions for which image is used where sit in the xml files under the drawable folder. These are compiled xml files, you can’t edit them with a text editor. For this introduction I will not go into modifying xml files. Each apk also has a resources file that describes what is in there. If you add, remove, or rename files in the apk you will have discrepancy with the resource file and the theme will not work (more likely you will be stuck in an infinite bootup loop)
Before you start:
Warning: frameworks are highly linked with other files. You can’t just take a framework from one ROM and put it in another. Always keep a backup of the original files ready to be installed (see below), otherwise you may need to re-flash the ROM. Frameworks are also sensitive to compression. DO NOT use winzip to handle the files, it can cause problems with the final apk file.
There are several things you would need before you start
A rooted phone
SDK installed on the computer
A zip handling software other than winzip (winRAR and 7-zip are both good options)
Auto-sign (http://forum.xda-developers.com/showthread.php?t=471634) or signing tool (http://forum.xda-developers.com/showthread.php?t=473580)
Create a backup
Grab the framewor
k-res.apk and twframework-res.apk from your phone. They are located in the system/framework folder. You would need them as a starting point for your modification and you need them for a backup
Create a clockwork installation file of the original files (see post below)
Name the installation framework-original.zip, or something else that would be easily recognized in
case of trouble, and then copy it to your internal sd card.
After you are done modifying files
Create an installation file (see post below)
Give the file a name that is easy to recognize and copy it to your internal sd card
Reboot into recovery
Select install zip from card -> choose zip from sdcard
Select the installation of the new framework and confirm the installation
Reboot
If you are stuck in an infinite boot-up cycle
Take the battery out
Using 3-key combination boot into recovery (up-down volume + power. Hold until the AT&T screen cycles back, then release)
Install your original framework backup and reboot
Creating clockwork installation
After you have finished modifying the files, the best way to get them to the phone is through clockwork installation. Make sure that you have the original update.zip file on the sdcard. If you have a rooted phone, you probably have that already, but if not you can install ROM manager from the market and run it to get the update in place.
To create the installation file follow these steps:
Create a folder \framework
Place your modified framework files in that folder
Back in the main folder, create the following folder tree: \META-INF\com\google\android
In the android folder create a text file named update-script
WARNING: Do not name your framework file "update.zip"! You need both the original update.zip and the framework one for the installation.
Note: Although copying of the framework files may be possible, it is highly risky. In my experience installation from clockwork is the easiest
Puzzle Lock Screen Mod
Here is information for people who want to modify the look of the puzzle lock screen. It is only the list of images to replace, not the coding to change functionality.
The files sit in framework-res.apk under res\drawable-hdpi. The files are zzz_unlock_puzzle...
puzzle pieces
zzz_unlock_puzzle_noti_icon_call.png : Missed call piece in the floating state
zzz_unlock_puzzle_noti_icon_call_fit.png : Missed call when it gets to the unlock spot
zzz_unlock_puzzle_noti_icon_unlock.png : General unlock floating
zzz_unlock_puzzle_noti_icon_unlock_fit.png : General unlock at the unlock spot
Same for messages and voicemail.
Background
zzz_unlock_puzzle_bg.png : The image that shows on the lock screen. This should be semi-transparent if you want to show the regular screen background
zzz_unlock_puzzle_bg_pressed.png : Image that shows while dragging the puzzle pieces. Usually a slight modification of the regular background
zzz_unlock_puzzle_bg_land.png : The landscape version
Music player
zzz_unlock_disk... and zzz_unlock_ctr_pr... are the files related to the player.
zzz_unlock_ctr_bg.9.png is the background for the music controls
Text background
Overlaying the unlock image is text. That text can have background that is more opaque than the rest of the unlock screen.
The attached image shows the three regions. These regions also apply to the glass unlock.
Note: These are .9 files and should be done right to ensure correct stretching and text boundries.
Other files
There are some extra background files in the frameworks but I haven't been able to find where they go. There are also some files to control the clock numbers zzz_unlock_clock_...
Working with APK manager
What is APK manager?
APK manager is a tool for decompiling / recompiling apk files. If you want to change anything other than images, it is a must have.
The basics
The basic flow when using APK manager is
Place apk file in place-apk-here-for-modding folder
run the Script.bat file
Type 22 and select the file you want to work with
Type 9 and wait for it to finish decompiling
Modify the items you want modified (they will be in the projects folder)
type 11 to recompile
Sounds easy? It is, and it isn't. There are several places where things can go wrong. Here are a few of the things to watch for:
Bad starting file
This is mostly true for framework files that went through several cycles of modifications. The framework is forgiving to having extra items, or having bad .9 images (see post above about .9 images). Some people may have replaced images without recompiling the framework in a way that breaks internal links. If this happens you will very likely see error messages during the decompile stage. If that happens check the log file and correct things. One of the most common errors is .9 files replaced with regular images. See this post for how to solve this.
Things may not always be "fixable", so the best approach is to get the original framework that is the base for the one you need. Having a clean start can save a lot of headaches later on.
Overwriting your changes
When you recompile, assuming everything worked ok, you are prompted if this is a system file. Most likely you want to say yes. This ensures that the original signature is copied over. You will also be prompted if you want to copy some files over from the original. BE CAREFUL!. There are people who say you reduce the risk of errors if you copy things that didn't change. Personally, if I changed anything that required recompilation (mostly added new images or modified xml files) I always choose not to copy extra files. If you do choose to copy some files over, pay attention to the next step. Do not hit any key until you remove the modified files. You will need to go to the newly created "keep" folder (in the top apk manager directory) and remove any image that you changed and any xml that you modified. Also, if you modified xml files to add new images you need to delete "resources.arsc".
Failed rebuild
APK manager is trying to minimize work by only compiling newly changed items. If you built an apk and realized you have an error, or want to add more changes, I recommend removing the cached build. Go to the projects folder and delete the "build" folder. I've had cases where the new items didn't catch.
Removed items
I highly recommend to leave icons that you do not need. I've had occasions where I removed things that I thought had no more reference, but then ended with endless boot-loops. For example, if you modify the xml to only show 6 out of the 101 battery charge animations, leave the remaining icons in your project.
If you're stuck
Look at the log file. That would usually give you an answer. Also, if you are working on a recent GB ROM you probably need to get the beta 5 version. Version 4.9 will have problems compiling the newer files.
Thanks for the info!!! I have been wanting to play with themes for a while. Now I gots the knowledge.
sent from my Cap using the app.
Thanks for this post...I'll be looking into this for sure.
tsachi said:
After you have finished modifying the files, the best way to get them to the phone is through clockwork installation. Make sure that you have the original update.zip file on the sdcard. If you have a rooted phone, you probably have that already, but if not you can install ROM manager from the market and run it to get the update in place.
To create the installation file follow these steps:
Create a folder \framework
Place your modified framework files in that folder
Back in the main folder, create the following folder tree: \META-INF\com\google\android
In the android folder create a text file named update-script
WARNING: Do not name your framework file "update.zip"! You need both the original update.zip and the framework one for the installation.
Note: Although copying of the framework files may be possible, it is highly risky. In my experience installation from clockwork is the easiest
Click to expand...
Click to collapse
Thanks for this.. Question In #4 above the text file in the android folder. Is that an empty file? no extension? Thanks for your help.
TorqueWrench001 said:
Thanks for this.. Question In #4 above the text file in the android folder. Is that an empty file? no extension? Thanks for your help.
Click to expand...
Click to collapse
The file has no extension but it isn't empty. It contains the installation instructions. Typical instructions would be:
copy_dir PACKAGE:framework SYSTEM:framework
which copies everything in the frameworks folder in the zip file to the system/framework folder on the phone
Sent from a captivate running phoenix using XDA app
https://docs.google.com/Doc?docid=0AcdxIJRSH9ypZGZzc2pxNDlfMjdnazk4OHNxZA&hl=en
http://forum.xda-developers.com/showthread.php?t=916814
Good info
Thanks, been wanting to play with themes for a while now!!!!!
This needs a bump for all those requesting themes to be made.
This needs to be a sticky. I detailed guide is just what was needed. I been wanting to play around with themes but always end up doing something stupid so it never works. Now I have some more knowledge and hopefully can avoid that mistake.
Thank you, one of the links has the info I need to fix my text color issue in my notification/menu window!
Sent from a phone using an app.
Why it's not pinned it's beyond me. We have a thread pinned for must have apps that aren't even must have apps, but not this.
That was do to some how me missing this thread for the post few months. It is corrected now. Stuck
Since the thread is getting more life, I just added info on lock screen (fourth post)
Sent from my captivate running the latest firefly
Resorce dump
Well now that this is not going to fall to the depths of page 500, ill unload some rubbish into it.
http://android.modaco.com/content/zte-blade-themes-and-design-customisation/328510/guide-theme-editing-and-related-things/
http://forum.xda-developers.com/showpost.php?p=9066440&postcount=1
http://forum.xda-developers.com/showthread.php?t=593932
http://forum.xda-developers.com/showthread.php?t=695701
http://forum.xda-developers.com/showpost.php?p=8105110&postcount=2
http://developerlife.com/tutorials/?p=309
http://www.droidforums.net/forum/team-inversion-conversion/116419-so-you-want-edit-xmls-more-adb-apk-manager-how-basics.html
http://www.colorschemer.com/online.html
http://www.colorsontheweb.com/colorwizard.asp
Edit: I purposefully did not include descriptions in the links. If you dont know what your doing reading all but the last two links in there entirety will help get you on your way.
whiteguypl said:
Well now that this is not going to fall to the depths of page 500, ill unload some rubbish into it.
http://android.modaco.com/content/zte-blade-themes-and-design-customisation/328510/guide-theme-editing-and-related-things/
http://forum.xda-developers.com/showpost.php?p=9066440&postcount=1
http://forum.xda-developers.com/showthread.php?t=593932
http://forum.xda-developers.com/showthread.php?t=695701
http://forum.xda-developers.com/showpost.php?p=8105110&postcount=2
http://developerlife.com/tutorials/?p=309
http://www.droidforums.net/forum/team-inversion-conversion/116419-so-you-want-edit-xmls-more-adb-apk-manager-how-basics.html
http://www.colorschemer.com/online.html
http://www.colorsontheweb.com/colorwizard.asp
Edit: I purposefully did not include descriptions in the links. If you dont know what your doing reading all but the last two links in there entirety will help get you on your way.
Click to expand...
Click to collapse
Very nice, I will add these to OP with details about each link.
I'm quite happy that this has been pinned finally. Now to get to work. I haven't decided on which ROM I want to do, or even if I wanna port another theme or make my own. SO MANY CHOICES!!

[GUIDE] A n00b guide to porting themes :P (26/12/11)

Hello A little while ago I managed to learn how to theme totally from scratch. I knew nothing of anything before I started, but now I know how to port themes As I still see myself as a n00b there may be some weird things I've done, but at least I manage to create the themes This might not be the best way to theme, or the easiest, but it works
Overview PNGS
1) Getting the files
2) Getting the images
3) Port
4) Package and Sign
The only programs I've used is 7zip and autosigner download them and install 7zip and extract autosigner to a nice location for example your desktop
Getting the files
The first you need to do (after getting the programs) is to find the file you will mod (edit). This will mostly be the framework-res.apk because this decides most of looks of phone (for example the statusbar). Download the .zip of the rom your going to theme. Open it up (shouldn't require any programs, if does, use 7zip: either drag it onto the 7zip icon or right click and choose open with). Open system -> app and copy the framework-res.apk (or any other apk you would like to theme, for example the settings). Now paste it into an appropriate folder.
Getting the images
Now you need to find the images you want to use in your new theme. Find either an update.zip with a theme or an .apk with a theme chooser theme (if there is both a version for Froyo and GB, use the Froyo version as this will make it easier ) Open it up with 7zip (drag it into the 7zip icon). Now you can do either of two options:
1) You can take the whole drawable-mdpi folder and copy it out. You should probably don’t do this with a Themechooser apk, as they usually don’t have all icons in this folder, as they often lend a few from HDPI.
2) Take only the images you want and copy them to a folder. For example if you want the signal icons, copy the “stat_sys_signal_0” (-4 of course) and copy them out. If you want the statusbar background, copy “statusbar_background”. This way you can mix several themes, take the best of several themes and make your personal theme
When you’re done getting your icons, close the window.
Porting
Now open the Rom’s default framework-res.apk with 7-zip. If you’re going to port a whole theme, delete the /res/drawable-mdpi folder and copy in your own. If you’re going to port just a few icons, open the /res/drawable-mdpi folder and paste your icons. You might want to check if the icons have the same names in the different framework. For example the headset icons can be both “stat_sys_headset” and “stat_notify_headset”. Also if you port from a theme chooser theme, you will have to rename every single .png you port. This is really boring, but necessary. You need to remove the “framework_res” and the “android_systemui” from the beginning of all the names. So “framework_res_activity_title_bar.9.png” needs to be changed to “activity_title_bar.9.png”. Because this is so boring you better keep your renamed icons, so it’s easier to port it to another rom
This is kind of off-topic: my carrier lends network of another carrier. Therefor my phone is allways roaming. This puts a stupid “r” with my signal icons. To avoid this I allways take normal signal icons, copy them, and rename one of the two .pngs from for example “stat_sys_signal_1” to “stat_sys_r_signal_1”. This way I get rid of this stupid “r” and it will always show the normal icons
Packing and signing
Now the porting is done and the next job is to push the new framework to your phone. If you are familiar with adb, you can push it to system/framework on your phone. You don’t need to anything more with the apk before pushing it. Else you can create a flashable .zip for your theme. I’ve attached a .zip with update script (I haven’t created it. Just stole it from one of Elelinux’ add-ons ). Download the zip. Create a folder named system and a folder named framework. First drag the new, modded framework_res.apk to the framework folder, then drag the framework folder into the system folder, before you drag the system folder into the attached zip. If you use Clockworkmod recovery, you can just flash the zip right as it is, but if you use Amon_Ra or want it to be compatible with every recovery because you want to post it, you need to do something.
Unpack autosigner and launch the exe file inside. Drag the .zip into the new window and press sign. It will now appear a new file in the same folder as the file you wanted to sign. Its name is the same, but with “_signed” at the end. You can rename the file as you wish both before and after the signing.
XML Editing:
I decided to add a little section about XML editing as well I really don't know all about this myself, but i can tell how to set it up and some examples to what you can do Even though this may seem really complicated, it's not written in a completely different language, like Java in the smali files, so often it is possible to use logic to get what you want
Tools needed: APK Multi-tool. as well as Java, if you don't have it installed.
Overview:
1) Setting up
2) Examples
3) Finish
Settings up
Download APK Multi-tool and extract/ unzip it to wherever you want ( I have it on my desktop). Now you can place the apk you want to modify (usually the framework_res.apk) in the "Place_apk_for_modding" folder. Then you open the script. If you don't get an error, proceed to b), if you do get an error proceed to a)
a)) If you do get an error where it says something like "java not found" you need to correct the Java path (or install Java if you haven't done that, which you should have) . I had to do this to get it working. First open my computer and click disk C, or D if you have installed Java there. Open programfiles (or whatever it's called in your language) and scroll to the Java folder. Now open the folder there jdk folder or whatever you have there and open the "bin" folder. Look at the top of your window, where it says where on you're computer you are (like Windows: C to the left, and then Programfiles and so on). Right click it and click copy address. Mine is "C:\Program Files\Java\jdk1.7.0_01\bin . Now you can close the window.
Open "My computer" again. On the top bar below the navigationbar, click Sytemoptions (sorry, not really sure what it's called in Englsih, as my computer is Norwegian, please correct me if I'm wrong). On the left click the "advanced" link and in the popup that appears click "environment variables". Scroll down to the "path" variable and edit it. Paste the address you copied and click OK. You should now be able to proceed to b). If you still get an error, please tell me and I'll try to help
b) type 25 and press enter to select current project. Here you will see all the apks in the "Place_apk_for_modding" folder. Select the appropriate number (in this case probably 1) and press enter to continue. Then you hit 9 and enter to decompile it. I cannot really explain it, but it enables you to edit the xmls in the apk. If you try to edit them by using 7Zip, the xmls will be just messed up. When it's done decompiling, you have gotten a new folder in the "projects" folder. In this case it is probably named framework_res.apk. Minimize the script (DON'T CLOSE IT) and you're ready to edit the xmls
Examples on edits:
COMING SOON
Finish:
When you're done editing, open the script again (remember what I said about not closing it? ). Click 11, unless you are editing a non system apk. If you are editing the framework or settings or such, use 11. If you get an error now, you have probably done something wrong, try to see in the log what you have done wrong. Every time I've had an error, I've ended up in bootloop when I've flashed, so it is probably better to just start over. Another tip is to do one thing at the time. For example: you decompile, edit the notification color in pulldown, compile. Take the compiled apk, decompile edit another thing and so on, this makes it easier to not mess up and it also shows what you are doing wrong.
On the "Is this a system apk?" you should probably say y, as I said above. I also usually copy over the files I didn't edit, as this seems safer. Follow the instructions and you should be fine. When you're done and the script is done compiling, you will find a unsigned_**** (for example unsigned_framework-res.apk) in the "place_apk_for_modding" folder. This is your modified apk, and you can try to push it to ur device with an update.zip or adb, if you know how to use that
Well this was the end of my guide for now If there's anything which is unclear or you have other suggestions, feel free to post I've probably forgotten something
Finally after all my attemps to modify the android framework before i have do it correctly. I have changed a couple of things, the lock screen and battery icons so far. The framework I'm modifying is the one on Ele's Gingerbread and i wonder how to get the battery icon percentage 1 by 1 as i saw in some other themes. What i mean is that in the original framework there is only battery icons for 15, 20, 25 and so on, and if i push the 16, 17, 18, 19 they won't work. Is Theme Chooser the one on charge of this? how can i get that? some help please?
(Also tryed to theme a sense rom, but everything was messed up, i guess because of sense or maybe I did something wrong)
So thanks for your guide, really helpfull
Yeah, I've never tried to theme Sense so I don't know. It is probably possible to make icons for every %, but then you'll have to decompile using APK tool, and it is harder. I don't know how. If you want to try, you could try asking a question here
thanks
so funny=))
i'm tried
Great guide helped me a lo thx.
Finally, someone who CAN explain it...
I'm now porting ICS to GB (no cm7), cause I think CM sucks.
mDroidd said:
Finally, someone who CAN explain it...
I'm now porting ICS to GB (no cm7), cause I think CM sucks.
Click to expand...
Click to collapse
Hmm, ICS themes can be made really awesome, if you do some more advanced stuff. For example you want to remap the pulldownbar a bit, and change som text colors. But to do this you need to use a tool like APK multi-tool, and it is a bit more advanced. If you want to, I can create a new section where I show how to this
Thank you.
GUIDE UPDATED! Added a section about XML editing really quick, probably forgotten something and such, so just ask if there is something you don't understand This is for those who are getting used to the PNG editing and want to proceed to something slightly more advanced, for example you 7Tosta
Cheers
BTW: I should've reserved the 2nd post, this is getting messy
Edit: If there's anything specific you want me to add to the EXAMPLES section, tell me

Categories

Resources