I first wrote this guide here on my site and thought I should put it here as well.
I am going to write this post to show how "easy", yet time-consuming, converting an RUU into a custom, de-odexed ROM can be as long as you can follow directions. I am doing this to hopefully help with development of ROMs for people who may be a bit intimidated on doing this. Before you start, you’ll need:
1. A Windows installation
2. VirtualBox installed in Windows
3. Ubuntu 10.04 (at least) installed in VirtualBox
4. dsixda’s Android Kitchen set up properly in Ubuntu
5. Java JDK installed in Ubuntu (Search openjdk in Synaptic Package Manager)
6. No fear of taking your time with this
I am suggesting the above because that’s what I’ll be using for this guide. Some devs frown at the use of kitchens but de-odexing manually can be a real pain in the ass and very time consuming.
First things first, you need to have Ubuntu up and running inside VirtualBox and you’ll need to get the Android Kitchen set up properly. To do this, extract the Android Kitchen zip file you downloaded. Rename the extracted folder to just “kitchen”. Copy that folder into your Ubuntu “home” directory. The final path will be “/home/username/kitchen”. You can test this by opening Terminal and typing:
Code:
cd kitchen
./menu
If the Android Kitchen starts, then you’re good to go. It’s that easy.
Now, going back to your Windows installation, download the RUU you want to build from. Once downloaded, you’ll need to double-click the RUU to run it. You’ll get a window that opens to allow you to continue installing the RUU. You need to not click anything there. Leaving that window open, open a Windows Explorer window. In the address bar type:
Code:
%temp%
and hit enter. This will take you into your Temp directory where the rom.zip is extracted. You can now do a search for rom.zip. Once found, copy the rom.zip to another directory (ie. Desktop). You can now close out of the RUU installer.
You’ll need to now copy your rom.zip to your Ubuntu virtual machine. How you do that is up to you. The easiest way is to set up Shared Folders in VirtualBox and copy it from within Ubuntu.
Once you have this file in Ubuntu, for simplicity, copy it to your desktop. Next, you’ll need to extract it. Simply right-click the rom.zip and select “Extract Here”.
If you now open you extracted folder, you should see a bunch of .img files. The 2 we are looking for are system.img and boot-signed.img. For now, create a new folder on your desktop, we’ll call it “custom”, and copy the boot-signed.img into that folder (I usually rename boot-signed.img to boot.img). Also create a folder called “system” in the same directory. Next we need to mount the system.img so we can extract the contents into the “system” folder you just created. Back in Terminal, type:
Code:
sudo mkdir -p /mnt/temp
sudo mount -o loop ~/Desktop/rom/system.img /mnt/temp
and then
sudo cp -r /mnt/temp/* ~/Desktop/custom/system
After several minutes, you should have a folder called “custom” on your desktop and inside of that should be “boot.img” and a “system” folder with a bunch of files and folders in it. You now need to change permissions on the folder so you can zip it up and copy it all. Back in Terminal type:
Code:
sudo chown -R username ~/Desktop/custom
Next step is to zip it all up so we can get it into the kitchen. Highlight both the “boot.img” and “system” folders, right-click them, and select “Compress”. Change the extension to .zip and click OK. Once zipped, drag (or copy) that folder into /home/username/kitchen/original_update.
Open Terminal and type:
Code:
cd ~/kitchen
./menu
Once the kitchen starts, you’ll need to set up a Working Folder, so select option “1″. If you only have 1 ROM zip in there you can just hit Enter. Follow through the prompts to rename your working folder if you want. I’m not going to guarantee that it will always work but it has worked for me in the past to select option “2″ from the main menu to “Add root permissions”. Moving on to de-odexing, select option “0 – ADVANCED OPTIONS”. Next, select option “11 – Deodex files in your ROM”. I usually do this by deodexing framework first and then system. If you’re de-odexing the ATT ROM, “PirateGhost” from xda clued me in that you need to temporarily remove the “com.att.vmm.sharedlib.jar” from /system/framework otherwise de-odexing will fail. When you get into the de-odexing option it will have you set your API level. The default is 10 which is Android 2.3.4 however, ICS can be 14 or 15. If on the latest 4.0.3, it’s API Level 15. Google can also help you here. If you’ve done everything right it will de-odex for 20 minutes or so depening on your hardware and should say “0 .odex files remain”. If you have any that remain, you can do them manually or not at all. Up to you on how you do it.
Since that’s basically all we’re discussing for right now on creating this ROM, we’ll continue on to building a flashable zip. Back at the main menu, select option “99 – Build ROM from working folder”. I recommend using the default “Interactive Mode”. Select yes to optimizing/zip-aligning all apks. When asked to add Updater-script to ROM, select yes. Here’s the thing with the updater-script that it builds. It’s only partially right. You need to fix the partition format section for the Vivid (or for whatever phone you’re building for). It’s best to look at some other’s scripts to see how it’s done. When asked by the wizard to sign your ROM, don’t do it. It’s not necessary. Feel free to rename it to whatever you want. After you’ve fixed the updater-script and I do mean AFTER, you can try flashing the ROM. And don’t forget to flash the boot.img as well.
There you have it. You now have a base ROM for you to work from. Obviously, this is just scratching the surface of what can be done but it’s a start. This is just how I do it. There are other ways to accomplish the same thing but this method has worked for me. Attached is a sample updater-script that I pulled from my AT&T stock ICS ROM. Use it only as a template and modify it to fit your needs and obviously, remove the txt extension.
Jirv311 said:
I first wrote this guide here on my site and thought I should put it here as well.
I am going to write this post to show how "easy", yet time-consuming, converting an RUU into a custom, de-odexed ROM can be as long as you can follow directions. I am doing this to hopefully help with development of ROMs for people who may be a bit intimidated on doing this. Before you start, you’ll need:
1. A Windows installation
2. VirtualBox installed in Windows
3. Ubuntu 10.04 (at least) installed in VirtualBox
4. dsixda’s Android Kitchen set up properly in Ubuntu
5. Java JDK installed in Ubuntu (Search openjdk in Synaptic Package Manager)
6. No fear of taking your time with this
I am suggesting the above because that’s what I’ll be using for this guide. Some devs frown at the use of kitchens but de-odexing manually can be a real pain in the ass and very time consuming.
First things first, you need to have Ubuntu up and running inside VirtualBox and you’ll need to get the Android Kitchen set up properly. To do this, extract the Android Kitchen zip file you downloaded. Rename the extracted folder to just “kitchen”. Copy that folder into your Ubuntu “home” directory. The final path will be “/home/username/kitchen”. You can test this by opening Terminal and typing:
Code:
cd kitchen
./menu
If the Android Kitchen starts, then you’re good to go. It’s that easy.
Now, going back to your Windows installation, download the RUU you want to build from. Once downloaded, you’ll need to double-click the RUU to run it. You’ll get a window that opens to allow you to continue installing the RUU. You need to not click anything there. Leaving that window open, open a Windows Explorer window. In the address bar type:
Code:
%temp%
and hit enter. This will take you into your Temp directory where the rom.zip is extracted. You can now do a search for rom.zip. Once found, copy the rom.zip to another directory (ie. Desktop). You can now close out of the RUU installer.
You’ll need to now copy your rom.zip to your Ubuntu virtual machine. How you do that is up to you. The easiest way is to set up Shared Folders in VirtualBox and copy it from within Ubuntu.
Once you have this file in Ubuntu, for simplicity, copy it to your desktop. Next, you’ll need to extract it. Simply right-click the rom.zip and select “Extract Here”.
If you now open you extracted folder, you should see a bunch of .img files. The 2 we are looking for are system.img and boot-signed.img. For now, create a new folder on your desktop, we’ll call it “custom”, and copy the boot-signed.img into that folder (I usually rename boot-signed.img to boot.img). Also create a folder called “system” in the same directory. Next we need to mount the system.img so we can extract the contents into the “system” folder you just created. Back in Terminal, type:
Code:
sudo mkdir -p /mnt/temp
sudo mount -o loop ~/Desktop/rom/system.img /mnt/temp
and then
sudo cp -r /mnt/temp/* ~/Desktop/custom/system
After several minutes, you should have a folder called “custom” on your desktop and inside of that should be “boot.img” and a “system” folder with a bunch of files and folders in it. You now need to change permissions on the folder so you can zip it up and copy it all. Back in Terminal type:
Code:
sudo chown -R username ~/Desktop/custom
Next step is to zip it all up so we can get it into the kitchen. Highlight both the “boot.img” and “system” folders, right-click them, and select “Compress”. Change the extension to .zip and click OK. Once zipped, drag (or copy) that folder into /home/username/kitchen/original_update.
Open Terminal and type:
Code:
cd ~/kitchen
./menu
Once the kitchen starts, you’ll need to set up a Working Folder, so select option “1″. If you only have 1 ROM zip in there you can just hit Enter. Follow through the prompts to rename your working folder if you want. I’m not going to guarantee that it will always work but it has worked for me in the past to select option “2″ from the main menu to “Add root permissions”. Moving on to de-odexing, select option “0 – ADVANCED OPTIONS”. Next, select option “11 – Deodex files in your ROM”. I usually do this by deodexing framework first and then system. If you’re de-odexing the ATT ROM, “PirateGhost” from xda clued me in that you need to temporarily remove the “com.att.vmm.sharedlib.jar” from /system/framework otherwise de-odexing will fail. When you get into the de-odexing option it will have you set your API level. The default is 10 which is Android 2.3.4 however, ICS can be 14 or 15. If on the latest 4.0.3, it’s API Level 15. Google can also help you here. If you’ve done everything right it will de-odex for 20 minutes or so depening on your hardware and should say “0 .odex files remain”. If you have any that remain, you can do them manually or not at all. Up to you on how you do it.
Since that’s basically all we’re discussing for right now on creating this ROM, we’ll continue on to building a flashable zip. Back at the main menu, select option “99 – Build ROM from working folder”. I recommend using the default “Interactive Mode”. Select yes to optimizing/zip-aligning all apks. When asked to add Updater-script to ROM, select yes. Here’s the thing with the updater-script that it builds. It’s only partially right. You need to fix the partition format section for the Vivid (or for whatever phone you’re building for). It’s best to look at some other’s scripts to see how it’s done. When asked by the wizard to sign your ROM, don’t do it. It’s not necessary. Feel free to rename it to whatever you want. After you’ve fixed the updater-script and I do mean AFTER, you can try flashing the ROM. And don’t forget to flash the boot.img as well.
There you have it. You now have a base ROM for you to work from. Obviously, this is just scratching the surface of what can be done but it’s a start. This is just how I do it. There are other ways to accomplish the same thing but this method has worked for me. Attached is a sample updater-script that I pulled from my AT&T stock ICS ROM. Use it only as a template and modify it to fit your needs and obviously, remove the txt extension.
Click to expand...
Click to collapse
Thanks, I've De-odexed ICS 4.0.3 ROM from WEE RUU. But. When I flash to Phone. The boot was successfully. And Everything works. But in the Sense Desktop. Any of ICON's Title Couldn't Display in the Sense Homescreen. It's totally naked!! including widgets. What's Problem? The others text display is work.
My Lab: Windows 7 with JDK&JRE
Cygwin+Kitchen 1.92
---------- Post added at 11:26 AM ---------- Previous post was at 11:24 AM ----------
Should I Cooking ICS with Ubuntu?
ChunD.K said:
Thanks, I've De-odexed ICS 4.0.3 ROM from WEE RUU. But. When I flash to Phone. The boot was successfully. And Everything works. But in the Sense Desktop. Any of ICON's Title Couldn't Display in the Sense Homescreen. It's totally naked!! including widgets. What's Problem? The others text display is work.
My Lab: Windows 7 with JDK&JRE
Cygwin+Kitchen 1.92
---------- Post added at 11:26 AM ---------- Previous post was at 11:24 AM ----------
Should I Cooking ICS with Ubuntu?
Click to expand...
Click to collapse
Can you grab a screenshot? Seems pretty strange.
I find problems out。When I tried to Extract All files form a Stock RUU。Than pack it up without any touching。flash to phone。Boot Successfully...
But IT'S JUST NAKED!!! I really confused!
RUU Version:Australian RUU-HOLIDAY-ICS-35-S-Telstra-WWE-3.25.841.4-Radio-3.02.4740.09-34.20.701040.19
Everything is fine when I Run RUU.exe to update。
Jirv311 said:
Can you grab a screenshot? Seems pretty strange.
Click to expand...
Click to collapse
Where you are? I need your Reply.
ChunD.K said:
Where you are? I need your Reply.
Click to expand...
Click to collapse
I need your screenshot.
Jirv311 said:
I need your screenshot.
Click to expand...
Click to collapse
Finally, Here is the Problem Screenshot. SO WERIED
I‘ve also use the latest Touch RECOVERY。 Problem is still。。。
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
You gotta help me!
I mean i Pack them pu without any touching。
Where are you?
If I had to guess, I'd say you're using an unsupported language? I honestly am not sure.
Sent from my HTC PH39100 using xda premium
No, Itried switch to English. It jut naked.
Thanks alot for the thread! Is there anyway you could go into more detail about fixing the updater script for vivid?
bennykudos said:
Thanks alot for the thread! Is there anyway you could go into more detail about fixing the updater script for vivid?
Click to expand...
Click to collapse
I attached the updater-script to the OP. The main thing that needs fixing when your building it is putting in the correct format commands for the Vivid.
Do you know how to decompile the apks? I have expiernce with decompiling
Apks on the Samsung infuse but I can not figure out how do it for this phone...I can't even successfully install the framework...and yes I'm using an ics apktool...I've tried on both windows 7 and ubuntu 11.04
Could someone please link me to an apktool that works with this phones stock ics apks and tell me any special/extra steps I need to do to install framework and decompile apks
Sent from my HTC PH39100 using xda app-developers app
mg2195 said:
Do you know how to decompile the apks? I have expiernce with decompiling
Apks on the Samsung infuse but I can not figure out how do it for this phone...I can't even successfully install the framework...and yes I'm using an ics apktool...I've tried on both windows 7 and ubuntu 11.04
Could someone please link me to an apktool that works with this phones stock ics apks and tell me any special/extra steps I need to do to install framework and decompile apks
Sent from my HTC PH39100 using xda app-developers app
Click to expand...
Click to collapse
i think its called apk manager now.. sorry to revive
Related
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!
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=0B5...MTEyMi00NzI4LWJkMDQtZTUzNjBjMTZlMWNj&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:
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 [email protected]
Stericson
Links of interest:
Using ADB: http://code.google.com/android/reference/adb.html
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
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.
[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.
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!
Read:
http://forum.xda-developers.com/showthread.php?t=482205
notifi
jut want to change notification to white on statusbar
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
i got this tryin to update
E:No digest for framework-res.apk
i edited someone else theme, did not edit no .9 file.. i right click on the update.zip and resigned it. what went wrong?
EDIT: nevermind i got it.. i followed the one for dummies, guess i am dumb lol
What the image file for the tab on the bottom of the screen called? I couldn't find it searchin throguh the framework-res.apk
its in launcher.apk. Check in drawable portrait and drawable landscape.
Stericson
thanks i should of explore more before posting
Hi,
I've got 99% of my theme done although I can't find where the bottom of the notification bar is and the white bit where the notifications would be.
I've done a little picture below to help me explain.
Bottom notification bar is the arrow.
The white bit where the notifications would be is the hatched.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Thanks for help in advance.
Also could someone tell me how to put icons in for well know apps from the market. At the moment I have put the full apk in the update and change the icon. But this increases the theme size. Thanks again!
NO DIGEST? Failed?
what does it mean when I try to flash the new update.zip and it fails because it says NO DIGEST? What does this mean? Any help would be greatly appreciated. Thanks
parmenti said:
what does it mean when I try to flash the new update.zip and it fails because it says NO DIGEST? What does this mean? Any help would be greatly appreciated. Thanks
Click to expand...
Click to collapse
means it hasn't been properly resigned.
thanks, that's what I thought. Can't seem to get it right. Does the image, the apk, and the zip all have to be resigned? Or just one or the other? THanks for your help.
parmenti said:
thanks, that's what I thought. Can't seem to get it right. Does the image, the apk, and the zip all have to be resigned? Or just one or the other? THanks for your help.
Click to expand...
Click to collapse
Just the update.zip needs to be resigned.
my question is this, say for example I have my phone setup just as I like with the theme of my choosing, htc music app instead of the stock android app in the cyanogen mod. i would like to be able to create a rom from this setup that I could then just load on my phone as oppsed to loading a cm mod, then installing music player, then installing the theme. before the flaming begins, i tried the search to no avail. i am aware of how to sign the zip and all of that. just a point in the right direction would be MUCH appreciated.
Its something I would like to be able to do as well. According to Haykuros twitter hes going to be making a video about android rom cooking soon so that should help
jholt0130 said:
my question is this, say for example I have my phone setup just as I like with the theme of my choosing, htc music app instead of the stock android app in the cyanogen mod. i would like to be able to create a rom from this setup that I could then just load on my phone as oppsed to loading a cm mod, then installing music player, then installing the theme. before the flaming begins, i tried the search to no avail. i am aware of how to sign the zip and all of that. just a point in the right direction would be MUCH appreciated.
Click to expand...
Click to collapse
This should've gone in the Q&A section. Will probably get locked soon.
But in response to your question, I guess you could grab the CM rom, then grab the theme you use and overwrite the files in the rom, and then overwrite the music app with the HTC music. Resign and you got your update.zip customized how you want it.
xidominicanoix said:
This should've gone in the Q&A section. Will probably get locked soon.
But in response to your question, I guess you could grab the CM rom, then grab the theme you use and overwrite the files in the rom, and then overwrite the music app with the HTC music. Resign and you got your update.zip customized how you want it.
Click to expand...
Click to collapse
Thanks for the help and my apologies for the wrong section
how do you resign it?
joey3002 said:
how do you resign it?
Click to expand...
Click to collapse
by searching.
Stericson said:
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: http://www.fightforthepits.com/Androidstuff/signing.zip
Want to set up the signing tool manually?
Here is the link for the signing tool: Http://www.FightForthePits.com/testsign(2).zip
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
Click to expand...
Click to collapse
.apk's not showing up after flash in resigned .zip
Ok, so I've created a ROM to my liking. All the .apk's I normally use and got rid of the ones I don't. My problem is after I customized the ROM and flashed it none of the .apk's I added showed up. The only ones that showed up were the paid apps. I never opened the .apk's and made changes. I assume I don't need to change them to .zip resign and back to apk. Do I? I am using Windows 7 though and am able to resign no problem. Thanks to anyone who replies.
I made a little file where u can drag'n'drop files u want to install on ur phone.
No need of any settings.
When your phone is allready "adb ready" you dont need to have anything running.
Just take the apk File and drag on the exe and it will install. thats all.
perhaps i'll add more features soon. i made it for myself, to install the apk's faster after a full-wipe i made.
In Windows7 and Vista, it needs Admin rights (so it asks when starting) and AFTER its done, it gives an error. But it works how it should!
so don't worry
PS: Doubleclicking it won't do anything! Its Drag'n'Drop only!!
Another one by me
copy and paste the following into a file and save it on your desktop as install.bat (or whatever you fancy)
@echo off
adb install %1
pause
Then drag and drop files onto it, or associate apk files with install.bat and double click an apk file and will install to your phone.
htcmagic said:
copy and paste the following into a file and save it on your desktop as install.bat (or whatever you fancy)
@echo off
adb install %1
pause
Then drag and drop files onto it, or associate apk files with install.bat and double click an apk file and will install to your phone.
Click to expand...
Click to collapse
What do u want to say with ur post?
Did i made any question? i think not, so what r u explaining and for WHO??
It's just what i made in my "tool".
Made little bigger better Tool with 5 Options now
if anyone wants it, its at the bottom.
Now u can install apks, uninstall non-stock apks, push and pull files to & from /system/app/ and reboot ur phone.
ahhh, and not it wont make any errors or need for "admin rights" when starting the tool.
Works like a charm and now it has an Sketched android in it ! Yeehaaa
your program (the install part) doesnt really work. it doesnt install. i found that making the batch file was better.
hmm ok, thats weird. for me the new tool works perfekt.
And it IS a batchfile, i just merged the needed files from adb and the .bat file to one exe file. thats all.
do u get any error when trying to install ?
You do drag and drop the file to the exe and choose install apk, right?
Geeze, are people these days so lazy that they can't move their hand off the mouse? Just type the command!!!! Its easy... "adb install {file.apk}".
You know, back in the dark ages of not very long ago, NOBODY had a mouse. Or drag and drop. EVERYTHING was on the keyboard and involved typing commands.
If you guys want and you are running Windows, check out our app. www.androidmanager.net ... we added feature for installing apk-s by double-clicking few days ago
Here is a pack of 3 files that, if pushed to your rom will give you the white task bar. This will change status icons and is just a work in progress "fill in the the gap" type of thing until I can write a proper update script for an update.zip. Currently this has only been tested to work 100% with:
Evil Eris 2.0.1 (It will, however, break the Sense launcher. So if you want the white bar, use another launcher)
Ic3Rom 2.0
It DOES NOT work on
TaintedVanilla 1.3.1
Or any rom that has it's System/Framework apk's and jar's odexed.
Please let me know if it works with any others.
Also, please not that this will change the status bar highlights to green.
http://www.multiupload.com/4YV5D61YRX
Click to expand...
Click to collapse
Just push the three files and reboot. Reboot will take about 5 min, so don't freak out if it takes forever. If you get into a boot loop, however, it didn't work.
DISCLAIMER: I'm not responsible if this bricks your phone. Please don't yell at me if it does. Also, be smart: do a nandroid backup before you try this.
Click to expand...
Click to collapse
This tutorial is for a white menu bar. It's still kind of a work in progress, but it works for the most part. When done, it looks like this:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Ok. Here is the extremely long way to do this, but it should work with any rom and will give you a full (date/time/notifications) white/vanilla task bar.
(Seriously, this may take 30 minutes or more if you're unfamiliar with some of these commands)
DOWNLOAD: http://www.multiupload.com/VZWCE0A0FN
Unzip the files and there should be 4 folders and 1 file: framework-res, com.htc.resources, PCSCII, Tools, and StatusBarIcon.smali.
Also included are the tools needed to crack open the .dex file from services.jar, smali.jar and backsmali.jar
First you'll need to pull the proper files to modify from whatever rom you're using. Open up your command line program of choice and do this:
cd [your tools folder in the android sdk]
adb remount
adb pull /system/framework/framework-res.apk framework-res.apk
adb pull /system/framework/com.htc.resources.apk com.htc.resources.apk
adb pull /system/app/PCSCII.apk PCSCII.apk
adb pull /system/framework/services.jar services.jar
Click to expand...
Click to collapse
Copy all these files into a new folder.
Things can get messy so name them whatever you'd like to keep things organized.
After all this you can start copying files. First we need to open up services.jar. Easiest way is to change the .jar ending to .zip and expand it with whatever program you'd like. Copy the classes.dex into a new folder. Keep the original folder of the expanded services.jar, it makes things easier in a few minutes.
Here is where things get a little complicated. You'll need to open up the classes.dex file with backsmali.jar. First, make sure Backsmali.jar is in the same folder as classes.dex. Next enter this command into the terminal:
cd [the folder with backsmali and classes.dex file]
java -Xmx512M -jar baksmali.jar -o classes/ classes.dex
Click to expand...
Click to collapse
This will expand classes.dex into a folder. Click through this folder until you find a folder called Status. Now drag the StatusBarIcon.smali into the Status folder. Allow the replacement.
Now we need to close the classes.dex file back up. Make sure smali.jar is in the same folder as the classes folder (make a new folder just to avoid a conflict with your original files) and use these commands:
cd [the folder with smali and the classes folder]
java -Xmx512M -jar smali.jar -o classes.dex classes/
Click to expand...
Click to collapse
You should have a fresh classes.dex file now. Now put this new classes.dex file into the original services.jar folder (that you expanded from a zip) and rezip that file. Then change the name from a .zip to .jar.
Step 1: done.
The next few parts are a lot easier, so stick with me here.
Now we need to open up the Framework-res.apk and replace all of the image files needed for a sexy white menu bar. All of the needed files are in the folder named (you guessed it) framework-res. First, you'll need to expand this .apk, do so by changing it into a .zip. After you expand it, copy the files from my folder to the matching folders. Don't drag and drop the folders, it won't work. Select all inside them and paste/drag/whatever over to the one from your phone. There should be a folder of image files, and a folder with two xml files. Once done return to the top folder of the framework-res.zip you expanded and re-zip the contents. Make sure you select the contents and zip them.
**DO NOT ZIP THE FRAMEWORK-RES FOLDER ITSELF, SELECT THE FILES INSIDE THE FOLDER AND RE-ZIP THEM**
You should now how have a new archive. Rename it to framework-res.apk and set it aside for later use.
The last parts are essentially the same things, but with the other two folders I've included: PCSCII and com.htc.resources. Copy the files, and re-zip them into .apk files.
Ok. Almost done.
Now it's time to send the files back to your phone. Place the new versions of these files into your Tools folder in the Android SDK.
Now let's push them back to your phone:
cd [your tools folder... again]
adb remount
adb push PCSCII.apk /system/app/PCSCII.apk
adb push framework-res.apk /system/framework/framework-res.apk
adb push com.htc.resources.apk /system/framework/com.htc.resources.apk
adb push services.jar /system/framework/services.jar
adb reboot
Click to expand...
Click to collapse
Reboot can take a while, so be patient. I'm thinking rebooting into recovery and clearing your dalvik cache may help, but haven't tried it.
If everything worked correctly, you should have a brand spankin' new notification bar.
Just a note, I have tested this on Evil Eris 2.0 and IceRom 2.0 and it works perfectly. However, it should work with whatever rom you're using. Also, this will change some of your icons to Vanilla ones. If you don't want them changed, don't copy the files that will change them. Those should be apparent when copying the image files from the folders I've included.
If you have any questions, feel free to ask.
Also, if anyone knows how to wrap this all up into a nice little update.zip, please do it or let me know how to do it. It would be greatly appreciated.
Hello, I appreciate the tutorial! I'm attempting to get this set up for my Tainted Vanilla rom and ran into a snag at the beginning. Our services.jar file contains no classes.dex file. All it contains is MANIFEST.MF. Any ideas about how I should proceed?
Ok, I think I've figured it out.
The .odex file is basically the .dex file in an uncompressed format. To break it open you do the same thing you would do with a dex file. Plug it into baksmali and it should yield you a Classes folder. You do have to reassemble it though, which requires you to first deodex it... and it's kind of a pain in the ass. I've figured out the first portion of it, but deodexing the file is decently complicated for a n00b like me. I'll continue to work on it and will hopefully have a solution tomorrow.
Here's where I'm stuck if anyone wants to figure it out:
$ java -Xmx512m -jar baksmali.jar -x services.odex
Error while disassembling method Lcom/android/server/ConnectivityService;-><init>(Landroid/content/ContextV. Continuing.
org.jf.dexlib.Code.Analysis.ValidationException: class Lcom/htc/connectivity/DummyStateTracker; cannot be resolved.
at org.jf.dexlib.Code.Analysis.ClassPath$UnresolvedClassDef.unresolvedValidationException(ClassPath.java:535)
at org.jf.dexlib.Code.Analysis.ClassPath$UnresolvedClassDef.getClassDepth(ClassPath.java:543)
at org.jf.dexlib.Code.Analysis.ClassPath.getCommonSuperclass(ClassPath.java:383)
at org.jf.dexlib.Code.Analysis.RegisterType.merge(RegisterType.java:274)
at org.jf.dexlib.Code.Analysis.AnalyzedInstruction.mergeRegister(AnalyzedInstruction.java:199)
at org.jf.dexlib.Code.Analysis.MethodAnalyzer.propagateRegisterToSuccessors(MethodAnalyzer.java:479)
at org.jf.dexlib.Code.Analysis.MethodAnalyzer.setPostRegisterTypeAndPropagateChanges(MethodAnalyzer.java:459)
at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInvokeDirectCommon(MethodAnalyzer.java:2968)
at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInvokeDirectRange(MethodAnalyzer.java:2927)
at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyzeInstruction(MethodAnalyzer.java:856)
at org.jf.dexlib.Code.Analysis.MethodAnalyzer.analyze(MethodAnalyzer.java:202)
at org.jf.baksmali.Adaptors.MethodDefinition.getMethodItems(MethodDefinition.java:290)
at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.java:130)
at org.jf.baksmali.Adaptors.ClassDefinition.writeMethods(ClassDefinition.java:322)
at org.jf.baksmali.Adaptors.ClassDefinition.writeDirectMethods(ClassDefinition.java:291)
at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java:135)
at org.jf.baksmali.baksmali.disassembleDexFile(baksmali.java:187)
at org.jf.baksmali.main.main(main.java:277)
opcode: invoke-direct/range
CodeAddress: 811
Method: Lcom/android/server/ConnectivityService;-><init>(Landroid/content/ContextV
Click to expand...
Click to collapse
I know that in order for successfully deodex, all the file paths have to be correct. I, however, do not have them yet.
More info here for anyone interested: http://code.google.com/p/smali/wiki/DeodexInstructions
Good work, this should be an update.zip once we have confirmed it working successfully.....
stopxstart said:
Ok, I think I've figured it out.
The .odex file is basically the .dex file in an uncompressed format. To break it open you do the same thing you would do with a dex file. Plug it into baksmali and it should yield you a Classes folder. You do have to reassemble it though, which requires you to first deodex it... and it's kind of a pain in the ass. I've figured out the first portion of it, but deodexing the file is decently complicated for a n00b like me. I'll continue to work on it and will hopefully have a solution tomorrow.
Here's where I'm stuck if anyone wants to figure it out:
I know that in order for successfully deodex, all the file paths have to be correct. I, however, do not have them yet.
More info here for anyone interested: http://code.google.com/p/smali/wiki/DeodexInstructions
Click to expand...
Click to collapse
I get the same error. I posted a issue about this on the project page.
EDIT: Figured it out. Add -c :com.htc.resources.jar
You will need to deodex it first thou.
Can we see screenshots of this notification bar
If you look at the IC3 rom screenshots, this should be the same.
Also, stopxstart, thanks for the hard work! Really appreciate it. Should the phone be connected this whole time? Thanks!
gritts said:
If you look at the ICQ rom screenshots, this should be the same.
Also, stopxstart, thanks for the hard work! Really appreciate it. Should the phone be connected this whole time? Thanks!
Click to expand...
Click to collapse
ICQ ROM do you mean IC3 ROM?
Yes, thanks, I corrected it.
gritts said:
If you look at the IC3 rom screenshots, this should be the same.
Also, stopxstart, thanks for the hard work! Really appreciate it. Should the phone be connected this whole time? Thanks!
Click to expand...
Click to collapse
It's easy just to keep it connected but it's not required. Just make sure you adb remount before pushing and pulling the files.
Going to try out a workaround for all of this, I'll report back sometime tonight.
Also, if this works it will allow me to write a sufficient update.script for a standalone zip.
For those following the progress of this, I am currently testing some standalone files to push that should make this whole process easier.
So far works on: Evil Eris 2.0 and Ic3Rom 2.0 (well, fixes it).
Testing others now.
I'm looking forward to your testing on Tainted Vanilla
hoban_eris said:
Hello, I appreciate the tutorial! I'm attempting to get this set up for my Tainted Vanilla rom and ran into a snag at the beginning. Our services.jar file contains no classes.dex file. All it contains is MANIFEST.MF. Any ideas about how I should proceed?
Click to expand...
Click to collapse
I second that.
ok so these are the things i can't get
the verizon wireless text is white
and the clear button is black with white text
how can i fix these
Re: [Tutorial] White Notification Bar
Did you follow the tut
-------------------------------------
Sent via the XDA Tapatalk App
gritts said:
Did you follow the tut
-------------------------------------
Sent via the XDA Tapatalk App
Click to expand...
Click to collapse
ok ive tried several times and failed every time could someone put up the final zip I could flash
iloveandroid said:
ok so these are the things i can't get
the verizon wireless text is white
and the clear button is black with white text
how can i fix these
Click to expand...
Click to collapse
Let me double check the XML files in the Framework-res.apk to make sure I put the right ones in. I literally have 60 folders filed with the same file from different testing so I could have easily posted the wrong one.
Also, there isn't a zip to flash because I haven't written the update script for it. If you would like to, please do.
stopxstart said:
Let me double check the XML files in the Framework-res.apk to make sure I put the right ones in. I literally have 60 folders filed with the same file from different testing so I could have easily posted the wrong one.
Also, there isn't a zip to flash because I haven't written the update script for it. If you would like to, please do.
Click to expand...
Click to collapse
I would make a flashable but i dont know how
Ok, I fixed the button problem.
You're using Ic3Rom right? Pretty sure the files I have will work with it straight up but let me test it.
Also, I added screenshots to first page.
USING DSIXDA's KITCHEN TO CREATE YOUR OWN SOFT-MODs
(THIS IS MY FIRST BIG TUTORIAL, SO PLEASE CO-OPERATE AND HELP ME MAKING THIS GUIDE BETTER!!)
DsiXDA has created an excellent Kitchen for 'cooking' custom ROMs. So first THANKS goes to DsiXDA.
READ THIS BEFORE PROCEEDING:
Click to expand...
Click to collapse
For Kitchen to get working you need a Linux environment. My choice is go for Ubuntu 10.04 / 10.10 (I won't recommend 11.xx as Unity spoils the 'Cooking' experience). You should have a little bit of experience with Ubuntu. You can do it on Windows too. Install Ubuntu inside VirtualBox. I won't recommend using cygwin as it may reduce the performance.
Click to expand...
Click to collapse
GIVE CREDITS TO THE ORIGINAL DEVELOPER
I. Setup the Kitchen:
Download DsiXDA's Kitchen at https://github.com/dsixda/Android-Kitchen/archives/master. Download the 0.179 version
Get an 'original' ROM (not soft-modded). The ROM that I used in this tutorial is Pebe's CyanogenMod 7
Get JDK. It's necessary. Execute the following command in Terminal:
sudo apt-get install openjdk-7-jdk
When asked for password, enter the one which you use for logging in.
For 64-bit system, you need the ia32-libs ( sudo apt-get install ia32-libs )
Extract the contents of the dsiXDA's kitchen to a folder, say kitchen, in your Home folder (for convenience). Just inside the kitchen folder there should be the ./menu file
Open Terminal. Browse to your kitchen directory
cd ./kitchen
source ./menu
It should open up the Kitchen Menu
This is the basic setup of your Kitchen. Now move up to the next big step.
II. Actual ROM:
Copy the ROM (in my case, it is cm7_v2.zip (pebe's CM7)) and paste it in the original_update folder
Execute Kitchen (Step 5 from I). Select option '1. Setup working folder from ROM'. Another menu appears, hit ENTER. It'll show up the available ROMs list. It should display at least one ROM. In my case it was "(1) cm7_v2.zip". Enter selection number: 1. Hit ENTER. It'll prompt for changing the name, leave it, no need. Hit ENTER. It'll start extracting the ROM. In my case, it found the updater-script. It'll ask to convert the script into update-script. We want update-script at the moment, so just hit ENTER. It should say 'Finished setting the working folder!'. Hit ENTER. You'll be back to Menu.
The Menu shows various options like 'Adding Root permissions, installing busybox, etc'. You can play with them. As most of the ROMs have Root and Busybox installed, we don't need any of these features.
Now comes a bit advanced part. Select ADVANCED OPTIONS. There are various options like Deodex files, add Nano text editor, signing APKs, etc. I'll explain each of them:
Deodex: Merges ODEX and APK together. However, it's applicable for ODEXed ROMS (mostly Stock 2.1) only. Neither of GB and FroYo versions are ODEXed. So you can skip this step.
Add task killer tweak: It's a good alternative to Supercharger script. Only thing is, it isn't as versatile as Supercharger script. Leave this if you don't know anything about Task killer values like FOREGROUND APP, BACKGROUND APP, etc
Add data/app functionality: Suppose you've come across a situation that the system size reaches almost 150 MB (standard for GT540) and still you want to add some more apps, then this tweak is for you. It adds the /data/app folder. You can place apps in this folder. These apps will be directlty installed in the /data partition thus eliminating the 150MB limit.
Add Bash: Adds command-line completion in Terminal commands. Install if you want. Not needed.
Add Apps2SD: This is much primitive type of Apps2SD in which you have to create an ext partition on your SD card. Not recommended. Link2SD (app) is much better.
Add busybox run-parts: This tweak is most important one. I enables the startup scripts option, that means, scripts placed in /etc/init.d folder will get executed during the booting process. Recommended for Stock and AOSP ROMs only.
Add custom boot animation: If you want to add a custom boot animation to your ROM, then you need this. Select this option. It'll ask you to proceed, hit ENTER. A folder /data/local will be created inside the WORKING_xxxxxxx_xxxxxxx folder. Place your bootanimation.zip in that folder. Google some nice boot animations or if you want to create your own boot animations, Despotovski brothers had made a 'Boot Animation maker', check it here http://forum.xda-developers.com/showthread.php?t=1234611
Rest all tweaks are not required for now
III. Something's Cooking!
There will be a folder named something like WORKING_xxxxx_xxxxxxxx in your kitchen folder. Open it up. It contains the actual system, boot.img file, data directory etc.
The best feature of DsiXDA is that you can easily 'browse' the system.
Open the system folder. Here you can see the apps, etc, lib, usr, etc folders.
Adding / Removing Apps: Open the apps folder. You'll see APKs of all the system apps. Try removing some apps. You can remove Dev tools, pre-installed CM themes or any other app. Add your own apps. Copy-paste your apps here. If their filenames have spaces in them (like Root Explorer.apk) remove these spaces (like RootExplorer.apk). You can also use the /data folder for adding more apps.
Adding some other stuff: The /etc folder has a lot of cool stuff too. The apns-conf.xml file contains the APNs. System can auto-detect the APN according to your carrier. I got an apns-conf.xml file which contains a huge list of APNs. Just replace the existing file.
Adding Fonts: Pick your favorite font (I like Ubuntu). Grab the .ttf file of that font. Open /fonts folder. Remove the existing DroidSans.ttf file. Copy-paste your font file in it and rename it to DroidSans.ttf.
IV. Final Steps:
Open the kitchen menu. Advanced Options → Sign all APKs
Back to main menu. '9. Check update-script for errors'.
'6. Zipalign all APKs'
'99. Build ROM'. If it shows warning regarding BOOT-EXTRACTED folder exists, select y (remove BOOT-EXTRACTED).
Select a build option → 1. Interactive Mode
Would you like to Zipalign → n (we already did that before)
It'll start making update.zip.
Add updater-script to your ROM → y (We want compatibility with ClockworkMod)
Proceed with the change → y
Sign your ROM → y
Change the name → n
Once you're back to main menu, select Exit (x)
Your ROM is located in OUTPUT_ZIP folder (It'll be a zip file)
Copy this zip file on your SD card. Reboot into Recovery. Select 'Install zip from SD card', select the ZIP file.
Reboot. See if everything works properly.
I KNOW THERE MIGHT BE ZILLIONS OF ERRORS IN THIS GUIDE. IF YOU'RE STUCK AT SOME POINT OR CANNOT UNDERSTAND SOMETHING, TELL ME. I'LL TRY TO MAKE THIS GUIDE MORE EASIER TO UNDERSTAND.
THIS IS A BASIC SOFT-MODDING GUIDE. I'M DOING SOME INVESTIGATION REGARDING THEMING AND BUILD.PROP TWEAKS. I'LL BE ADDING THESE SECTIONS LATER.
WOW nice work making this TUT!!
Nice Work!
thanks!!
gonna try this out sometime
There is a search feature guys this was posted about like half a year ago
I tried the kitchen its not that great all you can do is zipalign change some options and re package
TBH androidboss you probably could do more using terminal and root explorer
Sent from my tf101 using xda premium 1.54Ghz
Guys! Before Soft-Modding please ask the Devs first. They worked and took up free time for those roms and they would like a thanks.
Danzano said:
There is a search feature guys this was posted about like half a year ago
I tried the kitchen its not that great all you can do is zipalign change some options and re package
TBH androidboss you probably could do more using terminal and root explorer
Sent from my tf101 using xda premium 1.54Ghz
Click to expand...
Click to collapse
really i should try one day!
with credits and thanks!!
Algud if you need tips or want a hand customizn give me a shout hell if you wana use enigma and just cretic it to you're liking be my guest
Sent from my tf101 using xda premium 1.54Ghz
Danzano said:
Algud if you need tips or want a hand customizn give me a shout hell if you wana use enigma and just cretic it to you're liking be my guest
Sent from my tf101 using xda premium 1.54Ghz
Click to expand...
Click to collapse
yeah thanx bro!!
i will try and make one during this weekend
once i get my phone fixed..
i will pm you if i need help with something about the
soft-mod!!
All good
Sent from my tf101 using xda premium 1.54Ghz
Danzano said:
All good
Sent from my tf101 using xda premium 1.54Ghz
Click to expand...
Click to collapse
pm' ed u!!
soz its a bit long!
I'll be writing the "Theming using UOT Kitchen" tutorial tonight
tejasdj12 said:
I'll be writing the "Theming using UOT Kitchen" tutorial tonight
Click to expand...
Click to collapse
http://forum.xda-developers.com/showthread.php?p=18934516#post18934516
you can base on this if u want