[Tutorial]-ICS-AOKP/CM9-UPDATED-Miscellaneous MODS[Nav bar,Notification header etc] - Galaxy S II Themes and Apps

Hi guys!
After getting a lot of requests by various users of Resurrection Remix and RootBox,I finally decided to do a tutorial on how to make certain kinds of mods.I have been modding for Resurrection Remix for quite some time now and have learnt a lot in the process.I will keep updating this thread as and when i learn new stuff.
What this tutorial teaches and guides you to do:
-ANIMATED NOTIFICATION DROPDOWN BACKGROUND
-NAVIGATION BAR BACKGROUND MOD
-TOGGLES BACKGROUND MOD
-PULLDOWN BAR MOD
-SYSTEM+DIALER BACKGROUND MOD
-LOCKSCREEN HANDLER MOD
MORE MODS WILL BE ADDED AS AND WHEN I GET TIME AND ALSO DEPENDING ON THE INTEREST OF THE USERS.
DISCLAIMER :
> Please be careful.The methods here are totally tested so if anything goes wrong it is probably your fault that you didn't do something correctly.I will give my support but I am not responsible for anything unfortunate that may happen.Don't forget to do a BACKUP before trying anything!
>This is a tutorial to help the daily user in making mods.It might not be the most perfect way to do things,so if you are competent enough and technically sound to build from source please go ahead and read Entropy512's post here to get an idea on the same.My tutorial is aimed at helping everyone make their own mods.
Firstly,I will give the credits of my learning curve to :
GaboWinter (For his EXCELLENT tutorials and awesome FAQ)
Westcrip (For giving us an excellent ROM that changed the way i looked at things)
Yorzua (For his excellent tutorials on theming)
MyLifeRocks10 (For teaching me how to use UFT)
Vreestyle (For being one of the main inspirations and letting me use his zip files as a base whenever required!)
Bajee11 (For guiding me on how to mess around with smali files)
Tigiy (Whose first Hulk mod was the one that triggered my curiosity)
Sun90,Faseeh,LegendZenefy,Kroz,Kicker09 (For being awesome!)
Neerajganga (For forcing and encouraging me to write this tutorial)
To all the others who helped me during this transition of mine.You know who you are!Also a huge thanks to all the developers without whom this wouldn't have been possible.
I'll try to cover all the mods that I have done so far gradually and I'll start with the easier ones.
Some of the tutorials may or may not already be available on the internet but I have been getting too many requests so I'll put everything together here.Remember that i am also NEW here so please dont flame me if i do things differently.However constructive criticism is always welcome!
I would appreciate a Thanks for all this as it took a lot of my time and effort.
So let's get started.
What you need to have installed on your PC :
-Android SDK - Get it here.
-Java Runtime Environment (APKtool needs at least ver. 1.6) - Get it here.
-Notepad++ or Adobe Dreamweaver for editing XMLs.
-Draw9patch.bat [Included in the Android SDK]
-Apktool - Get it here. - I use ICS Apktool to recompile and Original Apktool to decompile.Works great with SystemUI.apk
-Photoshop or GIMP - Get GIMP here (It is a free software).
-APK Multitool v 1.0.5/APK Manager 5.0.2. Get them here. (You can use Apktool for the same functions i think,however I use them both depending on my needs)
-7zip or Winrar.
Please don't ask me questions on how to set up the above as the tutorial is not for that and you will find many tutorials/guides on XDA and elsewhere which explain the same.
What you need to know before doing some of these mods:
-Decompiling and compiling APKs-
There are many tutorials on XDA for this.And it's pretty straightforward.I will just try to explain how to decompile the tricky SystemUI.apk.
I modified TVTV's post for HTC Desire,threw in my bits and wrote the way to do this :
Step 1 (installing the tools):
- Download and install the latest Java Runtime Environment (APKtool needs at least ver. 1.6);
-Download Apk Tool(both Original and ICS Apktool.I linked you to both above.)
Step 2 (preparing to decompile):
- In order to properly decompile/compile SystemUI.apk, you need to install the framework with Apktool.
- Open your root explorer of choice and navigate to /system/framework;
- Copy "framework-res.apk" and "SystemUI.apk" to the SD card, then move them to your PC either via cable or via a software of your choosing.
- Put both "framework-res.apk" and "SystemUI.apk" into the folder where you've extracted Original Apktool;
- Open command prompt (Windows button + R then type "cmd") and navigate to the folder where you have Original Apktool and the framework apk;
- Type "apktool if framework-res.apk". Your file will be processed and the required bits will be "installed" in "C:/Users/<yourusername>/apktool/framework";
Step 3 (proper decompilation):
-For decompiling we will use the Original Apktool.
- Copy your SystemUI.apk from "/system/app" to the folder where you've installed the Original Apktool or copy the SystemUI.apk you wish to mod to the folder where you've extracted Original Apktool;
- Open a command prompt, navigate to the Original Apktool folder, type "apktool d SystemUI.apk" and wait till the original apktool has finished. You should get no errors whatsoever and your apk should now be decompiled into "readable format" in "<yourOriginalAPKtoolfolder>/SystemUI".
Step 4 (proper compilation):
- After making the desired changes in the decompiled apk, it's now time to compile it.
-For compilation we will use the ICS Apktool
-Copy the changed SystemUI folder,SystemUI.apk and framework-res.apk to the folder of ICS Apktool
- Open a command prompt, navigate to the ICS Apktool folder then type "apktool b SystemUI". Your apk will now be compiled to "<yourICS Apktoolfolder>/SystemUI/dist" (again, you should get no errors whatsoever). DON'T USE IT YET!
- Being a system app, SystemUI.apk must first be signed with the proper keys else odds are it won't work. To do that, you need to rename the SystemUI.apk you're editing (the original one) into SystemUI.zip, open it with an archive manager then extract META-INF and AndroidManifest.xml to the "<yourICS APKtoolfolder>/SystemUI/build/apk" folder, then run the "apktool b SystemUI" command again. Your APK will now be built with the proper keys included, and is now fully functional. You may "pick it up" from the "<yourICS APKtoolfolder>/SystemUI/dist" folder;
- You can now flash the resulting (modded) apk to your device either via ADB or via a way of your choosing (.ZIP from recovery etc.).
Have fun and remember to always do a nandroid backup before messing with system files!
-A general idea of what 9.PNG images are.
READ this to know what they are and how to use draw9patch.bat.
For patching 9.PNGs go to Yorzua's thread HERE.
Note: You can either follow all the steps in his tutorial for creating the image and then use the drag and drop(7zip,winrar) method OR skip step 3 of his tutorial and compile the image along with the previously decompiled apk.In other words,if you decompile the apk,then skip step 3 and if you want to use the drag and drop method,then follow the entire tutorial of Yorzua.Usually when a simple 9.PNG patch is required,Yorzua's method can be followed,but when we are editing XML files,we need to decompile the apk and then recompile it as otherswise the XMLs wont be editable as they are encrypted).
So now that we are settled with that,let's begin the real stuff starting with the easiest :
NOTE : I ATTACHED AN EMPTY FLASHABLE ZIP FOR YOU GUYS.
After you mod your framework-res.apk, SystemUI.apk etc you need to place
them(drag and drop the modded apk's) inside the flashable file using 7zip or Winrar.
SystemUI.apk and Contacts.apk goes inside /system/app
Framework-res.apk goes inside /system/framework
After flashing any mod,dont forget to fix permissions!
If you are on a kernel other than Siyah kernel do the following steps :
-Reboot to recovery
-Mounts and storage
-Mount /system
-Flash zip
-Fix permissions
-Reboot system
ANIMATED NOTIFICATION DROPDOWN BACKGROUND​
- Decompile your SystemUI.apk
- Navigate to /res/layout/ and open status_bar_tracking.XML
- Use Notepad++ to change the following lines of code.
Now add this line:
Code:
android:background="@drawable/dropanim"
to
Code:
<com.android.systemui.statusbar.phone.TrackingView android:orientation="vertical" android:paddingLeft="0.0px" android:paddingRight="0.0px" android:paddingBottom="0.0px" android:focusable="true" android:visibility="gone" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android">
-The "dropanim" is basically the name of the XML file that you are gonna create next.So you can name it whatever you want.
-Save the XML file and navigate to /res/drawable
-Inside this drawable folder , make an XML file named "dropanim".
-This XML file will basically point to all your resources(images).The images should be PNG images.Depending on the number of images you use,the code will be accordingly written.From personal experience,i would say don't exceed 30-35 png image files.Also there are ways to make the animation play only once,to make it play once forward and then reverse infinite number of times.More on that a little later.
-The android:drawable="drawable/anim1" syntax points at the images.Here the image name is anim1.
-You can refer the code below for this XML file.Depending on the number of images you use,you will have to edit the code accordingly.
Code:
<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="150" android:drawable="@drawable/anim1" />
<item android:duration="150" android:drawable="@drawable/anim2" />
<item android:duration="150" android:drawable="@drawable/anim3" />
<item android:duration="150" android:drawable="@drawable/anim4" />
<item android:duration="150" android:drawable="@drawable/anim5" />
<item android:duration="150" android:drawable="@drawable/anim6" />
<item android:duration="150" android:drawable="@drawable/anim7" />
<item android:duration="150" android:drawable="@drawable/anim8" />
</animation-list>
-Here the 'duration' part signifies the time lapse you want between frames in milliseconds.
-The above code is an example for 8 images.Thus there is anim1 to anim8.
NOTE: - If you want the animation to play for only once,then in the code above replace
Code:
<animation-list android:oneshot="false"
with
Code:
<animation-list android:oneshot="true"
.
-If you want the animation to play in reverse once it has reached the end then firstly keep
Code:
<animation-list android:oneshot="false"
set to false
and add the line :
android:repeatMode="reverse" after
Code:
<animation-list android:oneshot="false"
This line will make your animation play in reverse.
-Save this XML file.
-Now navigate to the drawable-hdpi folder and place your images there.
-Recompile your SystemUI.apk
-And then use ADB or a flashable zip to enjoy your newly modded and animated background!
Preview of one that i had done for Resurrection Remix:
NOTIFICATION DROPDOWN BACKGROUND MOD​
So this one is something that i have been getting many requests for and although i had initially implemented it as a theme , I finally learnt how to make it as a flashable zip.Pretty easy once you know what to change.So lets get on with it.
For this particular mod you will again need to know how to compile and decompile the apk.Also needs proper knowledge of 9 PNGs.The 9.PNG concept is pretty important here as unlike the other mods,the stretching of the image takes place to a large extent to cover the entire area of the notification background,so if it not done properly,then you will see white/transparent empty spaces in the area that is hidden behind the toggles.This happens because the image didn't 'stretch' out to cover the empty part.
Here we go..
-Open Photoshop or GIMP and make the image that you want to set as you dropdown background.This must be a PNG image of size roughly around 536x398 pixels.
Ensure that when you finally save the above image,you save it with a 2 pixel transparent border at the left and right and a 2 pixel transparent border at the bottom.This is because when the picture gets stretched later on,we want the transparent bit to get stretched and not the actual picture as it will result in the distortion of the edge pixels then.If the transparent bit is stretched,there is no problem with that.
So finally after saving the image with a 2 pix border everywhere except the top,we'll get an image of 540x400 pixels.This image should be saved as notification_bg.png.
Size is not a very critical issue but if you exceed you may get a clipped picture.
-Having done that, we need to now define the stretching and content parameters using draw9patch.bat tool from the android sdk.
You can use this image as a reference on how the border pixels will have to be.This is totally upto you and you will be able to see the stretching and preview of it in the draw9patch tool.
Reference image :
{
"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"
}
-Save the 9.PNG as notification_bg.9.png.
Now we need to edit the XML files to point it to our new image.
-For this first decompile SystemUI.apk using the method and tools i explained earlier.
-Navigate to res/layout/status_bar_tracking.xml
-Open it with Notepad++ and change the following code from :
Code:
<FrameLayout android:background="@drawable/notification_tracking_bg" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
<com.android.systemui.statusbar.policy.WeatherText android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:layout_gravity="bottom" android:paddingBottom="40.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" />
<com.android.systemui.statusbar.phone.CarrierLabel android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:layout_gravity="bottom" android:paddingBottom="20.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</FrameLayout>
to
Code:
<FrameLayout android:background="@drawable/notification_bg" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
<com.android.systemui.statusbar.policy.WeatherText android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:layout_gravity="bottom" android:paddingBottom="40.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" />
<com.android.systemui.statusbar.phone.CarrierLabel android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:layout_gravity="bottom" android:paddingBottom="20.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</FrameLayout>
-Save the file.
-Now navigate to res/values/drawables.xml and change the line :
Code:
<item type="drawable" name="notification_tracking_bg">#d8000000</item>
to
Code:
<item type="drawable" name="notification_tracking_bg">@drawable/notification_bg</item>
-Save it.Now both your XML files point to the the correct images.
-After this simply recompile the SystemUI.apk and you are done.To flash it you can use my attached flashable zip.
-Enjoy
NAVIGATION BAR BACKGROUND MOD​
-Open up Photoshop or GIMP and make your navigation bar background image that you want to use.It has to be a PNG image of about 540x70 pixels.You can take any image from the net: resize it,crop it,change the tint etc, but it needs to be roughly of that dimension.
-After you are done with that image,you will need to make another image so that it can be used in landcape mode.Now the dimension of the landscape image needs to be 70x540 pixels roughly.Usually once you are done with the portrait background,just rotate it by 90 degrees to get the landscape image.Remember that both need to be PNGs.
-Save the portrait and landscape images with any name.For example i will use "raja_nav_bg.png" for the portrait image and "raja_nav_bg_land" for the landscape image.
-Now,it's time to use those images in our SystemUI.apk.
-To do this first decompile SystemUI.apk using apktool.You will now find a SystemUI folder in your apktool path.
-Copy the two images that you made earlier and paste them in this path:
SystemUI\res\drawable-hdpi
-Now the thing is that we need to edit 3 XML files.All these XML files are located in the layout folder of SystemUI and are related to the navigation bar background.Each of them point to a hexadecimal colour code.We need to change that and make them point to a drawable resource,which in our case are the 2 images that we made.
-To do this first go to SystemUI/res/layout and open the file navigation_bar.xml with Notepad++.
-Change this line :
Code:
<com.android.systemui.statusbar.phone.NavigationBarView android:background="@drawable/nav_bar_bg" android:layout_width="fill_parent"
to
Code:
<com.android.systemui.statusbar.phone.NavigationBarView android:background="@drawable/your_portrait_image" android:layout_width="fill_parent"
Remember that in the @drawable part,we do not have to give the extension of the file.Just the file name.
-Now navigate below in the page near the Frame Layout section that says android:[email protected]/rot90 and add this to the existing code :
Code:
android:background="@drawable/your_landscape_image"
So the existing part becomes something like this after the addition :
Code:
FrameLayout android:id="@id/rot90" android:paddingTop="0.0dip" android:background="@drawable/your_landscape_image" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent">
-Now save the XML file and close it.
-In a similar and identical manner we need to edit the navigation_bar_naked.xml and navigation_bar_search.xml.
2 edits in each of them.One near the FrameLayout for landscape and the other one at the top for the portrait image.
-After editing all the files,save them and exit.
-Now copy this changed SystemUI folder to ICS apktool folder and recompile it.Follow the steps that i stated earlier on how to recompile and you will have your modded SystemUI.apk
Then either use ADB or a flashable zip file to use the new SystemUI.apk on your phone!
A screenshot of a navigation background mod that i did for Resurrection Remix :
TOGGLES BACKGROUND MOD​
Many users had requested me to put a jet black background behind the toggles instead of the zigzag lines.So here is the way to change them..
- Open up Photoshop or GIMP and make a PNG image/background of 960x180 pixels resolution.If you want it transparent then you can keep it so using Photoshop.Name this image as notify_panel_notification_icon_bg.png.
-Save it somewhere on your desktop
-Now use 7zip or Winrar to open framework-res.apk in view mode.Don't extract it.
-Navigate to framework-res.apk/res/drawable-hdpi and drag and drop the image that you made here, and by doing that you will replace the existing notify_panel_notification_icon_bg.png image of size 14x14.
-Keep the framework-res.apk somewhere safe as we shall be using this one while flashing the mod or with Adb.
So the original image was a 'tile' image of 14x14 pixels and we just replaced it with another image having a dimension of 960x180 pixels.Initially,the tile image was 'repeated' several times using a code in one of the xml files in SystemUI.apk and thus it appeared to be spread out over the area behind the toggles.We need to now disable that as we are using a background of 960x180.
-To do this we need to first decompile SystemUI.apk
-After doing so navigate to the SystemUI\res\drawable folder.
-Open status_bar_ticker_background.xml with Notepad++.
-Change the existing code from :
Code:
<?xml version="1.0" encoding="utf-8"?>
<bitmap android:src="@android:drawable/notify_panel_notification_icon_bg" android:tileMode="repeat"
xmlns:android="http://schemas.android.com/apk/res/android" />
to
Code:
<?xml version="1.0" encoding="utf-8"?>
<bitmap android:src="@android:drawable/notify_panel_notification_icon_bg" android:tileMode="disabled"
xmlns:android="http://schemas.android.com/apk/res/android" />
-Save the XML file.
Note: Incase you want to use a transparent background,then you dont have to edit the XML file as a transparent image of 14x14 pixels in the drawable-hdpi folder of framework-res.apk will give you transparent toggle background.
-After editing the above XML file , recompile SystemUI.apk.
-Now,both your framework-res.apk and SystemUI.apk have been modded and you can use them on your phone and get whatever background you desire.
A screenshot of a purely black toggle background that i made for Resurrection Remix :
PULLDOWN BAR MOD​
This mod is for the bar that we get when we pull down the notification dropdown.This has been done many times before but I will share it nevertheless as some users cannot find what they want.
It is a simple mod that doesn't require editing any XML files.It does however require the patching of a 9.PNG image.
We shall be using Yorzua's method here which will help us in optimizing the 9.PNG image so that the 7zip drag-and-drop method can be used here,rather than going into the lengthy process of decompiling the SystemUI.apk,pasting the unoptimized 9.png in it and recompiling it again). 9.PNG images get optimized on recompiling,but Yorzua's link lets us use a tool which will optimize the image beforehand so that we can just drag and drop it there).
-Firstly open up SystemUI.apk with 7zip or Winrar.
-Navigate inside the drawable-hdpi folder and find the file status_bar_close_on.9.
-Drag it and drop it on the desktop.We will use this file for reference purpose while patching the 9.PNG image.
-Now open up Photoshop or GIMP and make your bar image.It should be a PNG image of around 476x42 pixels(This is variable and the width can be anything within 480 pixels and the height can be within 48 pixels).Save it as status_bar_close_on.png.
-So now we have your PNG ready and we need to make it a 9.png using the draw9patch.bat file in the Android-SDK.Many people prefer to do it with Eclipse but that's just complicated and a miserable way of doing it.
-At this stage,I expect you to have read enough about 9.PNG images from the links i gave at the start of this thread.If you haven't then go and read it as it might be a bouncer otherwise.
-Now open draw9patch.bat and drag the ORIGINAL status_bar_close_on.9.png image that you had taken from the SystemUI.apk and drop it in the tool.
-Observe how the borders of the image are and how the pixels have been drawn at all the borders.Each pixel is important and changing even one of them can result in a big visual difference.These pixels contain the stretching information and changing them can change the whole behaviour of these images.Remember the pattern and the coordinates of these pixels as you will have to need to do the same thing while patching your status_bar_close_on.png.You can change one or two pixels in the left and top border just to see how the image stretches in the right viewing pane of draw9patch tool.
-After you got an idea of these 9.png files,you have to do make the same border so that it stretches properly with your status_bar_close_on.png image.
For reference,you can use this 9.PNG file of mine also :
-After you are done patching the image properly save it as status_bar_close_on.9.png
-Open SystemUI.apk again with 7zip or Winrar and navigate to the drawable-hdpi folder.
-Drag and drop your new 9.png image that you made and overwrite the existing one.
-Close the apk.
-Your modded SystemUI.apk is now ready.
-Use ADB or a flashable zip for getting it on your phone.
A screenshot of the pulldown mod i had made for Rootbox :
SYSTEM+DIALER BACKGROUND MOD​
Most people know this.It is very easy and no XML editing or 9.PNG is required.However you need Contacts.apk for changing the dialer background.
-Simply take your favourite pics of 480x800 resolution.They must be PNG images.
-For the picture that you want to use as the dialer background,name it as
background_dial_holo_dark.png.
-For the picture you want to use as System background(for example Settings background) name it as background_holo_dark.png
-You will need framework-res.apk and contacts.apk for this.
-Using 7zip or winrar open framework-res.apk and navigate to :
framework-res.apk\res\drawable-nodpi
-Drag the background_holo_dark.png that you made and drop it inside this and in doing so you will replace the existing one.
-Close the apk.
-Now open Contacts.apk with 7zip or Winrar and navigate to
Contacts.apk\res\drawable-nodpi
-Drag the background_dial_holo_dark.png that you made and drop it here and replace the existing one.
-Done.Your contacts.apk and framework-res.apk files are now modded and you backgrounds will also change.Simple,isn't it?
Some screenshots of the system+dialer background that i had made for Resurrection Remix :
LOCKSCREEN HANDLER MOD​
This is again an easy mod and no skill required.
-For this mod you will need framework-res.apk
-Make 2 handler icons,one that will be normally be displayed on the lockscreen and the other that it will change to when pressed for unlocking.
-Name the 1st icon as ic_lockscreen_handle_normal.png and the second icon
as ic_lockscreen_handle_pressed.png.
-Remember that both the images need to be PNG images of 162x162 pixels.
-Now open up framework-res.apk with 7zip or Winrar.
-Navigate to framework-res.apk\res\drawable-hdpi and drag and drop the two images above inside this and replace the existing ones.
-Done,you can now close the apk and use your modded framework-res.apk.
You can find some amazing lockrings icon here.Be sure to use the HDPI ones.
A screenshot of these mods :

Nice, great work, mate!

Reserved
Haha thanks legend..forgot to reserve a post there..

SilencerOfLambs said:
Reserved
Haha thanks legend..forgot to reserve a post there..
Click to expand...
Click to collapse
he can actually delete his post
edit: whoopps. mistaken xda for another forum. dont mind me! heh

very well compiled one dude, gr8 work keep it up

Great work mate. Keep it up. :thumbup:
Sent from my GT-I9100 using Tapatalk 2

Thanks all!
You guys were solely responsible for whatever I have learnt!

SilencerOfLambs said:
Reserved
Haha thanks legend..forgot to reserve a post there..
Click to expand...
Click to collapse
Oops, sry about that.. :silly:
When's Part 2 coming?

finally the wait is over .... thanx man

LegendZenify said:
Oops, sry about that.. :silly:
When's Part 2 coming?
Click to expand...
Click to collapse
Weekend mostly
vegeta1 said:
finally the wait is over .... thanx man
Click to expand...
Click to collapse
Thanks mate!

Great tutorial! Keep it up!
I know that a lot of users will use this!
Second, I get less messages to make mods as well. Lol
Now I got more time to explore the rest of XDA
Send from the godfather of smartphones to your face!!

Vreestyle said:
Great tutorial! Keep it up!
I know that a lot of users will use this!
Second, I get less messages to make mods as well. Lol
Now I got more time to explore the rest of XDA
Send from the godfather of smartphones to your face!!
Click to expand...
Click to collapse
Haha honestly..It's much easier to guide people to a tutorial than make mods for everyone as it gets tedious..
And thanks

Fantastic tutorial...exactly what I need and very well explained...this along with Kros tutorial will hopefully help me to theme whatever I see fit! Can't wait for part 2!
Sent from my GT-I9100 using xda app-developers app

somepepe**** said:
Fantastic tutorial...exactly what I need and very well explained...this along with Kros tutorial will hopefully help me to theme whatever I see fit! Can't wait for part 2!
Sent from my GT-I9100 using xda app-developers app
Click to expand...
Click to collapse
Pleasure mate
Sent from my GT-I9100 using xda premium

Hi!
I have installed just 4fun a batman's theme. To be honest i dont like it very much. Especially because of that silly bat type icon instead of normal one on lockscreen. How can I turn the default theme back on? I am using RootBox ROM.
Sent from my GT-I9100 using xda app-developers app

Dioktis said:
Hi!
I have installed just 4fun a batman's theme. To be honest i dont like it very much. Especially because of that silly bat type icon instead of normal one on lockscreen. How can I turn the default theme back on? I am using RootBox ROM.
Sent from my GT-I9100 using xda app-developers app
Click to expand...
Click to collapse
To get your original look back,you will need to copy your original framework-res.apk,SystemUI.apk and Contacts.apk to the proper places in a flashable zip file and then flash it in CWM recovery.You can get the original files from your ROM zip.You can use the empty flashable zip file i attached in the OP.
framework-res.apk will go in /system/framework
contacts.apk and SystemUI.apk will go in /system/app
Alternatively if you only want to change the lockscreen icons,follow the steps in the OP for the lockscreen mods.
I have attached the default lock rings for you.(Just click on them and you will be able to see it.It's white so it appears invisible..)

Phew Finally
Nice work

Sorry for noob question. How can I run ICS and Original apk tool ?

Arnadel said:
Sorry for noob question. How can I run ICS and Original apk tool ?
Click to expand...
Click to collapse
Ask that question here :
http://forum.xda-developers.com/showthread.php?t=1558171

dude that's great.
could you please make a tutorial about "theme chooser" themes? you know they are really easy to implement and change.

Related

[GUIDE] Modding (theming) Market app and others

Since there was quite pm's for on how to theme market or any other app. So decided to put one guide how to do it.
Basiclly this is for market app but can be also used for other apps.
If you like my work you can buy me a drink; cheers
For start you need:
- Apktool 1.3.1 version (don't use 1.3.2 version) or
http://code.google.com/p/android-ap...ol-install-windows-2.2_r01-3.tar.bz2&can=1&q=
http://code.google.com/p/android-apktool/downloads/detail?name=apktool-1.3.1.tar.bz2&can=1&q=
- Apk manager (I use apktool and prefere)
http://forum.xda-developers.com/showthread.php?t=695701
- Gimp or Photoshop
- Something for 9.png's (I use gimp for that and will explain later how and what)
- orginal file (watch that file isn't themed orr modded already)
- 7zip
- Notepad (for editing xml files; some use other text programs like Notepad++ but I use palin windows Notepad)
Now when you have everything you need we can start. If you have orginal file is also to have modded one so you can compare what was changed. Market had changes from 2.2x version till now so you can't just copy and paste files from one to another file or drag them from another apk to another. Basiclly few folders can be copyed into app which your modding. Rest you can see what is same and what isn't by comparing how many xml files are in each folder. (you might say it takes long time but that's the best way and only one way for start to do it; when you get hangoff it you want do it and when you see which are basic things and commen to all Market apps.)
Now let's start with de-compiling your file/files:
If you use apktool use version 1.3.1 since newer ones 1.3.2 has some bug in de-compiling and compiling.
Copy somewhere your downloaded apktool (some folder) and also copy in there apps your modding.
{
"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"
}
Open CMD (Command prompt) in Windows and go to folder where your apktool is (I think I don't have to write command how to get there.... ; but here is little trick if you don't know for windows 7 which will open cmd in folder you are >> Open apktools in your Windows Explorer next hold Shift on keyboard and while holding it click your right mouse button and when menu opens just select Open command window here; and now your in cmd where your apktool is).
So now we need to de-compile file to see what we have in there since when you open apk file in 7zip not all folder are shown!
Run command to de-compile apk
apktool d -d Vending.apk
Click to expand...
Click to collapse
(Vending.apk is name of market app or it can be com.android.vending-1.apk)
Now you wait till de-compiling is finished. When finished in your apktool folder you'll see folder called Vending (that is de-compiled apk file).
In Vending folder you have this:
- res folder
- smali folder
- AndroidManifest.xml
- apktool.yml
From list we are more interested in res folder since it has what we needed rest of files/folders we don't touch.
Ok now we open res folder and we have quite number of folder in there and each folder has quite number of png files or xml files.
In res folder these folders are interesting for us:
- color (xml files)
- drawable (xml files; few png's)
- drawable-da-hdpi-v4 (png file)
- drawable-da-mdpi-v4 (png file; it for mdpi devices; some edited some not it's on you will you edit it or not)
- drawable-hdpi-v4 (png files)
- drawable-mdpi-v4 (png fiels; I didn't see anybody editing it)
- layout (xml files)
- values (xml files)
So those are folder we are editing and modding and rest we don't touch!
Now were going to start with xml folders.. Lets start with color folder. When you edit xml file with notepad for example just click on Save option in notepad menu and not Save As and file will be saved and later will won't be any problems when compiling back app. In there you have 4 xml files which you can edit colors in them for some texts. I only edit xml called header_text.xml.
In header_txt.xml file you see this line
Code:
<item android:color="@android:color/black" />
part you can change is where it says color/black and can be changed to color/white and nothing else!!! (This part is like file name says for header text in which color to show). So for color folder that's it. (If you want you can play with other xml's in there if you see something like android:color="#ffbb0000" this your color in hex code and it has to be written in hex code for example to be "gingerbread green" it should be this "#ff96d21e")
When done with color folder were moving to drawable folder and in there we only need 1 xml file called bottom_light_gradient.xml. In there you need to edit this line
Code:
<gradient android:startColor="#ff96d21e" android:endColor="#ffffffff" android:angle="90.0" android:type="linear" />
from #ff96f21e" you only change 96d21e to color you want and first 2 ff need to be there! Second color is "#ffffffff" for white background and if your market has blackbackground or transparent cahnge that color from "#ffffffff" to "#00000000".
As far as I know (didn't search and look rest of xml files in drawable folder) nothing else can be changed in other xml files in drawable folder since rest xml files contain pictures names which to use for what.
Moving on to next folder which has xml files which we need to edit; folder called layout.
In layout there is quite number of xml files you can edit colors in hex format but basiclly you need only few files to edit so you don't have trouble like white text on white background.
So for here I edit only 3 files (2 files are for widget and one is for writting review for some app.)
Files your editing are:
- widget_app.xml
- widget_no_content.xml
- write_review.xml
In first 2 files you can replace line where it says /white or /black. (I wrote before what you can write there). Also if you want you can change some of xml files in this folder but in my opinion there isn't any need for that.
Last file write_review.xml is one I had problems with it when using Neon or Black version while writting review (comment) for some app. Thanks to MikeyMike01 it's resolved. If your using normal background as main to be white (like in stock version) then you don't need to touch any of files from layout folder; or you can play with them (your decision).
Here is orginal line from write_review.xml file
Code:
<EditText android:textColor="?android:textColorPrimary" android:gravity="top" android:id="@id/comment_box" android:layout_width="fill_parent" android:layout_height="fill_parent" android:maxLines="4" android:minLines="4" android:maxLength="150" android:freezesText="true" android:inputType="textLongMessage|textCapSentences|textMultiLine" />
Here is part you have to edit when using other color for main theme background in app
Code:
<EditText android:textColor="#ff000000" android:gravity="top" android:id="@id/comment_box" android:layout_width="fill_parent" android:layout_height="fill_parent" android:maxLines="4" android:minLines="4" android:maxLength="150" android:freezesText="true" android:inputType="textLongMessage|textCapSentences|textMultiLine" />
When finished with layout folder we are moving to last xml folder we need to edit called values (for every app it's almost same and all of them have it) and in there we only are interested in 2 files called:
- colors.xml
- styles.xml
In colors.xml you can change anything you want but as long as it's in hex color code and needs to start with #ff and ends with you 6-digit hex color code like this for steel blue #ff00aeff. Not sure if I need to explain which color is which since it has quite lines in there but you can play with them to see which line is what. My advice is to set different colors to see what is changed when you run your themed app and then you'll see result of your various colors and fix them one by one in file on your computer.
Final xml file which we need to edit is styles.xml and there are only 3 lines you change. First 2 lines are colors (1st is text name of color and like written before can only be black or white and 2nd line is hex color code). Last line in file your changing is look of your app aka "theme" to be with transparent background, black or white.
This is line your looking for and this one is for white background
Code:
<style name="TallTitleBarTheme" parent="@android:style/Theme.Light.NoTitleBar">
for black or neon version line looks like this
Code:
<style name="TallTitleBarTheme" parent="@android:style/Theme.Black.NoTitleBar">
for transparent versions line looks like this
Code:
<style name="TallTitleBarTheme" parent="@android:style/Theme.Translucent.NoTitleBar">
Another on for transparent if you don't like pages to be one over other is not use Translucent; use this line
Code:
<style name="TallTitleBarTheme" parent="@android:style/Theme.Wallpaper.NoTitleBar">
WARNING: Don't copy xml files from older version of apps to newer one since there can be some changes in them; only file you can copy without any problem at all is file color.xml in values folder and file bottom_light_gradient.xml in drawable folder.
Well that's it for xml files and were moving on pictures in png format. All png's can be edited with gimp or photoshop like written before without any problem. Problematic files are called 9.png which aren't that easy to edit.
Problem with 9.png files is that they have black "dots" or lines around sides which indicate to android how will image be streched and sized to fit and look right.
Here is guide you look and read closely how and what to do on 9.png files.
http://forum.xda-developers.com/showthread.php?p=5206698
Myself I edit them with gimp using colorize function and after that I look closely how do black dots and lines look and is there any change in there color. If there is any change in color when compresing file you'll get error. So before going into editing 9png files read guide from link and if you want try my method which isn't in some way most efficent since you have to zoom and look closely every pixel in image to see if looks like orginal one!
Png files are listed in folder I wrote before on start of guide. Most of us who mod markets don't mod mdpi folders since most users use hdpi devices. But if you want you can edit.
Also one notice in market folder drawable-hdpi-v4 don't touch these 2 files since when edited on compiling you always get an error. Not sure why; tried every method to edit them but didn't work?!
Files are:
- title_bar_light_shadow.9.png
- title_bar_shadow.9.png
Also don't edit png called transparent.png.
After your done with editing and changing png files your ready to compile you new app (market).
Like written before you need again CMD (Command prompt) and run these command to compile file:
apktool b -d Vending
Click to expand...
Click to collapse
If you notice now there isn't .apk extension in compiling command and it because your compiling folder where you edited files. Now you have to wait for apktool to finish compiling files and it takes few minutes for that if no errors.
Little about errors little "bug" in apktool is that it doesn't create any log file so you can see which error your getting and you can't scroll windows much since it has quite lines written on screen and neither one is problematic xml or png file. So to see which error are you getting run command again to compile and when it starts to write errors hit Pause/Break key on your keyboard and YOU HAVE TO BE FAST!!!!! If you were fast enough just scroll with mouse and look for line after command where it says ERROR and there will be name of you "wrong" file and problematic part in it.
If your file is compiled and new apk is created it is in folder Vending in subfolder called dist. Now you can notice that there are 2 new subfolders created build folder and dist folder.
In build folder is your new app but not in apk format and if looking in it you can see only few folders in res folder and not all folders are listed like in res fodler where it's de-compiled. Now second folder called dist folder is folder where is created your apk file ready to be installed.
You thought it's done. Right? Well almost just a little thing and it's finished and this is where you need 7zip program. Most of apps need to be signed in order to android system can recognize them and if not signed apk file won't run if pushed with root explorer or installed if running it from zip file in CWM.
You need to open your orginal file called Vending.apk in 7zip and also open second 7zip and in it open new created Vending.apk located in Vending subfolder dist which we wrote few rows before.
When 2 apk files are opend each in it's own 7zip you can notice that your orginal file has META-INF folder and new one doesn't have it. Right?
Now in orginal apk file in 7zip select folder META-INF and file AndroidManifest.xml and drag it to 2nd 7zip with your new created apk file. In new 7zip you'll be asked if you want to copy or replace files and you just click on Yes button. (Thanks to pendo who told me about this)
Also your new apk file is smaller in size compered to orginal one and don't bother with that since it's normal. You'll see with each color edited in xml files apk will be different size.
Now your done and your file is ready to use and also signed. There are few methods about signing apk files but this for me presonally is easiest and quickest one. I know that apk manger can sign zips since I don't use it don't really know how it works and also apk manger uses most parts of apktools
but it has interface for users and creates log file for errors.
Before releasing apk file in public try it on your phone and see who it looks like; minor bugs you didn't notice you can fix later.
Your decision is do you want to use apktool or apk manager.
Hope this will help. In basic this is it and for most of apps can help but once you start it modding you'll learn few tricks. Most of us here will help if any problem like few users here helped me to get started with some basics
Guide about theming in general
http://forum.xda-developers.com/showthread.php?t=916814
If I find any other interesting guide I'll post it and if any problem or suggestions please feel free to post or pm me.
One thing in the end. DO NOT POST OR LINK GUIDE OUTSIDE FORUM PRIOR CONTACTING ME!!!
Regards,
ante
reserved?!
00.ante said:
reserved?!
Click to expand...
Click to collapse
Great Guide... Just needed the starting point !!!!
Thanks! Just what I requested!
Hi 00.ante, i love your work for the market and i hope that your skills will be used for your new team ^^ What a great tutorial and no one click the "thanks button", amazing !!!
By the way keep your mind and have a good day
Best regards.
Edit: Voted !
First of all, great guide here! I'm sure it will help a lot of people out!
On a side note, when I edit .9.png files I just "cut" out everything within the black lines and paste onto a new layer (use "paste in place" so the image doesn't move on you), make my color changes, then "merge down" the layers until it's layer 0 again, save .png as original - done. That way you don't even have to look at the black lines, you know they are correct because you didn't edit them. Just thought I'd throw this piece of information out there to hopefully save some people some time.
Great guide and an exellent resource for future themers. I will include a link to this in my sticky thread in captivate land.
Thank you
xtremekilla09 said:
Great guide and an exellent resource for future themers. I will include a link to this in my sticky thread in captivate land.
Thank you
Click to expand...
Click to collapse
Thanks
Sent from Steel Blue themed i9000 using blue XDA app
What a great idea... gonna have to try this out.
bdemartino said:
First of all, great guide here! I'm sure it will help a lot of people out!
On a side note, when I edit .9.png files I just "cut" out everything within the black lines and paste onto a new layer (use "paste in place" so the image doesn't move on you), make my color changes, then "merge down" the layers until it's layer 0 again, save .png as original - done. That way you don't even have to look at the black lines, you know they are correct because you didn't edit them. Just thought I'd throw this piece of information out there to hopefully save some people some time.
Click to expand...
Click to collapse
Sent from my PC36100 using XDA App
How do you change icon for app like you do with the market icons?
davey11 said:
How do you change icon for app like you do with the market icons?
Click to expand...
Click to collapse
Like in amrlet I use gimp or photoshop on png's.... if you mean totally cahnge icon it can be done but it needs to be same dimensions.
00.ante said:
Like in amrlet I use gimp or photoshop on png's.... if you mean totally cahnge icon it can be done but it needs to be same dimensions.
Click to expand...
Click to collapse
Sorry, I meant how to "push" it into the app, so it shows in app drawer and other places like TB.
davey11 said:
Sorry, I meant how to "push" it into the app, so it shows in app drawer and other places like TB.
Click to expand...
Click to collapse
For apps if you just want to change icon then open apk file in 7zip manager and from it drag folder drawable-hdpi in res folder to lets say your desktop and find ping waht are you looking for and edit it with gimp or photoshop. But only edit this way png extensions not 9.png.
Then when your done just drag folder back to apk opened in 7zip or just png file you edited.
Thanks 00.ante. With this guide and a few hours of experimenting, I made my first themed market.
Looks great
Is there a way to change to background image on the top of the market. I know how to change the color but changing the actual image would be great...
Anyone...
thanks in advance.
theme a market app
Is it possible to theme an app you got on the market and have it still show up. I am just learning how to theme apps, don' t know much at all. The specific app I am working with is titanium backup. I changed the color of the icon, got it to work, but now the app no longer shows up in the store and I can't activate the pro version either. I'm sure you can theme an app and still have it show up in the market, I have used custom roms that have themed apps that showed up in the market. The theming disappeared after updating, which is expected. Is it possible to do this after each update, not sure about the pro version though.
Were can I find the apk in my rom are they in the data/app folder ????
Thanks
Sent from my SGH-T989

[HOW-TO] Random Mods for the "do-it-yourself-er"

{
"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"
}
Here is a compilation of many mods which I have been using for myself which I thought the community might be interested in. Please bare in mind that I am not the original creator of many of these and credits follow below. I am merely collecting them all together so they are handy for those who want them.
Of course I am open to new/not included ones, so please post and alert me to them and I will update as regularly as possible. Enjoy!
THANKS TO:
-Jjdoctor (XDA)
-CrushedD (RootzWiki)
-Snow02 (RootzWiki)
-PvyParts (XDA)
-ArrTooDeeToo (RootzWiki)
-He_stheone64 (XDA)
-Fergie716 (XDA)
-Altimax98 (RootzWiki)
Volume-rocker screen-wake
-decompile android.policy.jar and open KeyguardViewMediator.smali
-search for "WakeKeyWhenKeyguard"
-scroll down a bit and delete the two lines that start with "0x18" and "0x19"
-save and recompile
Faster soft-key UI
-decompile SystemUI.apk and navigate to smali>statusbar>policy and open KeyButtonView.smali
-search for "setDuration(J)" and there should be two instances
-in first instance find the line above it, starting with "const-wide/16 v1", change to "0x28" for medium fast or "0x0" for instant
-in second instance find the same line and change to "0x80" for medium or "0x0" for instant
-save and recompile
Get framework-res.apk to recompile
*this is hella time consuming, but gotta do what you gotta do*
-decompile framework-res.apk and then recompile without making any changes
-take note of every values folder which a plurals file gives an error from
-now navigate to each of those specific values folders and open the plurals.xml
-find line 79 (using Notes++) and add a 2nd "%" to the second "%d" so it looks like this: <item quantity="other">%d of %%d</item>
-save each one and recompile when all completed
Change carrier label (both notification pulldown and lockscreen)
-decompile framework-res.apk and navigate to res>XML>eri.xml
-search for line starting with "64 Verizon Wireless"
-change the "Verizon Wireless" to anything you want, max 16 characters
-it must be 16 characters, so fill in missing characters with spaces on either side
--Example: " Galaxy Nexus " needs 2 spaces on either side to be correct
-save and recompile
Adding MIUI battery bar and remove stock battery
-decompile SystemUI.apk and navigate to res>layout>status_bar.xml
-add this line to the bottom:
Code:
<com.android.systemui.statusbar.BatteryBar android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="1.0px" />
-should look like this:
Code:
</LinearLayout>
<com.android.systemui.statusbar.BatteryBar android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="1.0px" />
</com.android.systemui.statusbar.phone.PhoneStatusBarView>
-now, in the same file, find the line starting with "<ImageView android:id="@id/battery"" and add "android:visibility="gone"" to the end of it
-now navigate to smali>com>android>systemui>statusbar and drop the 3 smali files in there from the attached zip from folder named "MIUI Battery Bar"
-save everything and recompile
-download the BatterBarSettings.zip, extract the apk, and install as you would any other apk to enable and customize the battery bar
Replace "recents" with "search" and add long-press recents to home button and long-press voice search to search button
-decompile SystemUI.apk and navigate to res>layout>navigation_bar.xml
-search for "android:id="@id/recent_apps"" should be 2 instances
-for first instance, replace entire line with:
Code:
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/recent_apps" android:layout_width="80.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_search" android:layout_weight="0.0" android:contentDescription="@string/accessibility_recent" systemui:keyCode="84" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
-for second instance, replace entire line with:
Code:
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/recent_apps" android:layout_width="fill_parent" android:layout_height="80.0dip" android:src="@drawable/ic_sysbar_search_land" android:layout_weight="0.0" android:contentDescription="@string/accessibility_recent" systemui:keyCode="84" systemui:glowBackground="@drawable/ic_sysbar_highlight_land" />
-now search for "android:id="@id/home"" should be two instances, in both find and delete "systemui:keyRepeat="false""
-now navigate to res>values>public.xml
-search for "ic_sysbar_recent" change to "ic_sysbar_search" and right below it change "ic_sysbar_recent_land" to "ic_sysbar_search_land"
-finally find some icons you want and replace them in res>drawable-xhdpi and you can delete the recents ones too
-save everything and recompile
Center lockscreen slider and clock
-decompile framework-res.apk and navigate to res>layout
-drop in the two files from the attached zip from folder named "Center Lockscreen" overwriting old ones
-recompile
1% battery increments
-decompile SystemUI.apk and navigate to res>drawables
-drop in the two files from the attached zip from folder named "Percent Battery" overwriting old ones
-now find whatever battery images you want and place them in res>drawable-xhdpi
-recompile
Change color of statusbar clock and date
-decompile SystemUI.apk and navigate to res>values>styles.xml
-for clock, search for "
TextAppearance.StatusBar.Clock" and date search for "
TextAppearance.StatusBar.Date"
-under each, find the line starting with "
android:textColor" and change the hex value to whatever you want
--example, "fffffff" would be white
-save and recompile
Change color of soft-key background
-decompile SystemUI.apk and navigate to res>layout>navigation_bar.xml
-find the line that starts with "<com.android.systemui.statusbar.phone.NavigationBarView" (should be second one)
-fine "android:background="#ff000000" and change the hex color to whatever you want
--example, "ffffffff" would be white
-save and recompile
Launcher2 modifications
-I'm not actually going to type all of this out because a fantastic guide has already been put together to hide the search bar, increase number of rows, and increase/decrease number of screens. It can be found HERE.
Thank you thats very helpful^^
Nice one. Thanks
Sent from my A500 using Tapatalk
What programs does this require? Which are the best? (running on Mac, but I have bootcamp, so I would prefer a program that's compatible with Macs).
wonderfull howto's!!!!!+1
Huge thanks for all of this!
anton2009 said:
What programs does this require? Which are the best? (running on Mac, but I have bootcamp, so I would prefer a program that's compatible with Macs).
Click to expand...
Click to collapse
I use Apktool and Notepad++, so this guide was written assuming that. I find it to be the easiest to use, but there are plenty out there to choose from.
Just added how to color of the soft-keys background. Obviously remember that this does not change the color of the soft-keys themselves, so you will have to replace them to contrast whatever color you choose.
Thank you for this wonderful info. Do you know how to enable the menu button even when it is hidden? I know that the systemui.apk has to be decompiled and navigation_bar.XML has to be edited. But exactly what needs to be edited is what I do not know. Thanks.
Thanks for everything in this thread, very helpful.....my only question is, if I decompile SystemUI and then immediately try to recompile, I end up with a different file size.
Im guessing this is not normal.....what am I missing in my environment setup to be able to decompile/recompile successfully?
Is it not possible to use the softkey background colour mod to make it transparent (ie. see the wallpaper behind softkeys) I tried editing the alpha to 00 but it doesnt seem to have worked or is another mod required to stretch the wallpaper into this area?
i'd love a how-to on modifying the lockscreen to include SMS and Phone shortcuts
Immix said:
Thank you for this wonderful info. Do you know how to enable the menu button even when it is hidden? I know that the systemui.apk has to be decompiled and navigation_bar.XML has to be edited. But exactly what needs to be edited is what I do not know. Thanks.
Click to expand...
Click to collapse
I don't know how to do that at this time, but it is on my list because I too would like to know this. So as soon as I find out, I will update with it.
chrisexv6 said:
Thanks for everything in this thread, very helpful.....my only question is, if I decompile SystemUI and then immediately try to recompile, I end up with a different file size.
Im guessing this is not normal.....what am I missing in my environment setup to be able to decompile/recompile successfully?
Click to expand...
Click to collapse
Hmm, no I don't think so. I don't usually compare the file size (just assume everything is good lol) so I can't say for sure. Are you using apktool? The only thing I can think of is: if you are using apktool, you have to replace the META-INF folder (and android manifest too) in the new apk with the one from the old apk. So if you didn't know that, this could be your problem.
be77amy said:
Is it not possible to use the softkey background colour mod to make it transparent (ie. see the wallpaper behind softkeys) I tried editing the alpha to 00 but it doesnt seem to have worked or is another mod required to stretch the wallpaper into this area?
Click to expand...
Click to collapse
Hmm I never actually thought or tried that, it's a good idea though. So what happens when you set it to 0?
mrvirginia said:
i'd love a how-to on modifying the lockscreen to include SMS and Phone shortcuts
Click to expand...
Click to collapse
Haha join the club, I would also love to know that. Believe me if I ever find out, you guys will be the first to know.
Thanks for writing this up, I am trying to learn more about the process and how to do more mods, but I am stuck when trying to decompile .apks. I have managed to decompile android.policy.jar and framework.jar to do some simple volume wake and granularity mods, but I was trying to figure out how to remove the paging from rosie.apk and ran into a roadblock. I keep getting magic number errors everytime I try to do the decompile. I was getting the same problem when I started with the .jar files, but I was able to get past it by getting the latest smali/baksmali updates. I have been trying to use apktool and also apkbuilder but can't get past the magic number errors. Can anyone offer a suggestion to get past this please?
Thanks, for the tutorial! But editing eri.xml does not effect the carrier name. I am running CM9 on the Maguro (GSM Galaxy Nexus). Is the carrier info stored elsewhere?
And, could the app drawer icon be added to the navbar?
Sent from my Galaxy Nexus using xda premium
out of topic,can i decompile jar file using apktool?
Bump. I'm running miui v4 on toro (vzw cdma) and can't get the carrier to change either. Tried root tools also and was a no go. Anyone have any ideas where else the carrier could be stored?
aiinjylls said:
Thanks, for the tutorial! But editing eri.xml does not effect the carrier name. I am running CM9 on the Maguro (GSM Galaxy Nexus). Is the carrier info stored elsewhere?
And, could the app drawer icon be added to the navbar?
Sent from my Galaxy Nexus using xda premium
Click to expand...
Click to collapse
Miui since 0.9.x
Nice.!
Sent from my PG86100 using XDA
00McD00 said:
Volume-rocker screen-wake
-decompile android.policy.jar and open KeyguardViewMediator.smali
-search for "WakeKeyWhenKeyguard"
-scroll down a bit and delete the two lines that start with "0x18" and "0x19"
-save and recompile
Click to expand...
Click to collapse
That method not working in 4.2
"KeyguardViewMediator.smali" in /com/android/internal/policy/impl/keyguard_obsolete/
modified that not changed

[GUIDE][WIP]Ultimate Miscellaneous Guide(Decompiling, 9 png, Photoshop)

Ultimate Editing and Theming Guide​
Preliminary Requirements:-
PC with Windows(Please avoid Windows Vista)
Java JRE or JDK
APK Multitool
framework-res.apk, SystemUI.apk, twframework-res.apk for installing
7-zip
Notepad++
Android Device for testing
Photoshop or equivalent image editing software
android-sdk(for 9 png editing)
Lots and lots of patience and mind
What this guide includes:-
1. Easiest Decompiling and Recompiling Guide *Must Read before continuing*
2. Explanation of 9 pngs and how to edit or make them
3. How to Batch edit pngs (Not 9 pngs) (Changing color, etc)
4. How to change path thickness of Pattern Lockscreen to ICS style
First Step:
Decompiling: [MUST READ]
We are assuming that you have installed JAVA, Android SDK and apk-multitool without any problems
1. Copy your mobile's framework-res.apk, SystemUI.apk and twframework-res.apk in others folder in directory where you have extracted apk-multiool
2. Open Setup.bat. Choose 2 :- Installing Framework-res
{
"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"
}
Setup.bat​
Choose 1 (framework-res.apk)
Choose 2 (twframework-res.apk)
Choose 4 (SystemUI.apk)
Window will close each time you choose an option
You will have to restart Setup.bat each time
3. Now place the apk you want to edit in place-apk-here-for-modding
4. Now open script.bat. (If you see any error, either you haven't installed JAVA and SDK[adb] or they aren't implented, Please install them properly before continuing). Click any key to continue
APK-Multitool Window​
5. You will see the above window. Now, make sure you have installed all frameworks and Compression level is set to 9.
6. Now, we will choose our project. Click 24. A list of files present in place-apk-here-for-modding will be in front of you. Choose any file
7. Click on 9. Now decompiling will be in process.
8. After it is complete, go to projects folder, you will see a folder with the name of apk you decompiled
Decompiled apk example​
If it is decompiled properly, then there will be apktool.yml file in it
9. Do your modifications. Now, you can edit .9.png files (they will be discussed later) and xml files which were uneditable first
You will notice that there will be many new folders which weren't present in compiled form of apk. These all folders are generated from a file called resources.arsc present in compiled form which is absent in decompiled form
Such an example is of values folder which contains crucial xml files like styles.xml, strings.xml, ids.xml, etc
Always open xml files with Notepad++, it will mark commands and syntax making it look aligned and making it easy to understand
Example of decompiled xml file ​
Also, you can edit 9 patch files also which will be changed from now on
Example:-
We will discuss 9 png in detail later on
10. After you have done your modifications and you are ready to recompile the app, choose 11 (Compile System APK) if you are editing System App or 12(Compile Non-System App) if you are editing other than System App
11. a) If System App:-
After some time it will ask that if you want to copy additional files other than signatures to ensure less amount of errors, then choose y
After extracting some files, it will ask you to delete files from keep folder
Simply go to keep folder,
If you edited any pngs and there are many and you are lazy enough to delete one by one, then delete the whole folder in which you edited pngs
If you edited any xml file, then delete that xml file AND ALSO DELETE RESOURCES.ARSC
Why? Because we told that values and several other folders are generated from resources.arsc while decompiling
Now, if we don't delete resources.arsc, the modification we did in values folder will be reverted to original state
After doing this, go to script.bat again and press any key to continue
11. b)If its not system app:
Just recompile it and sign it man through the menu in apk multitool man.
It is easy as hell. Tutorial of non-system app has been ended here
12. Now, you will get another apk name System_ apkname.apk
Open both apks as archives by 7-zip
13. Last and most important step:-
Just drop the files you edited from new apk to old apk in correct folders. By now, you may have understood that resouces.arsc INCLUDES your edited xmls
14. Now, the final apk is not System_apkname.apk but apkname.apk (the original file you started with). Push it and enjoy
9 PNG Discussion
These are special types of pngs that can be stretched to fit the need of program or different scenarios or cases. It contains 1 pixel lines on each border of different lengths for different things
As told above, we can't edit 9 png in compiled form as it will lose these lines which define its properties. So, we first need to decompile apk in order to edit 9 pngs
So, after decompiling apk, open 9 png in Photoshop and select the part inside that 1 px border and edit anything you want (Hue, Saturation, Bevel, Emboss, ANYTHING)
Now save it (save it as a normal png and then rename it as .9.png because photoshop doesn't recognise 9 png extension and image will loose its RGB format)
Explanation of 9 png:-
You can read this for more information
If you have doubt that you have gone wrong somewhere or you have made a new png from scratch and want to test if it is correct or not:
(Check all 9 png files you edit as they can cause Force Closes or bootloops)
Go to folder where you extracted android-sdk and go to tools folder and open draw9patch.bat
A window like this will open up:-
Drop you 9 png here
A new window will open with you 9 png on it
Tick on show bad patches
If you see red rectangles, you have a bad 9 patch image. You will need to delete or add those lines in png to remove all red boxes. If you want to delete, press Shift and start moving cursor over lines you want to delete. You can choose method of hit and trial to remove all rectangles and move the lower scale to see how your image size is adjusted
Or you can do what I do:
1. Remove all lines
2. Add single dot on top centre and left centre border of image (That can be taken as stretchable area)
3. Add lines on right and bottom of image where you want to fill content. Now, click on Show Content
The purple area you see in image is the content area (Text will be filled there. Eg:- Popup Menu)
4. Now, you can adjust these lines acoording to your need that what you want for stretchable area and content area until an unless there comes an red triangle
5. When it is done. Save the file. DONE
Easy, isn't it?
That's what theming is
Batch Editing pngs in Photoshop
Well the scenario is you have 200 pngs and you want to change their color, hue, add effect to them, etc. Definitely not worth the time you will spent doing this one by one. So, here, I will cover how to batch apply same edits on to your infinite pngs. Here, I am taking example of changing color of battery png from green to purple, you can apply any attribute to your image in the same way. I repeat it is not for .9.png files. Read above guide for reference
Let's start
1. First copy all your pngs you need to edit in a separate folder. I have made a folder named Battery Base and pasted my all pngs of battery there.
Now create another folder where your edited pngs will be saved. For eg:- Battery Done. (Don't create it inside Battery Base folder)
2. Open Adobe Photoshop and Choose Window>Actions or Alt+F9
3. Click on the note like file (Create new Action)
Rename it to anything you want . I have chosen Battery_color
Then click on Record. Now, you will see that red circle is enabled and now everything you do on image will be recorded and will be applied on each image.
4. Now, do this very carefully, don't miss any step.
We will do every thing that we want Photoshop to do with each file we want to edit.
a) So, first we want Photoshop to open the image. So , click on Open and choose any png from Battery Base folder (Choose a file with more color so that you know what color exactly your file will be after editing. That is why I chose 90 percent battery here).
b) Now, after opening, we want to change Color of png from green to purple. So, choose Image>Adjustment>Hue and Saturation or Ctrl+U
A dialog box with 3 sliders will appear. Move upper slider to change color. You can move other slider to change saturation and brightness if you want. Now, if you got it right, click on OK.
Every step of yours is being recorded, so don't do unnecessary stuff you don't want to do on other images. Nonetheless, if you have done it, then Drop down the Battery Base Action in action palette and you will see your every action there, If you want to delete any action , you can delete it from there. You can also add any action before pre completed action by clicking above that action and performing it.
Now, you can do anything you want to be done on your rest of pngs.
c) Now, we want Photoshop to save this png to carry on working on others. So, Go to File>Save as... and save it as a png in Battery Done folder. Photoshop will ask you to choose, so choose smallest compression and no interlace.
d) Image is saved but we also want Photoshop to close the png so that it does not open 200 tabs for editing 200 pngs. So, click on close (Small cross on title bar of png). If, it asks that do you want to save changes to png . Say no, because if you say yes, the png in Battery Base will be changes and when batch processing is done, that png in Battery Done will be of different color that all others.And also, your all green pngs in Battery Base folder will turn purple too. But we want purple images in Battery Done and green in Battery Base.
5. Now, we hae done what we want, so, we will stop recording the Action. Click on that square in Actions Palette.
6. Fun Starts. Now we will do the batch processing.
Go to File>Automate>Batch
In the dialog box, Choose the action to be Battery_Color (or obiviously any action you created)
Source folder: Battery Base
Destination Folder: Battery Done
Tick both Override Action 'Open' commands and Override Action 'Save as' commands
Click on OK. Sit back for 3 to 5 minutes(204 pngs) and TADA
You can apply any action in same way. Such as bevel, glossy, pale, etc to innumerous amount of pngs
Guide to change path thickness of Pattern Lockscreen to ICS Style​
Guide to changing path thickness of Pattern Lockscreen to ICS style​
I wandered places searching this off. I found some traces in direction of my destiny but none of them worked fully correctly
So, as stated, I searched a lot for this mod and came face to face with failures and smali errors. So, I had to figure it out myself some modification to do in it to make it work.
Note: IT is not COMPLETELY my mod but I have done modifications in it to make it work. This is based on a guide for Froyo outside of XDA.
Pre-Requisites:
1. PC with Java JDK or JRE
2. Deodexed ROM
3. 7-Zip
4. classes.dex decompiling tool
5. Notepad++
6. Patience
7. Carefulness for editing smali files
Let's Start
1. First we would have to decompile classes.dex inside framework.jar
For that, you can use my Tool ROM Tool v2
First using 7zip, Right click on your framework.jar and open it as archive and drag and drop classes.dex in input folder of the tool
(Note: If you don't have classes.dex in framework.jar [only META-INF and preloaded-classes.dex], then your framework isn't deodexed)
Now, open Script.bat and choose 1 (Decompile classes.dex)
2. Now, we will make the changes. Go to decompiled folder and go to \classout\com\android\internal\widget and open LockPatternView.smali in Notepad++
Search for mDiameterFactor:F [Ctrl+F]​
See the code above it.
It should be like this:-
Code:
const[COLOR="Red"]/high16[/COLOR] v2, 0x3f00
If it is, then you will have to remove red part /high 16
Because it will not allow the change of code we will be doing which will have a different hexadecimal value which will not be supported till this code is in effect
Now, it will look like this:-
Code:
const v2, 0x[COLOR="Red"]3f00[/COLOR]
Now, we will change the thickness value 3f00 to 3dcccccd
Final code will look like this
Code:
const v2, 0x3dcccccd
Save it
I am attaching final and before smali for comparison below.
View attachment 1936707
(Note: If you don't have /high 16, it's good , then just just change the value and save)
3. Go to Script.bat again and choose 2 (Recompile classes.dex) and after it's done, you will get classes.dex
Drop it in framework.jar
4. Push framewotk.jar in /system/framework
Eg:
Copy it in platform-tools folder of android SDK and type following with pressing Enter after each command
Code:
adb remount
adb push framework.jar /system/framework/
adb shell chmod 644 /system/framework/framework.jar
adb shell killall system_sever
Last command will Hot Reboot your phone to apply changes. It is fast and better than rebooting phone.
5. Enjoy
Screenshots
Before
After
Credits​
A member from other forum to answer a question to other member of that forum
Google for letting me search somethings
Samsung Galaxy Ace s5830i members for supporting me so much
This is a work in progress.
Will add more things soon
Credits:
@d3cka for teaching best abour 9 pngs
@deathnotice01 for helping me
Miscellaneous Google and xda posts
Reserved for FAQ about Apk Multitool and theming
Great things upcoming by you? huh! :good: keep your work on Hope to see more from you
Hmmm..batch editing works in gimp
-------------
"Blah blah blah blah blahblah blah blah"-No One
74M3NUMB3RS said:
Hmmm..batch editing works in gimp
-------------
"Blah blah blah blah blahblah blah blah"-No One
Click to expand...
Click to collapse
But I find Photoshop more user friendly and I am used to it.
For instance, I themed whole phone like WP8 in 8 hours in PS. That would have taken about 15 hours in Gimp
iamareebjamal said:
But I find Photoshop more user friendly and I am used to it.
For instance, I themed whole phone like WP8 in 8 hours in PS. That would have taken about 15 hours in Gimp
Click to expand...
Click to collapse
Well its the best free alternative for me...
And I'm not saying gimp is better than PS...
I dunno y u r teasing it
I just said if the batch editing works in gimp :sly:
And u were like PS is better than gimp
Sent un Galaxia Tab Dos Siete Pun Uno
74M3NUMB3RS said:
Well its the best free alternative for me...
And I'm not saying gimp is better than PS...
I dunno y u r teasing it
I just said if the batch editing works in gimp :sly:
And u were like PS is better than gimp
Sent un Galaxia Tab Dos Siete Pun Uno
Click to expand...
Click to collapse
Sorry
iamareebjamal said:
Sorry
Click to expand...
Click to collapse
Sorry too
I just wanna know if it works in gimp
Sent un Galaxia Tab Dos Siete Pun Uno
Commenting bcz I want this in my participated tab great job too!
Sent via the muffin launch _/^\_
74M3NUMB3RS said:
Sorry too
I just wanna know if it works in gimp
Sent un Galaxia Tab Dos Siete Pun Uno
Click to expand...
Click to collapse
If you are asking, then yes, we can batch edit in Gimp
http://www.makeuseof.com/tag/use-gimp-to-batch-edit-your-images-windows-specific-instructions/
nice man !
This deserves a bookmark
Any suggestions about adding any guide?
iamareebjamal said:
Any suggestions about adding any guide?
Click to expand...
Click to collapse
U cud add a guide for changing layouts of apps like framework and all
Never seen a guide for it but people will always need one for reference ..:thumbup:
Sent from my GT-S5360 using xda app-developers app
anubhavrev said:
U cud add a guide for changing layouts of apps like framework and all
Never seen a guide for it but people will always need one for reference ..:thumbup:
Sent from my GT-S5360 using xda app-developers app
Click to expand...
Click to collapse
Challenge accepted
But I need more reference like changing layout of framework like what? Rearranging items or theming the UI? Or changing the whole UI(Oppa dcsms style)?
First two I can make but I truly don't know how to change UI like dcsms, evanlocked and b12h... do!
Thanks a lot! I was searching a useful guide for editing .9.png files without this miserable draw9patch.bat
I'll edit all my .9.png with Photoshop and only proceed to some verifications with this tool.
Your part about "Batch Editing pngs" is interesting too. I'm going to modify some battery pngs so...:good:
Thanks, but I don't think guide is serving the purpose greatly or reaching the masses, I should have created separate guides for separate topics
I'm modding a theme and I've just started .9.png files.
I modified the color in Photoshop and saved as .png then I renamed to .9.png as mentioned in the guide.
I dropped the file in better9patch.jar and I have the first picture ('before'). I saw red areas so I pressed Shift and highlighted the top and the left. Then I obtained the 2nd picture ('after').
Everything is fine? Can i save the file now?
Thanks for your advices!
Memphis_ said:
I'm modding a theme and I've just started .9.png files.
I modified the color in Photoshop and saved as .png then I renamed to .9.png as mentioned in the guide.
I dropped the file in better9patch.jar and I have the first picture ('before'). I saw red areas so I pressed Shift and highlighted the top and the left. Then I obtained the 2nd picture ('after').
Everything is fine? Can i save the file now?
Thanks for your advices!
Click to expand...
Click to collapse
Basically you've removed the stretchable part of image
It's not good
Just put one dot in upper center and left center. Can you please tell me the name of png you are editing to better assist you.
Thanks
Precious Guide
iamareebjamal said:
Basically you've removed the stretchable part of image
It's not good
Just put one dot in upper center and left center. Can you please tell me the name of png you are editing to better assist you.
Click to expand...
Click to collapse
Here is where the files is located: C:\Android\APKTool\theme_name\res\drawable\dropbox_ss_action_item_background_focused_holo_light.9.png
Could you please attach the corrected file?
Here is my file modified via Photoshop (blue to green): HERE
Original .9.png HERE
EDIT
If i compare my modified file with the original one the rendering is the same as my file named 'before'.

[Guide/Tutorial][JB 4.3+]Create Your Own Xperia Theme

Create your own Xperia™ Theme
[Now no need to wait for new themes to come up. Have a look/colour in your mind? Want to have a special theme for yourself? Then why to be dependent upon others? Do it all by yourself with the help of my guide.]
Hello,
I made this guide because there was no official documentation or how to about this. I have gone through the official themes + few other themes from market and got the idea from them.
I have myself tested this guide before posting so its 100% working. I have Stock Xperia Google Android 4.3.
If you just want to change System Accent Colours and/or App BG, Navigation Bar BG, etc. then try this Xposed Module of mine.
Xperia Themes - Xposed Module
​
Note :
Code:
At the time of writing this guide I assume that you have a basic knowledge of Android Developers Tool[ADT]. I also assume that you are familiar with Android apps and their development process.
What things you gonna need to follow my tutorial :
A computer / laptop [seriously speaking it's one of the most important thing lol. ]
Java installed and added to environment path[if you are windows user like me]
ADT + Eclipse [I recommend ADT bundle]
Theme files [check attachment for these]
My guide for sure.
Time and Brain.
FOR FAQ'S PLEASE READ POST #3 BEFORE ASKING THE ALREADY ANSWERED QUESTIONS AGAIN.
The guide / tutorial starts now :
PART ONE : CREATE XPERIA THEME, CHANGE SYSTEM COLOURS.
Start/open ADT
Go to File > New > Android Application Project
{
"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"
}
Give your desired name to the Theme, The Android Application Project.
Give your desired package name to the app.
Set Minimum Android Requirement to Android Jelly Bean 4.3 and Maximum to Android Kitkat 4.4/4.4.2
In the next screen un-tick the option to add app icon and Activity
Choose the workspace folder else tick to set the default one.
Now open AndroidManifest.xml and add this Permission :
Code:
<uses-permission android:name="com.sonymobile.permission.RUNTIME_SKIN" />
Now replace the <Application ...></application> Node with this code :
Code:
<application
android:label="@string/semc_theme_title"
android:icon="@drawable/semc_theme_lockscreen_wallpaper"
android:allowBackup="false">
<uses-library android:name="com.sonymobile.runtimeskinning" />
<meta-data
android:name="com.sonymobile.runtimeskinning.core.image_wallpaper"
android:resource="@drawable/semc_theme_wallpaper" />
<meta-data
android:name="com.sonymobile.runtimeskinning.core.lockscreen_background"
android:resource="@drawable/semc_theme_lockscreen_wallpaper" />
</application>
Please note : You may change the theme icon.
Now just after
Code:
<uses-permission android:name="com.sonymobile.permission.RUNTIME_SKIN" />
Add this block of code :
Code:
<runtime-skin version="1">
<asset path="android.zip" target="android">
<laf-version-filter from="1" to="1" />
</asset>
<asset path="com.sonyericsson.uxp.zip" target="com.sonyericsson.uxp">
<laf-version-filter from="1" to="1" />
</asset>
</runtime-skin>
Please note : You will need to push android.zip & com.sonyericsson.uxp.zip files with all theme resources to the asset folder.[You can find these two in attachments]
Note :You can add asset reference for more apps as you extend the theming support.
For Example you can add this to add support for theming SystemUI.apk :
Code:
<asset path="com.android.systemui.zip" target="com.android.systemui">
<laf-version-filter from="1" to="1" />
</asset>
Also note that you will need to push com.android.systemui.zip file with all theme resources to the asset folder.
Now save AndroidManifest.xml
You will get errors. Nothing to worry. Its known and easy to fix.
Open themeProject > values > strings.xml
Change
Code:
<string name="[COLOR=Red]app_name[/COLOR]">Pink</string>
To
Code:
<string name="[COLOR=Red]semc_theme_title[/COLOR]">Pink</string>
Save and close the file.
Now Reopen AndroidManifest.xml
Left Click in between the texts underlined with red, then Right Click and press "Quick Fix" in the pop-up menu. Then You will see a new pop-up menu as in the pic below. Then click on "Disable Check in This Project"
To correct the errors in Application node move Wallpaper and icon pictures to drawable-xxdpi according to your need.
Now download "XperiaThemesApktoolbySArnab©®" zip file from the attachments below and extract it at your desired location.
I specially made this Apktool set folder for Xperia™ Themes.
Inside the extracted folder you will find Apktool files for Windows OS[Linux and MAC users you need to replace Windows specific files with your OS's files.] along with Xperia™ Apps specific folders for making Xperia™ Themes.
All you need to do is add assets to this folders and use provided Apktool to recompile them. They will be automatically get compiled as .zip file instead of .apk file as .zip file is needed for Xperia™ Themes.
In android folder :
You need move theme png resources if you want to change the look, into respective drawable folders.
FOR THIS FOLLOW THE PART TWO OF THE GUIDE IN POST #2
In com.sonyericsson.uxp folder :
You need to edit res > values > colors.xml as per your theme colour preference.
Now when you think you are ready to create the theme use Apktool[Or your desired tool] to recompile android, com.sonyericsson.uxp and all other app specific folders from "XperiaThemesApktoolbySArnab©®".
[*]Now Move all the zip files from specific folders to the assets folder of your project.
[/LIST]
When everything is set your theme project tree should be like this to great extent.
Test the theme through Eclipse else export by signing and share your masterpiece with others.
GUYS AM ATTACHING MY THEME SOURCE SO THAT YOU ALL CAN GO THROUGH THAT IF YOU FELL INTO SOME PROBLEM.
PLEASE RATE THE THREAD WITH 5 STARS IF YOU THINK MY GUIDE IS HELPFUL.
ALSO CLICK ON TIP US SO THAT THIS GUIDE CAN COME UP ON XDA PORTAL.
ADD A LINK TO THIS THREAD IN YOUR SIGNATURE TO EXTEND THE NEWS OF THIS THREAD AND ALSO TO SHOW YOUR SUPPORT.
THANK-YOU.
Update 1 : I have updated the guide at places where users were having problem following it.
I have also added special Xperia Themes ready apktool folder with app specific folders to make it easier to create Xperia Themes.
CREDITS :
@funky0308 [IT WAS HE WHO GAVE ME THE IDEA TO EDIT ASSETS FILES THROUGH HIS GUIDE OF EDITING XPERIA THEMES]
SONY FOR THIS AWESOME OPTION TO THEME OUR MOBILE. @SArnab©® [THAT'S ME] FOR CREATING THIS WHOLE GUIDE.
Adding Image and drawable resources into your Xperia theme.
PART TWO : ADDING DRAWABLE PNGS AND JPEGS TO YOUR XPERIA THEME.
THIS PART OF MY GUIDE WILL HELP YOU IN ADDING IMAGES TO YOUR THEME TO CHANGE THE LOOK TO THE GREATEST POSSIBLE WAY.
BEFORE I START, I WANT YOU ALL TO KNOW ONE SIMPLE THING. IN THIS GUIDE HERE I WILL BE SHOWING YOU HOW TO ADD THEMED IMAGES IN FRAMEWORK APK. THE SAME PROCEDURE WORKS FOR XPERIA HOME AND SYSTEM-UI APK. SO PLEASE DO NOT ASK SILLY QUESTIONS AS HOW TO THEME STATUS-BAR ICONS AND ETC. , ETC.
FOLLOW UP FROM HERE AND SOON YOU WILL BE MAKING PROFESSIONAL THEMES ON YOUR OWN.
STEPS :
De-compile "framework-res.apk"
Open up framework-res/res/drawable-hdpi/ [Or whatever dpi your device supports]
NOTE : HERE I WILL SHOW YOU HOW TO CHANGE :
APPS BACKGROUND
VOLUME BAR SCRUBBER
You can replace any drawable present in this folder. But we are going to change the background images only for this time.
If you go down you will find two pngs named : "semc_bg" & "semc_bg_light". These are the Pngs that we need to replace to replace the App's background.
Now download/create/paint or do whatever you want and get hands on two different pngs, one for Dark Theme [ Like Settings in Android 4.1.x/4.2.x in Sony ] and another for Light Theme [ Like Settings in Android 4.3 in Sony ] and rename them to "semc_bg" & "semc_bg_light" respectively.
Move the two newly renamed pngs to the respective drawable-xxdpi folder of the android folder that you had previously downloaded from the above post : apktool/android/drawable-hdpi/here
NOTE : YOU NEED TO PLACE ALL YOUR DESIRED IMAGES INTO RESPECTIVE DRAWABLE-FOLDERS.
Now you need to do the same thing to theme Scrubbers.
Once you are ready with all the pngs continue with rest of the guide in post #1.
FAQ'S :
Q. HOW TO THEME SYATEMUI?
ANS. FOLLOW THESE STEPS :
Download and extract "XperiaThemesApktoolbySArnab©®" zip file from the attachments in 1st post [You don't need to do it again if you have already done so while following Post #1.].
Open com.android.systemui folder.
Add your desired resources in res/drawable-yourdevicedpifolder.
If you want to change colour then add values folder inside res folder. Create colors.xml file and add color code.
Recompile and copy paste the newly created .zip file from "XperiaThemesApktoolbySArnab©®/com.android.systemui/dist/here" to the assets folder of your Theme Project.
Q. HOW TO THEME ANY OTHER SYSTEM APP?
ANS. FOLLOW THE ABOVE STEPS WITH FEW CHANGES SUCH AS :
I have added options to theme other system apps in my new attachment named "XperiaThemesApktoolbySArnab©®.zip" in 1st post.
Q. HOW TO ADD SUPPORT FOR DIFFERENT APPS THEMEING?
ANS. YOU CAN THEME ALL THE APPS INSTALLED IN YOUR DEVICE. TO DO THAT YOU NEED TO PERFORM 2 ACTIONS.
1. ADD THIS BLOCK OF CODE TO THE MANIFEST FILE SO THAT THE THEME MANAGER KNOWS WHICH APPS ARE SUPPORTED BY YOUR THEME APP :
Code:
<asset path="[COLOR="Red"]com.android.systemui.zip[/COLOR]" target="[COLOR="red"]com.android.systemui[/COLOR]">
<laf-version-filter from="1" to="1" />
</asset>
THE ABOVE CODE ADDS SUPPORT FOR SYSTEMUI THEMEING.
TO SUPPORT OTHER APPS JUST CHANGE THE TEXTS IN RED.
FOR EXAMPLE FOR SETTINGS APP :
Code:
<asset path="[COLOR="Red"]com.android.settings.zip[/COLOR]" target="[COLOR="red"]com.android.settings[/COLOR]">
<laf-version-filter from="1" to="1" />
</asset>
FOR THIS YOU NEED TO KNOW THE PACKAGE NAME OF THE APP YOU WANT TO THEME.
2. YOU NEED TO CREATE A APP.PACKGANE.NAME.ZIP FILE WITHH ALL THEME RESOURCES FOR THAT CONCERNED APP AND MOVE THE ZIP FILE TO ASSETS FOLDER OF YOUR PROJECT.
PLEASE NOTE THE NAME OF ZIP FILE MUST BE SAME AS STATED IN MANIFEST.
Well done bro
Going to try it asap
dipesh1502 said:
Well done bro
Going to try it asap
Click to expand...
Click to collapse
Sure, go forward and do share whatever you come up with.
I will update the guide very soon to show how to add resources and add more apps support.
Sent from my C2004 using Tapatalk

			
				
great one!!
nice
---------- Post added at 12:28 PM ---------- Previous post was at 12:23 PM ----------
SArnab©® , can u help me find a link for starting cm9/10 themes for galaxy devices ? am intrested in theming
Wow, THIS is a guide, many thanks for that. I downloaded the theme for my wife - she loves pink.
Awsm work arnab!! thanks for creating such a comprehensive guide.
nice guide
btw to be able to install theme do we still need root (superuser mod etc???)????
Sahaab said:
nice guide
btw to be able to install theme do we still need root (superuser mod etc???)????
Click to expand...
Click to collapse
No special requirements.
If your device supports third party theme downloading then the themes you make will also run easily.
Xperia M was not able to install any 3rd party themes.
Used theme fixer and now I can install any number of theme without superuser mod.
SArnab©® said:
No special requirements.
If your device supports third party theme downloading then the themes you make will also run easily.
Xperia M was not able to install any 3rd party themes.
Used theme fixer and now I can install any number of theme without superuser mod.
Click to expand...
Click to collapse
whats theme fixer??
Edit: oh ok found it, sorry
Edit 2: it looks like it needs root?
Edit 3: haha too many edits, and yep a post says root needed so still to no help :-/
Sahaab said:
whats theme fixer??
Edit: oh ok found it, sorry
Edit 2: it looks like it needs root?
Edit 3: haha too many edits, and yep a post says root needed so still to no help :-/
Click to expand...
Click to collapse
Yeah if your device is not able to install 3rd party themes by default then you need to root it and then enable theme installation.
This didnt really worked.
i used you're Pink theme source but when i only edited the colors from Pink to red nothing changed after applying the theme.
ofcourse i used a NON rooted Xperia phone so i couldnt logcat that .
the Android version used was 4.4.2 on a xperia z1.
SpaceCaker said:
This didnt really worked.
i used you're Pink theme source but when i only edited the colors from Pink to red nothing changed after applying the theme.
ofcourse i used a NON rooted Xperia phone so i couldnt logcat that .
the Android version used was 4.4.2 on a xperia z1.
Click to expand...
Click to collapse
Try the pink theme once if that works or not.
If not then provide me any stock theme of kk n I assure you to make it work for kk.
Sent from my C2004 using Tapatalk
SArnab©® said:
Try the pink theme once if that works or not.
If not then provide me any stock theme of kk n I assure you to make it work for kk.
Sent from my C2004 using Tapatalk
Click to expand...
Click to collapse
thanks will try
Sent from my S500 using xda app-developers app
More guides the better. :good:
That’s to take one’s hat off !!
This is definitely the kind of thread we want to see... Leaves us hungering for more knowledge!!!
Thank you!
Awesome
Awesome job. Tutorial is very good and helpful to everyone.
Kudos to OP and XDA. All the best!!! :good:
Great TUT mate...don't know how I didn't see it earlier but never mind.
Easy to follow and it's actually something new - not copy/past old TUT...
Great
?
Sent from my C6903 using Tapatalk

[MOD][TUT] Animated HOME Softkey In Nav Bar

This thread made the Portal! Woo!
https://www.xda-developers.com/animated-gif-home-button-android/
{
"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 To @Tulsadiver for the above image)​
Want an animated HOME softkey in your navbar? Of course you do!
This is a relatively simple mod, which should work on any rom and any version of Android. Android P, with its gesture control navbar setup, is a different matter but I'll deal with that another time.
Follow the simple steps below to find out how to do this mod. Any problems, just let me know!
Step 1 - Decompile Your "SystemUI.apk"
The first thing you need to do is, as it says above, is to decompile your deodexed SystemUI.apk. I'm not going to tell you how to do that here, because there are already a lot of tutorials and guides for that on xda. There's also a lot of decompiling tools you can use. I personally recommend using Tickle My Android([url]https://forum.xda-developers.com/showthread.php?t=1633333[/URL]). It's fast, user-friendly, makes flashable ZIP's and rumour has it that the developer is devastatingly handsome..
If your rom isn't deodexed, this rom won't work. You have to deodex it first. By a strange coincidence, Tickle My Android can deodex roms too. What a clever developer they must be!
Once you've done this, move onto Step 2!
Step 2 - Add The Smali Files
Now we need to add the new smali files for this. However these aren't my files, somebody else made them so you'll need to get them from the attachment at the bottom of this post here: [url]https://forum.xda-developers.com/android/software-hacking/dev-custom-views-t3174519[/URL]
This code was written by @Morningstar and I can't take any credit for it. So you'll need to make sure you press the "Thanks" button at the bottom of his post. If you don't. this mod won't work!!
Extract the "SelfAnimatingImageView.smali" file from the ZIP and add it to your decompiled APK at "SystemUI.apk\smali\com\android\morningstar\". You'll need to make those folders if they're not there already.
Step 3 - Add The Image Files
In the second post in this thread, you'll find a few animations that I've put together for you to download. Just download the ZIP and add the PNG image files to the appropriate "drawable-?dpi" folder. Which folder you need to put them into depends on your particular phone.
If you don't like any of the animations on offer, you can make your own. All I've done is use Google Image Search to find some fun GIF's and online tools like EZGIF ([url]https://ezgif.com/split[/URL]) to turn the GIF into a collection of individual images.
Of course, you could always make your own images if you wanted..but I don't have the artistic ability for that!
If you are using your own animation, make sure you add the "transparent.png" file to your "drawable-?dpi" folder anyway. You'll need it in Step 5..
Step 4 - Edit The Drawable XML File
In the previous step, you put a collection of images into your decompiled APK to serve as your animation. Now you need an XML file that tells Android which files to use for your animation, as well as how quickly to cycle through them.
For this, go back to the ZIP you downloaded and copy the "frame_anim.xml" to your "res\drawable" folder. If you're using your own PNG files, you can still use this file or make your own.
The "frame_anim.xml" looks something like this:
Code:
<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot="false"
xmlns:android="[url]http://schemas.android.com/apk/res/android">[/url]
<item android:duration="100" android:drawable="@drawable/frame_0" />
<item android:duration="100" android:drawable="@drawable/frame_1" />
<item android:duration="100" android:drawable="@drawable/frame_2" />
<item android:duration="100" android:drawable="@drawable/frame_3" />
</animation-list>
Each "item" line represents a different image. The "android:drawable" bit contains the name of the image being displayed the "android:duration" bit says how many milliseconds it's on display for."
If you're using your own animation, just add/delete/edit these lines as you need.
Don't forget to save when you're done!
Step 5 - Edit The Layout XML
We're nearly there, I promise! Just this one step left to do and we can start recompiling. This is the tricky one though - this is the part where we actually put our animation into the navbar, replacing the image for the HOME softkey.
What makes this extra difficult is that Google keep changing where the code we need to change is. In most roms, you'll find the code that controls the HOME softkey in "layout\navigation_bar.xml". In some modern roms, it might actually be in "layout\home.xml"!
So you'll need to do some detective work. You need to find which layout XML file contains a line that looks like this:
Code:
<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="center" android:id="@id/home_button" android:layout_width="0.0dip" android:layout_height="0.0dip" android:scaleType="center" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" />
Let me rearrange that to make it a bit easier to read..
Code:
<com.android.systemui.statusbar.policy.KeyButtonView
android:layout_gravity="center"
android:id="@id/home_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="center"
android:contentDescription="@string/accessibility_home"
systemui:keyCode="3" />
See those references to "home" and that bit about "systemui:keyCode="3""? This is the line of code that displays the HOME softkey. Your code might not look exactly like that but it'll be close.
We can't make this display an animation, Android just isn't set up for it. So what we actually need to do is hide this HOME softkey, put a new one in the same place that's the same size but invisble, then put our animation underneath that. Sounds complicated, but all we need is a FrameLayout..
Code:
<FrameLayout android:layout_width="@dimen/navigation_key_width" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="center" android:layout_width="@dimen/navigation_key_width" android:layout_height="fill_parent" android:src="@drawable/transparent" android:scaleType="center" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" />
<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="center" android:id="@id/home_button" android:layout_width="0.0dip" android:layout_height="0.0dip" android:scaleType="center" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" />
<com.android.morningstar.SelfAnimatingImageView android:layout_gravity="center" android:id="@+id/frame_animation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/frame_anim" />
</FrameLayout>
Take a moment to look at that above code. You can see how three different things are piled on top of each other. When the app is running, you won't see that. All you'll see is your animated image where your HOME softkey is. Neat, no?
(For more about FrameLayouts and other XML tricks, you could do worse than check out my short guide here: [url]https://forum.xda-developers.com/general/xda-university/xml-101-xml-modding-easy-t2929816[/url])
So just replace your HOME softkey line of code with the code above. You may need to make some changes for your particular setup. Every rom is different.
Save and move onto the next step.
Step 6 - Recompile The Modded APK
This is it - the last stage. All you need to do now is recompile your SystemUI.apk file and put it back to your phone.
I recommend doing this in recovery as you'll need to wipe the Dalvik cache, otherwise the new smali won't be active.
I also recommend doing it in recovery because I always recommend DOING A BACKUP FIRST!!
Once you've done the above steps, you should now have an animated HOME softkey in your navbar. But, if you have any problems, just let me know and I'll see what I can do to help.
These are some of the animations that I've put together for this mod. If you like them, just download the appropriate ZIP file from the attachments and add them to your decompiled APK as I mentioned in the previous post.
If you don't like them, let me know what you would like and I'll see what I can do for you.
If you've made your own animation and you think others might enjoy it, let me know and I'll be more than happy to add it to this collection. Crediting you, of course.
If this mod proves popular, I'll see what other animations I can come up with. There aren't many right now and I hadn't really realised just how many of them are of Disney's Stitch...
BATMAN ICON -
- PIKACHU
MOVING TRIANGLE -
- UK FLAG (found at http://www.3dflagsplus.com/)
USA FLAG (found at http://www.3dflagsplus.com/) -
- INDIA FLAG (found at http://www.3dflagsplus.com/)
TABBY CAT -
- BLACK CAT
RYU (from Street Fighter) -
- STITCH EATING
STITCH WEARING A..ER..'HAT' -
- STITCH HULA DANCING​
Enjoy!
Congrats mate. . Great job as always.... [emoji106][emoji106][emoji106]
Sent from my SM-G955F using Tapatalk
Nice MOD.Keep It Up!
Awesome stuff sir
Is it possible to have oreo's animated home button in stock nougat rom?
I've added a few flag icons for people to try. There's a website that has loads of these, for lots of different countries. Definitely worth a look!
mlleemiles said:
Is it possible to have oreo's animated home button in stock nougat rom?
Click to expand...
Click to collapse
In theory, yes. We could use this mod and adjust the smali so the animation only runs when the home button is touched. That's a little beyond me, I'm more of a XML modder, but it's certainly a possibility.
Or we could take the relevant files from an Oreo rom and place them in your Nougat one. It'll involve a bit of work adjusting those files but, again, it's theoretically possible.
Amazing mod buddy..... Any idea on how to add menu key? I did add but doesnt get themed when nav bar is themed.
whalesplaho said:
Amazing mod buddy..... Any idea on how to add menu key? I did add but doesnt get themed when nav bar is themed.
Click to expand...
Click to collapse
You can manually add the menu key by adding a line with the relevant keyCode. @Rajeev did a very nice tutorial about doing this sort of thing a few years ago for the original Xperia Z.
But it's pretty unlikely that it'll be themed. Google have been moving away from the menu softkey since ICS. Apps are supposed to have a settings button in the Action Bar at the top of the screen now, or in a hamburger menu. The menu softkey doesn't really officially exist anymore.
If you've got a theme that has a resource in it for replacing the menu icon and it doesn't work, you'll need to speak to whoever created the theme to see if they have any ideas.
Ticklefish said:
I've added a few flag icons for people to try. There's a website that has loads of these, for lots of different countries. Definitely worth a look!
In theory, yes. We could use this mod and adjust the smali so the animation only runs when the home button is touched. That's a little beyond me, I'm more of a XML modder, but it's certainly a possibility.
Or we could take the relevant files from an Oreo rom and place them in your Nougat one. It'll involve a bit of work adjusting those files but, again, it's theoretically possible.
Click to expand...
Click to collapse
I tried, without success, which made me start a post in Z5 Compact forum: https://forum.xda-developers.com/z5-compact/help/request-animated-pixel-navbar-z5-compact-t3699417
Sadly no one is there to help..
Ticklefish said:
You can manually add the menu key by adding a line with the relevant keyCode. @Rajeev did a very nice tutorial about doing this sort of thing a few years ago for the original Xperia Z.
But it's pretty unlikely that it'll be themed. Google have been moving away from the menu softkey since ICS. Apps are supposed to have a settings button in the Action Bar at the top of the screen now, or in a hamburger menu. The menu softkey doesn't really officially exist anymore.
If you've got a theme that has a resource in it for replacing the menu icon and it doesn't work, you'll need to speak to whoever created the theme to see if they have any ideas.
Click to expand...
Click to collapse
Is this animation affect battery Life????
Definitely gonna attempt this on one of my throwaway phones.
Thanks mate for this awesome post. Can you please make some flashable zip or magisk module for the same for noobs like me?
CPU usage?
Hey man, the idea is awesome!!
Since you mentioned deodexed ROM is needed, I'm wondering whether Resurrection Remix Oreo(official build) lies in which category: odexed or deodexed??
Want to proceed with full knowledge, partial one is quite vulnerable...
Thanks buddy, for this amazing work!!
mlleemiles said:
I tried, without success, which made me start a post in Z5 Compact forum: https://forum.xda-developers.com/z5-compact/help/request-animated-pixel-navbar-z5-compact-t3699417
Sadly no one is there to help..
Click to expand...
Click to collapse
Looking into this, it seems you can't just take the code from the Pixel and put it into your rom as 7.0 doesn't have the required API's for this mod to work.
You could use the animated icon code from this thread but you will need to make the drawable images yourself. And work out how to edit the smali so the animation only starts when you press the icon.
Tricky but not impossible, I think.
@vjnexus said:
Is this animation affect battery Life????
Click to expand...
Click to collapse
Technically, yes. Having a moving icon will use more power than a stationary one.
It shouldn't consume much, though. The CPU isn't having to work very hard. But if you do find your battery going down too fast, just go back to your original SystemUI.apk.
dheeraj.radke said:
Thanks mate for this awesome post. Can you please make some flashable zip or magisk module for the same for noobs like me?
Click to expand...
Click to collapse
Flashable ZIP's wouldn't really work, sadly. Because every rom has a different SystemUI.apk with different XML, I would have to make a ZIP for every single one..
And Magisk is a bit beyond me, right now.
Give the mod a try. It's relatively simple and I'm always happy to help if you have trouble.
And, if you've made a backup, you always have a way to fix things if it doesn't work.
alreadyregistered said:
CPU usage?
Click to expand...
Click to collapse
A little, yes. Look at my reply a few lines up.
Sent from my Sony Xperia XA1 using XDA Labs
nishkhanna said:
Hey man, the idea is awesome!!
Since you mentioned deodexed ROM is needed, I'm wondering whether Resurrection Remix Oreo(official build) lies in which category: odexed or deodexed??
Want to proceed with full knowledge, partial one is quite vulnerable...
Thanks buddy, for this amazing work!!
Click to expand...
Click to collapse
I don't know, sorry. But I'd assume that a third-party rom, especially one made by modders for modders, would be deodexed.
If you have a SystemUI.odex or SystemUI.vdex in your SystemUI folder or subfolders then your rom is odexed and you'll need to deodex it to do this mod.
Sent from my Sony Xperia XA1 using XDA Labs
Will there be any serious probs if i messed up at one step or other in this guide?
jaspad1710 said:
Will there be any serious probs if i messed up at one step or other in this guide?
Click to expand...
Click to collapse
Nope. As long as you make a backup before putting your modified APK back on your phone, you'll be fine.
Ticklefish said:
You can manually add the menu key by adding a line with the relevant keyCode. @Rajeev did a very nice tutorial about doing this sort of thing a few years ago for the original Xperia Z.
But it's pretty unlikely that it'll be themed. Google have been moving away from the menu softkey since ICS. Apps are supposed to have a settings button in the Action Bar at the top of the screen now, or in a hamburger menu. The menu softkey doesn't really officially exist anymore.
If you've got a theme that has a resource in it for replacing the menu icon and it doesn't work, you'll need to speak to whoever created the theme to see if they have any ideas.
Click to expand...
Click to collapse
Thanks for tha clarification bro... I understand better now!

Categories

Resources