Post Reply

[HOW TO] Manuals for creating a theme

OP Mikey

16th January 2009, 01:59 AM   |  #1  
Mikey's Avatar
OP Retired Senior Moderator
Flag Chicago
Thanks Meter: 1,028
 
5,475 posts
Join Date:Joined: Oct 2007
Donate to Me
More
In the following 3 manuals, you will be shown/told how too create a theme.
Thank you to the authors.
Most of all to
Stericson
for he is the first to figure out HOW to create a theme for your phones.
Thank You Again

Restore your G1 back to it's original theme and fonts!
Last edited by Mikey; 9th August 2010 at 03:23 PM.
The Following User Says Thank You to Mikey For This Useful Post: [ View ]
16th January 2009, 02:04 AM   |  #2  
Stericson's Avatar
Retired Senior Mod / Senior Recognized Developer - Godfather of Android Theming
Thanks Meter: 382
 
1,193 posts
Join Date:Joined: Nov 2008
To create themes, or to edit themes to your liking, you will need a working knowledge of android, adb, how to resign apk's, knowledge of your own O/S.


Things you will need:

The rom you intent to create a theme for... Now a days there are so many to choose from so none of this will be rom specific.

You will also want to get the latest and greatest bootloader installed on your phone and to HIGHLY suggest everyone trying your theme to install it as well.

You'll find this on Android Development

You will also need the latest SDK and java:

Link to Java: http://java.sun.com/javase/downloads/index.jsp

Downloading SDK: http://code.google.com/android/intro/installing.html

You can also use any zipping archive to extract files from and to the update.zips. I believe there are links below to some of these.

Very Important!
You do not usually need to resign every apk that you change! Usually you only need to resign the update.zip! However there may be times that you may need to resign an apk. So dont sign the apks...if you have problems with the update then try to resign the apks.


JesusFreke was kind enough to build a custom signing tool for me that would allow me to right click on an apk and resign it from there. I am posting it here for others to use as well. Note that this is a courtesy of JF, so thank him for it. I cannot stress how much time this has saved me and will save you.


Automatic version!


Do not use this to sign APK files in Vista or windows 7! It will cause your theme to loop phones when placed on a device. Only use this to sign update files if your using those O/S's


Note, this will not work if your SDK or the path that you place this in has any spaces in the dir name!
An Example of this is c:\users\Nikki and Stephen\sdk\tools
Try to put the SDK and the contents of the zip in a dir where the names are all together and not like the one above.


I have made a batch file that will automate the entire process of setting up to use the signing tool made by JF. This batch file will set the CLASSPATH, set the PATH, install the registries, and will even allow you to sign files manually if you wish. I plan on building onto this batch file to include other things. However, for the moment, it will only include what you see here.

In order to use this you should have downloaded the sdk already. Simply extract all of the files into the tools dir of your sdk, and run autosign.bat follow the instructions and go through the options one by one, starting with 1 working through 4. You can however, put the contents of this zip anywhere on your computer and it will work. It is just better to put them into the tools dir of your SDK. Especially for the consideration of future versions.

Autosign .zip: https://docs.google.com/leaf?id=0B5A...lMWNj&hl=en_US

Want to set up the signing tool manually?

Before using this you need to know how to set this up:

Now you will need to add the tools dir of your sdk to the environment variable CLASSPATH.

FOR XP:

Right click on My Computer click properties, then choose the tab that says advanced.
Click the button that says environmental variables.
Go to system variables find the one that says CLASSPATH
double click it
go to the end of variable value.
There should be a semicolon ; at the end, type in the path to the testsign.jar located in the tools directory of your SDK

for example the path to my testsign.jar was c:\sdk\android-sdk-windows-1.0_r1\tools\testsign.jar

If CLASSPATH is not in your system variables then create it.
Secondly, Find the system variable called PATH and add to the end of it, the full path to your sdk directory.

For example, mine was c:\sdk\android-sdk-windows-1.0_r2\tools

FOR VISTA:

Open a cmd prompt.

Replace THEEXACTPATHTO-TESTSIGN with the path to the dir that holds the file testsign.jar.


Type:
echo %CLASSPATH%

If it is returns %CLASSPATH%
Type the following:
set CLASSPATH=THEXACTPATHTO-TESTSIGN\testsign.jar


If it comes back with something else then
Type the following:
set CLASSPATH=%CLASSPATH%;.;THEXACTPATHTO-TESTSIGN\testsign.jar


For Example, when I type this it looks like:
set CLASSPATH=%CLASSPATH%;.;c:\Android\SDK\tools\tests ign.jar

To set the PATH

Replace THEEXACTPATHTO-SDK with the path to the tools dir of your SDK.

Now type:

set PATH=%PATH%;.;THEXACTPATHTO-SDK\tools


For example, when I type this out it looks like this:

path-%PATH%;.;c:\Android\SDK\tools


Now through doing this you have done two things, first off you have made the resigning process extremely easy, secondly you will not have to cd to the tools dir of the sdk to use adb or any other tool in the sdk.


Signing the Files:

Now right click the reg file that you extracted and choose to install it, or merge.

Now, right click an apk, do you see an option that says ResignApk? That's how you will resign your .apks and .zips.

When you choose it a cmd window should open for a few seconds and then close. the file you signed will be overwritten with the new resigned file.

If you find the right click menu not working for some reason you can type the following in cmd to sign your files: java testsign whateverfiletosign


General Info:


You will need to be specific in addressing what version your theme is for, RC8, RC30, or ADP1. Make sure you test the update.zip before you release it.


Every .apk contains the images relating to itself. However, every apk has the ability to use the images in framework-res.apk. The images for every apk is located inside of itself. To find these images open up the apk, you can rename it to .zip or open it with an archiver of your choice, winrar, winace, etc. Then after opening the apk open the folder called res and inside of that there are folders that are named Drawable, drawable-land, drawable-port, etc. This is where the images are stored.

There are some things you cannot edit unless you rebuild the entire apk from source, which we will not go into here.(another tutorial, another time) Just know that at this time you SHOULD NOT edit, or even open images with the extension .9.png doing so will corrupt the .9.png and cause the image to distort. You can however compile the images with eclipse.

Editing .9.png's - http://forum.xda-developers.com/showthread.php?t=487001

Be aware, messing with .9.png's can cause problems if they are not done correctly.

If your going to build your own update.zip from scratch:

To simplify this process for you though, most rom devs provide a theme template with their roms now. You can also download someone elses theme and use their files, since they are resigned already. It may also be easier to see what files do what and go where since they have already been edited and are easy to point out.

Now, your ready to start changing things up.

You will now need to open the apk, which you can do by adding .zip after .apk, effectively changing it to a zip. or you can use your favorite archive opener.

I dont use the archive process because it can lead to very aggravating problems such as things not getting signed correctly and have heard reports of it interfering with the signing tool above. Anyways I just add zip and it works great for me.

For those renaming the .apk's to .zips

Note that if you are using windows you will need to unhide known file extension types. you can also use your favorite archiver such as winrar, winzip, etc.

See here to unhide known file extension types for Xp: http://www.mediacollege.com/microsof...on-change.html

See here to unhide file extension types for Vista: http://maximumpcguides.com/windows-v...ile-extension/


Tips:

After opening the apk copy the folder called res.
Go to your desktop, or wherever, create a new folder called Images, or whatever.
Open the folder, paste the res in there.
Now you can see what the files look like without opening them, by using thumbnails to see what they are.
Btw, you may also want to add -frame, or -launcher, to the end of the res folder you copy over to keep them separated from others.

Almost Done


So now your theme is done and your ready to make an update.zip for others to install your theme.

Update script

The update script is in a Unix format, while you do not need linux you must save it in a Unix format. I suggest using Textpad to edit this script and saving it in the Unix format.

Link to Textpad: ftp://download.textpad.com/pub/textpad5.2/txpeng520.exe

XML Edits

I have provided some additional support for the process of hex editing xml files to change things like text color, size, and more things not easily changeable.

You can find this thread here: http://forum.xda-developers.com/showthread.php?t=479019

Final Notes:
Last edited by Stericson; 28th June 2011 at 10:11 PM.
The Following 5 Users Say Thank You to Stericson For This Useful Post: [ View ]
16th January 2009, 02:04 AM   |  #3  
Stericson's Avatar
Retired Senior Mod / Senior Recognized Developer - Godfather of Android Theming
Thanks Meter: 382
 
1,193 posts
Join Date:Joined: Nov 2008
Editing market apps

With market apps, if you make changes you usually need to make sure you dont resign their apk because you will overwrite their signature keys with the test keys.

If anyone has any questions please try asking for help in this thread before emailing me for help Usually I will respond to questions in this forum.

I hope this Tutorial has been helpful. I will add on to it as needed.

Any questions can be directed to me at Stericson.G1@gmail.com

Stericson

Links of interest:


Using ADB: http://code.google.com/android/reference/adb.html
Last edited by Stericson; 4th August 2009 at 12:18 AM.
18th January 2009, 05:18 AM   |  #4  
Dave Da illest 1's Avatar
Senior Member
Flag New York City
Thanks Meter: 3
 
110 posts
Join Date:Joined: Dec 2008
More
How To Theme Develop for Windows For Dummies in 10 easy steps (( no your really not a dummy its just an easy name for a how to lol))

well i'm going to give this a shot in the dark on how to create this how to be as easy as possible

1st

download these files if you don't already have them

JAVA
http://java.sun.com/javase/downloads/index.jsp

download the JDK

Winrar

http://rarlabs.com/rar/wrar380.exe

and Auto-sign.zip

http://www.mediafire.com/download.php?uwzjjydnm2r


2nd
Download my included Auto-sign files.
what it contains.
the Test keys file..
and an update.zip file
and a batch file i created called auto-sign to make things easier to sign

3rd
after you have downloaded my Auto-sign
then you extract it to where ever you want.

4th.
use the update.zip included if your a Beginner it includes my windows 7 theme .. i edit so many files that it's easier to tell what does what and whats goiing to go where. now open that zip file DON'T EXTRACT just open it using winrar..

5th

When it is open go to Framework.. and open Framework-res.apk
NOW IF THE APK. POPS UP AND SAYS IT CANT OPEN BLAH BLAH SELECT A PROGRAM AND THEN SELECT WINRAR.

6th
Once you open Framework-res.apk KEEP THIS WINDOW AND UPDATE.ZIP WINDOW OPEN!!

then just extract the whole Res Folder to where ever you like this makes it easier to see what files you wish to edit.. most of the files will be in the folder called Drawable

7th

open up your favorite photo editor .. i use photoshop along with 90% of the people who Graphic Design... Edit your pictures Remember a file with a .9 can mess up your phone so edit those carefully.. and save what ever pictures you have

8th

Now drag the whole Res Folder .. back into the Framework-res.apk

now your update.zip file is going to say files has been changed to framework-res blah blah do you wish to save it . click yes .. now your framework has been updated you can close everything out

9th

go to the Auto-sign folder.. and open Auto-sign this will now sign your update.zip .. and rename it to update_sign.zip .. now just delete your old update.zip.. rename update_signed.zip to update.zip

10th

put it on the root of your memory card.. reset using green call + menu + end
then hold home and end .. until the recovery mode shows up .. then press Alt+S and hope your device isn't bricked


Disclaimers

I'm not responsible if your brick your device.. but i will help to the best of my abilty and if i can't help i'm sure XDA will

i don't sign every file in my update.zip i just sign update.zip .. and hey it works lol..


For ADP or RC 8 versions .. just download your favortie ADP theme or RC 8

put it in the Auto-sign folder.. and rename it to update.zip if it isn't already then just follow my steps
18th January 2009, 04:48 PM   |  #5  
damnitpud's Avatar
Senior Member
Flag RI
Thanks Meter: 6
 
475 posts
Join Date:Joined: Jul 2007
More
ToDo:

1. Explain about the files that make up themes
a. Explain update.zip and folder structure
b. Explain about pngs and apks
2. Explain the tools
a. WinRaR
b. Auto-sign
c. Java JRE and JDK
d. Draw9patch tool
e. Editing tool
3. Setting up your phone for themes
a. Choosing which JF firmware to use
b. Using the Eng Boot Loader and why
4. Explain the process to get the files
5. Explain which files to edit
6. Explain how to import modified files
7. Explain about auto-sign and how to use it - I am building a program that will making signing files easier. check it out as i build it! here


1. When you download a theme it comes in the form of an update.zip file. Basically the same as the full update looks, but it is a watered down version. All of the operating system, boot loader and radio files have been removed.
a. If you check the file size of JF’s RC30 1.31 and compare it to any of the themes, you will notice that the theme file is about a 3rd the size. JF’s update.zip contains data, META-INF and system folders it also contains a boot.img file. Where as a theme update.zip contains app, framework and META-INF folders. The theme update.zip only contains the folders and files that are necessary for changing the Android theme. If you were to dig deeper into JF’s RC30 1.31 update.zip you will find the folders that are in the theme’s update.zip. For example, double click the system folder and you will see 11 folders and 2 files. The only ones we are concerned about are app and framework. So when you flash a theme it doesn’t bother rewriting all of the OS and boot loader, but only the app and framework folders.
b. Inside the app and framework folders are apk files, apk files are like zip files or containers. There are many folders and files inside the update.zip but we are only going to cover a few for now.

(app folder) - This folder contains all of the apps that will be installed during an update or wipe. You will need to extract only the apks of the apps you wish to change the icon and graphics for.
(Launcher.apk) - This file is in the app folder and contains the menu launcher tab, clock, Google search widget, wallpapers and a few other things.
(framework) - This folder contains framework-res.apk, this is where the bulk of your editing will take place.

When you open a apk you will see:
(assets) - This will contain images, sounds and other content used by the programs. Not always used!
(META-INF) - This contains the encryption data for the update.zip.
(res) - This folder contains all of the png and xml files. The xml files are used to format the UI, these can be used to change the locations of things on the screen. They need to be unencrypted first.

Depending on the apk there can be a bunch of folders under the res folder but we will only concentrate on the drawable ones.
-drawable - The png files in this folder are displayed wheather the keyboard is open or closed. The majority of the files are here.
-drawable-land - These are the files that will show when the keyboard is open. There won't be as many files in these folders. Most of the time the programmer will re-organize the layout with an xml file.

Basically the interface of Android is a bunch of pictures; the programmer links these to certain actions. As someone making themes you do not have to worry about any programming, in the future when people start unlocking the xml files to change the way things look. Then you will have to learn some basic programming, but for now we will only talk about changing the picture files.

2. The tools you use for creating themes are very basic and you might already have 3 out of 4 installed.
a. WinRaR is a must have for everyone, it allows you to create and open compressed files (i.e. Zips, RaRs and about 25 other file types) It would best if you associate WinRaR with zips and apks, the zips can be associated during the install of WinRaR. To associate apks you can right click on an apk and choose “Open With…” make sure to check off the box that says “Always use this program to open this kind of file”
b. Auto-Sign was released by Dave da illest 1, to make signing the apks and update.zip an easier process. Before you can flash an update or theme the phone checks to make sure the update.zip is signed by google or by JesusFreake. I will explain this more in Section 3.
c. Android apps are built on Java, hence the need for JRE and JDK, You will not be working directly with these apps but part of the signing process uses Java. You can get both files here: http://java.sun.com/javase/downloads/index.jsp you will want to grab the first and second downloads.
d. The draw9Patch tool comes with the Android SDK, it is located in the tools folder. This tool is used to edit stretchable images. There is still a lot of research that needs to be done on using this tool. So for now let’s just say do not touch any files with .9.png as an extension. Dave da illest 1 has changed a few of these .9.png files without issue so maybe we can get him to explain them better. I have also edited some of these files but it made some of the images stretch weirdly.
e. I am not sure what other photo editors you can use, but everyone I have spoken to about modding the theme uses Adobe Photoshop. I am sure you can use other programs. But I am not aware of any at the time of this writing.

3. Before changing the theme on your phone you will need to gain root access which is explain here: http://forum.xda-developers.com/showthread.php?t=442480
a. As you look through all of the different themes, you will notice some say they are for RC30, RC8 or ADP1.
i. RC30 – Is the US version
ii. RC8 – is the UK version
iii. ADP1 – Stands for Android Developers Phone and was produced for programmers. This version is completely unlocked and does not have any of T-Mobile’s software or locks.
b. So your phone is rooted and you’re wondering why you should have the engineering boot loader. Well one reason is because of the 3 Androids on skateboards, the other reason is if your phone bricks during a flash you can fully recover your OS with the fastboot option. More about this can be found here: http://forum.xda-developers.com/showthread.php?t=455860

4. You have a few options here, you can either get the files from RC30 update.zip, one of the other theme’s update.zip or you can use the themes template at the bottom of this thread. All 3 methods you will need to open the update.zip go into the framework folder (if you get it from RC30 you will need to go into system\framework) Extract the framework-res.apk to a folder of your choosing. Most of your editing will take place on the files from this apk. When you are looking at these files in Windows explorer it is best to change the view to Thumbnails and look at all of the images and see if you can figure out where they are placed on your phone’s screen.

::TIP1:: Your best bet is to create a Themes folder on your desktop or in My Documents, somewhere simple to find. You will be dealing with a lot of files and it can get very confusing quickly.

The other file you will want to change is Launcher.apk; this file is in the app folder and contains the menu launcher tab, clock, Google search widget, wallpapers and some other things.

::TIP2:: When you open Launcher.apk from inside the update.zip file, WinRaR may default to a temp folder...(i.e. C:\Documents and Settings\bobbyd\Local Settings\Temp\Rar$DI71.579\framework-res) double check the location of where WinRaR wants to extract the files, this is how I ended up flashing the original files after spending a decent amount of time photoshopping.

5. Now the only files you will want to edit are png image files. There are also xml files, they are used to format the UI, you can change the locations of things on the screen but the xmls need to be unencrypted before you can edit them. I have not done this process yet and will update more information later.

6. Importing the files is very simple, as long as you know the layout of the update.zip. Once you have edited all of the files you plan to or just want to test to see how your theme looks. Open the update.zip in WinRaR and go to the location of the files (i.e. Say you changed the 3G icons, you would go to the framework folder and double click on framework-res.apk. This will open another WinRaR window, open Windows Explorer where your edited files are and hold the Ctrl key while clicking the files you want to copy. Now drag them onto the open WinRaR window from the framework-res.apk. When it asks to replace the files choose “Yes” or Yes to All”. Close that WinRaR window and the one from update.zip will tell you “Files have changed would you like to save this file now” click “Yes” again and now your update.zip will contain your modified files.

7. Download and install Stericson's auto-signing tool here.


I have been slacking on this guide, I will update soon again.
Last edited by damnitpud; 5th February 2009 at 05:19 PM.
17th February 2009, 07:23 PM   |  #6  
brandenk's Avatar
Senior Member
Flag San Diego
Thanks Meter: 62
 
1,132 posts
Join Date:Joined: Aug 2007
More
[HOW TO] Easy steps for creating a theme
I know there are a million and 1 walkthroughs on here for creating themes but after doing it for a while I have really refined my process and made it as easy as possible. Im just hoping to clear up some of the confusion so after you know how to sign your files you will know how to finish making them into your own custom theme.

First you need to get signing setup properly. This topic is covered in many places and my recommendation is to use the Stericson walkthrough or the Stericson auto-signing setup tool. Once you can click on any zip or apk file and get the option to Resign it you are ready to proceed with making your own theme.

1. Download an archive manager that allows you to open archives inside of archives without creating new windows. My recommendation for this is the application 7-zip. It is tiny, free, easy to use, and on all my computers it has replaced winzip and winrar.

2. Now take a blank theme from Stericson to use as your starting point, in my case I use the ADP1.1h version since I am building for JFv1.43 which uses ADP1.1h this will be the minimum needed to change your theme and will contain all the original artwork.

3. Open the update.zip and inside are typically 3 files, framework, system or app, and META-INF. Leave META-INF alone, you wont be touching that. Inside framework and system/app is where the files are that you can change. In this case we will open update.zip, then double click framework and then double click framework-res.apk (this is where the next archive will open inside the same window, your life just got a little easier).

4. Now you are looking at assets, META-INF, res, and a couple other random files, the resources.arsc can be edited but I will show you that in another tutorial. Now open up the folder res and you will see the treasure we are searching for, folders with the name drawable. All of the folders that start with the name drawable are where we can edit the themes, this includes drawable, drawable-land, drawable-port, and drawable-finger.

5. Now drag and drop the folders drawable and drawable-land onto the desktop. Once they are on the desktop you can edit the .png files in those folders until you are ready to put your theme together.

6. Now in your still open window at \framework\framework-res.apk\res\ you will open the drawable folders one at a time and drag and drop your edited files into the archive, only dragging and dropping the files you edited and not just everything inside the folder.

7. Once you have your new images copied into the archive in the correct place you can just hit the close button or browse up a couple directories and find other files to edit. Any time you edit an apk and browse out of it or close it you will be prompted to update it in the archive by 7-zip (this is my secret shortcut), always press ok.

8. Now you have a freshly created theme ready to install, all you have to do is right click, chose to Resign the file, and once its done you can copy it to your SDcard, make sure its named update.zip, and flash your new theme.

Its literally that easy! And you use this same technique in the system/app folder to edit the apk files for the individual apps on the phone. Explore around in the update.zip and see what you can find, I only told you about the major items but there is plenty more to find and change. You can always copy a folder out of the archive and if you cant edit anything just toss it but if you can find something to edit, do so and throw it back in the archive. You guys now have all the info I had when I started plus all my tricks to making that process 10x easier.
19th February 2009, 08:27 PM   |  #7  
Junior Member
Thanks Meter: 0
 
12 posts
Join Date:Joined: Aug 2008
I Just Want To Change My Clock. I want everything else stock. Sorry for asking but when i search so much comes up. I know its really simple to do. If anyone can just point me in the right direction or give me a quick how to that would me AMAZING!
19th February 2009, 08:48 PM   |  #8  
JackD3ath's Avatar
Senior Member
Flag Satellite Beach, Florida
Thanks Meter: 9
 
420 posts
Join Date:Joined: Jan 2009
More
Read:


http://forum.xda-developers.com/showthread.php?t=482205
21st February 2009, 07:04 PM   |  #9  
djlucklu's Avatar
Senior Member
Miami
Thanks Meter: 2
 
285 posts
Join Date:Joined: Jan 2009
More
notifi
jut want to change notification to white on statusbar
22nd February 2009, 04:08 AM   |  #10  
AsaSpades's Avatar
Senior Member
Flag Hartford, CT
Thanks Meter: 18
 
487 posts
Join Date:Joined: Jun 2008
More
Before I tried to setup the autosign tool, when I double clicked on zip files it opened them up, which was how I wanted it. After trying to setup the autosign, when I double click on zip files nothing happens, except a java command prompt window pops up, same happens when I right click and hit resign zip, how can I fix this?

Edit: I reinstalled Java which fixed my issue
Last edited by AsaSpades; 22nd February 2009 at 05:06 AM.

Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes


Top Threads in Android Themes by ThreadRank