Hi friends of XDA,
today, i present you a easy method (more like a idea) on how to learn about what is actually modified in a apk and help you to
get an idea about creating your own mod by understandig other mods.
first is first!
#include
/*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because of you following this guide.
* do some research if you have any concerns.
* YOU are choosing to make these modifications.
* you cannot point the finger at me for messing up your device.
* yes, i copied this disclaimer from FXP coz itz cool and i am lazy!
*/
okay now let´s get started,
things you need,
1. apktool
2. WinMerge (WinMerge is Open Source software under the GNU General Public License)
3. a modded apk and it's original untouched unmodded apk for your device.
4. A LOT OF PATIENCE (learning modding apks is not so easy).
step by step,
1) apktool part,
1.1) install framework-res.apk, SystemUI.apk, SemcGenericUxpRes.apk in apktool
.
NOTE: below, any apk can be used, i'm using SystemUI.apk as a example.
1.2) decompile and compile both the original SystemUI.apk pulled from your device and the SystemUI.apk from the mod
which you are going to learn what has been changed.
NOTE: step 1.2 is done to make sure that the apktool you are using is comaptible with your apks if it throws errors
while compiling and/or decompiling unmodified system apks then use a different version of apktool which works with your
device and version of android you are going to use (google it).
1.3) after succesfully installing required apks and testing the apktool, clean the apktool folder (remove decompiled apk folders and
remove unwanted apks from the folder).
1.4) copy the pulled original SystemUI.apk from device (or pull it again) to apktool folder and rename it to make you remember that it
is the original apk (i named it as SystemUI_ori.apk).
1.5) copy the modded SystemUI.apk from the mod and rename it to make you remember that it is the modded apk
(i named it as SystemUI_mod.apk).
1.6) decompile SystemUI_ori.apk and SystemUI_mod.apk.
2) winmerge part,
2.1) open winmerge
click open
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
2.2) you'll get the following window (select files and folders)
2.3) in the left and right path box type in your path to the decompiled original and modded apks directory.
as shown below and click ok (ok button will be only visible if you choose two valid directories)
2.4) now the two directories you selected will be opened and their similarities in files and
directories will be displayed in the comparison result column as shown below,
2.5) the comparision result column will display what type of file it is and whether they are different or identical as shown below,
2.5) if the file or directory is only present in one directory of the two selected directories (see 2.3) then the comparision result column
will show as highlited in the below image.
2.6) from 2.4 and 2.6 you can easily determine what files have been edited and/or added by the modder to achieve the corresponding
changes in the mod.
2.7) Now when you double click the file which is present in both the left and right directories, those files will be opened and their
differences will be highlighted.
for example let us open a text file (normally all files are text type in a decompiled apk except images) whose comparison result
show that they are different,
the text file in both left and right opens side by side and the lines which contains the differences will get highlighted in yellow,
the part of the line which is actually different from one another will be highlighted in light yellow as shown below.
NOTE: since the apk is decoded by apktool, the files will be always in human readable source form so just by looking at the differences in the
text we can get a clear picture on what is changed in the file and how does it impact in the final modded apk. If you yourself have a good
knowledge of xml and java it'll be a breeze for you to understand it!
you can also copy the whole changes of one file to another or just copy the changes line by line, to learn more about this see the further
reading part below.
3) PLEASE do not ask me about apktool errors or what to edit in a apk to get this etc., type of questions
i'm still in the nascent phase of learning about modifying apks and theming, i am using this method to learn so i am recommending this
to interested friends.
4) if you have doubts and/or errors in using apktool post here.
FURTHER READING:
5) I HAVE COVERED ONLY THE VERY BASICS OF LEARNING MODDING USING WinMerge.
to learn more about the shortcuts and functionalities of winmerge read winmerge quick guide and complete guide..
CREDITS:
authors of winmerge
authors of apktool
HAPPY LEARNING MODDING!
PLEASE PRESS THANKS IF THIS THREAD IS USEFUL!
fix urls
mv_style said:
fix urls
Click to expand...
Click to collapse
DONE man!
Damn awesome tut bro!!
Was manually comparing both files inside apk to find which file has been modified..
U made it easier for me..
Cheers:fingers-crossed:
ssanjay19 said:
Damn awesome tut bro!!
Was manually comparing both files inside apk to find which file has been modified..
U made it easier for me..
Cheers:fingers-crossed:
Click to expand...
Click to collapse
thanks sanjay
Apktool doesnt open on my pc. It just shows up for a sec and then disappears!
thejkamath said:
Apktool doesnt open on my pc. It just shows up for a sec and then disappears!
Click to expand...
Click to collapse
Install java first,
In win7 open the directory where you placed the apktool.jar , hold shift and right click inside the folder, in the menu click "open command window here" and in the command window type,
java -jar apktool.jar
Click to expand...
Click to collapse
In xp
Open command prompt change directory to the apktool.jar directory and type the above quoted.
Hit thanks if I helped you.
Sent from my ST15i using xda app-developers app
Sir I can't see the pictures u have posted... fix their links please
Thanks
Related
lets try something new today..
before I start let me ask you this questions.
do you like customizing your phone?
do you want to edit your apk's without a pc?
do you have belief in xrecovery (&me probably)
if you answered YES for the above questions. I've something good for you.
our map for the treasure in this journey would be a small application named
METAMORPH
MetaMorph, at heart, is simply a program that takes files from a directory and adds them to an already existing zip package.
In this case, our zip packages are apk and jar files.
Click to expand...
Click to collapse
THINGS YOU'LL NEED :
Metamorph (attached)
RootExplorer (any apk which can edit xml files)
Androzip/Astro (zip app)
Creativity & Willingness to take the Risk
Metamorph uses a zip file to apply the customize apk on your phone.
the zip file contains two things
a xml file
folder containing your mods
lets cut it sweet with an example.
----------------------------------------------------------------------------------------------------------------------------------------------------
lets suppose I want to change the icon of my apk. lets say I want to change icon of Calculator
{
"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"
}
to
----------------------------------------------------------------------------------------------------------------------------------------------------
Metamorph is CaseSensitive. Following Steps need the correct name & case
Click to expand...
Click to collapse
we'll do it in 2 parts
PART - 1
to do this I'll first need to create a folder named Calculator
now the icon of calculator is in the folder res\drawable-mdpi
so I'll create those folders in the Calculator folder
so the line is Calculator->res->drawable-mdpi
all I need to do now is the monster icon into this folder and name it exactly the same way it is in the original so lets rename monster.png to icon.png
PART - 2
the xml file should contain this code
Code:
[B]<?xml version="1.0"?>
<themename>[COLOR=Red]theme_name[/COLOR]</themename>
<themeversion>0.1beta</themeversion>
<screenshot></screenshot>
<author>Suhel</author>
<authorweblink>N/A</authorweblink>
<phone>Xperia X8</phone>
<rom>Sony Xperia X8 2.1 </rom>
<themedescription>Converted Theme</themedescription>
<item>[COLOR=Red]your_apk.apk[/COLOR]</item>
<path>[COLOR=Red]path_of_your_apk[/COLOR]</path>
<description></description>
[/B]
ok the red things in the above code are crucial.
1. theme_name (I'll come to this later)
2. your_apk.apk this is the name of your apk
3. path_of_your_apk this is the path of your apk
for our Calculator it should be something like this
Code:
<?xml version="1.0"?>
<themename>X8Champ</themename>
<themeversion>0.1beta</themeversion>
<screenshot></screenshot>
<author>Suhel</author>
<authorweblink>N/A</authorweblink>
<phone>Xperia X8</phone>
<rom>Sony Xperia X8 2.1 </rom>
<themedescription>Converted Theme</themedescription>
<item>[B][COLOR=Red]Calculator.apk[/COLOR][/B]</item>
<path>[COLOR=Red][B]/system/app/[/B][/COLOR]</path>
<description></description>
hope you understand. now you need to save the xml file.
now the first point. the theme_name you are going to type should be the same name as of your xml file name
ok now you're done.
all you need to do now is create a zip file and place the folder & xml file in that zip file. again make sure the name of the zip file should be the same as the xml file
put the zip file in your sdcard root
-------------------------------------------------------------------------------------------------------------------------
Applying theme with Metamorph
Tap Unzip/Extract new theme
Select the Zip file
Tap the apk you want to apply and tap apply it
Reboot your phone
-THE END-
Why Metamorph?
1. Easily Edit your Apk's & Jar files on your phone without hazzle of extracting and replacing.
(Jar files will need pc. awww but you dont edit jars too much )
2. You can Mod multiple Apk's
Code:
[B]<item>[COLOR=Red]your_apk1.apk[/COLOR]</item>
<path>[COLOR=Red]path_of_your_apk[/COLOR]</path>[/B]
[B]<item>[COLOR=Red]your_apk2.apk[/COLOR]</item>
<path>[COLOR=Red]path_of_your_apk[/COLOR]</path>
[/B]
[B]<item>[COLOR=Red]your_apk3.apk[/COLOR]</item>[/B]
[B] <path>[COLOR=Red]path_of_your_apk[/COLOR]</path>
<description></description>
[/B]
you can even edit your Framework-res.apk. just make sure the path of it is /system/framework and not /system/app
3. I don't know. I need to try it out more. I'm trying to edit a jar file for now. will tell you the results. but the potential of it are endless
4. However it doesn't work with market apps. its intended to only bug the stock things
IMPORTANT : Meta is very stringent about its filenames and fonts case and name. If you miss one thing the apk will disappear from your menu. so make sure you've a
BACKUP B4 U MESS-UP
WOW IT RHYMES LOL
Click to expand...
Click to collapse
EDIT : well you don't need to entirely backup just copy/paste the apk you want to edit. entire backup may require if you are playing with jar files or crucial apk's.
I'm not responsible for any mess done to your phone
Edit 2 : Works with framework-res.apk too
Ok. How can I change icon Phone or Music Player? I try your method and I can change only Calculator, Calender and Settings. Any ideas?
bananoss said:
Ok. How can I change icon Phone or Music Player? I try your method and I can change only Calculator, Calender and Settings. Any ideas?
Click to expand...
Click to collapse
folder path
SemcMusic\res\drawable
icon name
music_app_icon.png
Code:
[B]<?xml version="1.0"?>
<themename>SemcMusic</themename>
<themeversion>0.1beta</themeversion>
<screenshot></screenshot>
<author>Suhel</author>
<authorweblink>N/A</authorweblink>
<phone>Xperia X8</phone>
<rom>Sony Xperia X8 2.1 </rom>
<themedescription>Converted Theme</themedescription>
<item>SemcMusic.apk</item>
<path>/system/app/</path>
<description></description>[/B]
Nice tut
edit: if i need to change a app on sdcard whats the path? :S
/sdcard/foldername
Foldername would be the folder in which your app is stored
Click to expand...
Click to collapse
WHOOAA. Can I get a source for the background please? And what font are you using there?
Edit: This looks so damn good, holy crap.
a-k-t-w said:
WHOOAA. Can I get a source for the background please? And what font are you using there?
Edit: This looks so damn good, holy crap.
Click to expand...
Click to collapse
sure buddy
what about folders in zip file for framework.apk ? Where should be semc_bg.png and fonts ? Near .xml or in folder .......
Sorry for offtopic... But: Which framework do you (suhel) use? It's so awesome
thanks for this tutorial!
herbi69 said:
what about folders in zip file for framework.apk ? Where should be semc_bg.png and fonts ? Near .xml or in folder .......
Click to expand...
Click to collapse
the semc_bg should be placed in /res/drawable-mdpi
for the fonts refer this topic http://forum.xda-developers.com/showthread.php?t=933406
[email protected] said:
Sorry for offtopic... But: Which framework do you (suhel) use? It's so awesome
Click to expand...
Click to collapse
are you talking about the blue background??? I've already attached the file and fonts two posts above your post
thanks for sharing~
I've done a heavy search on the problem and can't seem to find a solution so here goes. I created a file through Adobe Photoshop for the status_bar_close_on.9.png. Pictured below. I created it in the exact dimensions the file was which is 480 x 48. I then ran cmd for draw9patch. I dropped my .png file into draw9patch to make it a .9.png.(Also, made a border on the bottom and right side even though there's no words in the final .9.png.)
I then placed the file into SystemUI.apk>deleted META-INF> then resigned the apk. Placed the APK back into a flashable zip> Flashed.
My problem is a white border shows around my image now. From the recommendation of another forum member, I tried putting the apk into apkTools and ran unPack.bat and quickPack.bat which didn't work either.
What am I doing wrong?
{
"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"
}
EDIT: I think I may have found my problem. I wasn't using Eclipse to compile the image.
Reference: http://www.nexus-nation.com/root-your-nexus-one/9pngs-figured-out
EDIT: This wasn't easy to figure out. I don't want anyone to go through what I went through so I've added what I've found and posted some nice pictures for you visual people.
*You first need to read the page I referenced above. After you have installed Eclipse, you'll need to install the google plugin shown below.
Possible errors you'll run into when starting an Eclipse Project
When you start a new project>File>New Project>Android>Android Project> and the build target is not listed you'll need to do the following on Eclipse. You'll know you have to do this if it says, "An SDK project must be specified."
If your screen looks like this, it means you haven't specified your SDK directory for Eclipse.
Step 1. Open Eclipse>Windows>Preferences
Step 2. Find the location of your SDK
Your Eclipse should then look like the following image, which now displays your build target.
Possible Error 2: While setting up a new project in Eclipse, you get the error: "
Package Name must have at least two identifiers
Click to expand...
Click to collapse
You need to enter the package name as: com.android.newproject and the project name must be one word only.
Reference:http://blog.gbinghan.com/2010/05/android-eclipse-package-name-must-have.html
Reference:http://www.nexus-nation.com/root-your-nexus-one/9pngs-figured-out
Quote:
When you open a .9.png you do not see the guides, that is because they are hidden. When you want to add the guides to an image, you have to drag it into the draw9patch tool. Now the tool has a hidden secret i figured out.(not really hidden, but not well described) If you open an image with the .9.png extension it just opens it. But if you open an image without the .9.png extension, it adds 2 pixels to its width and height. These 2 pixels are for the hidden guides. For example the btn_default_normal_disable.9.png in framework is 44x48. But if you remove the .9 from the file name and drag it into the draw9patch tool it changes to 46x50. Which you will notice after you save the image from the draw9patch tool. Also it will add the .9 to the file name.
Howto: draw9patch
The idea of the draw9patch tool is very simple, you drag an image into it you create the guides and you save the image. But the guides are very specific and if you do not do them properly your image will look strange. So follow these few rules about the tool.
Remove the .9 from image name before you drag it into the tool.
The top and left side guides set where the image can be stretched. Where ever you put a guide is where the image will stretch. Do not put more then 2 next to each other.
The bottom and right side guides set the content area(where the text will go). Now you can only put the guides in the outer border, once the image is compiled this border will be hidden. The tool will not let you put any guides anywhere but the outside border. Now usually you will put a 1x1 guide on the top and left sides, on the right and bottom you want to draw a full line. I have tried putting multiple guides on the top and left but the aapt tool seems to stress out and crash before compiling.
Once you save the image the draw9patch tool should of added the .9 to the name. That is all to adding the guides to the image.
So now your saying ok, i have the image and i still see the guides. To get rid of these lines we need to compile them with Eclipse. Basically we add them to a project in Eclipse and create an apk. During the compile the aapt tool from the sdk will set the image back to its original resolution and hide the guides.
(I am hoping to figure out some command lines for the aapt tool so we can skip this step. But until then editing these .9s are a big pain in the arse!)
Howto: Compiling in Eclipse.
I am assuming you followed the link above for setting up Eclipse and can create a new Android project.
Once Eclipse is open you want to go to "File\New\Android project". Select "Create project from existing source". It should default to the path of the samples in your SDK directory, but if it doesn't just browse to them. I have been using my own project but any sample should be fine. Choose "Finish" and on the left hand side under Project Explorer, you will see the name of the project you opened. Expand the project, then Res and you will see the Drawable folder. You will want to drag your edited .9s here. Once all of the images are in the drawable folder you want to right click the top level folder(Project name) for your project and choose "Android Tools"(second from botom) then "Export Unsigned Application Package..." Save the apk where ever you'd like, just remember where you put it. Cause you will want to open it and take the images out of the drawable folder. You will notice now that the guides are gone and the resolution is back to the normal size. Drag the images into your theme and you are done.
Click to expand...
Click to collapse
What's unPack.bat and quickPack.bat? As I told you on a PM, you have to compile that 9.png file. You can do that:
using apktool: decode apk using apktool, then add your 9.png and build apk back
creating new Android project: create it, add your 9.png, build, unpack, copy compiled 9.png - that method was described in a guide quoted by you.
or using aapt tool directly
Brut.all said:
What's unPack.bat and quickPack.bat? As I told you on a PM, you have to compile that 9.png file. You can do that:
using apktool: decode apk using apktool, then add your 9.png and build apk back
creating new Android project: create it, add your 9.png, build, unpack, copy compiled 9.png - that method was described in a guide quoted by you.
or using aapt tool directly
Click to expand...
Click to collapse
The aapt came with the unpack and quickpack.bat. Which were in the apktool kit. Unpack.bat. From what it said, decodes the apk file. It looks like it extracts it. Quickpack.bat puts the file back into an apk. Correct me if I'm wrong.
I ran the aapt.exe but it quickly ran cmd then exited before I was able to see what was done. There were no guides I could find on how to use it, which didn't help.
I'd really like to know how to use aapt. I'm sure that's much easier and faster than running Eclipse. Please advise.
**This link is the download page from which you sent me regarding the apktool. Inside it includes those bat files along with aapt.exe.
http://code.google.com/p/android-apktool/wiki/9PatchImages
http://code.google.com/p/android-apktool/downloads/list
raider3bravo said:
The aapt came with the unpack and quickpack.bat. Which were in the apktool kit.
Click to expand...
Click to collapse
Errr.. what? ;-D I'm an author of apktool and I'm pretty sure there are no such files ;-) For Windows there should be: apktool.jar, apktool.bat and aapt.exe .
raider3bravo said:
I ran the aapt.exe but it quickly ran cmd then exited before I was able to see what was done. There were no guides I could find on how to use it, which didn't help.
Click to expand...
Click to collapse
aapt is more advanced tool, but you could try it if you want. Do:
fake AndroidManifest.xml file - simplest manifest is: http://pastebin.com/ck2EPh6U , you can copy it.
create file structure:
Code:
AndroidManifest.xml
res/
drawable/
1.9.png
2.9.png
3.9.png
...
open terminal, cd to a directory with above files
run "aapt p -f -F out.apk -M AndroidManifest.xml -S res"
unpack out.apk and copy *.9.png files to your apk.
Thanks. I'll have to try this out and see if it's faster than Eclipse. You were right on the files not being in the link provided. I somehow got them mixed up. Here's where I downloaded that apktool that included the quickpack.bat and unpack.bat files.
http://forum.xda-developers.com/showthread.php?t=882742
Brut.all said:
Errr.. what? ;-D I'm an author of apktool and I'm pretty sure there are no such files ;-) For Windows there should be: apktool.jar, apktool.bat and aapt.exe .
aapt is more advanced tool, but you could try it if you want. Do:
fake AndroidManifest.xml file - simplest manifest is: http://pastebin.com/ck2EPh6U , you can copy it.
create file structure:
Code:
AndroidManifest.xml
res/
drawable/
1.9.png
2.9.png
3.9.png
...
open terminal, cd to a directory with above files
run "aapt p -f -F out.apk -M AndroidManifest.xml -S res"
unpack out.apk and copy *.9.png files to your apk.
Click to expand...
Click to collapse
I will definitely be putting this thread to use, I am just learning this stuff, so this will be very helpful. Thanks raider, you have been a wonderful help to me so far
Ok so a lot of you guys have been requesting a resizing tutorial so you can all help out on the new fresh roms like thenextsense and senseonfire.
Everyone gets directed to http://forum.xda-developers.com/showthread.php?p=6739512#post6739512 and get all confused because it doesn't actually explain much so I decided to post one written by me (I resize things in my rom, senseonfire)
Note: I am using linux Operating System and resizing to my HTC wildfire.
First off you are going to want to download apktool and the dependences for your operating system. It runs on windows, linux and mac OSX so it won't matter what OS you are running, you will be able to use it.
Once you have got apktool installed you are going to open terminal (or command prompt on your windows)
You are then going to navigate to the directory you installed apktool into:
Code:
cd /install...dir../apktool
Once that is done you are going to look at the rom that contains the app you are about to resize. You are going to open the rom archive and navigate to the framework
Code:
/system/framework/
and extract any files ending in .apk to the apktool dir
You are going to go back to the open terminal and type in
Code:
./apktool install-framework extracted_framework_filename.apk
or if you are on a windows computer
Code:
apktool install-framework extracted_framework_filename.apk
This will install the framework file/s so apktool can decompile stock apps correctly.
Once it installs correctly you are then going to choose the app you are going to resize. For the sake of this tutorial I am going to resize HtcMusic.apk
Navigate to the app folder in the rom archive
Code:
/system/app
and extract HtcMusic.apk to apktool dir
Then you are going to decompile the app to start resizing
In the still open terminal you are going to type
Code:
./apktool d HtcMusic.apk
This will decompile the htcmusic to a folder in the apktool dir called HtcMusic
To make resizing easier you should grab your phone and open HtcMusic and see what needs resizing. Now this is where the trial and error comes in.
Navigate to the layout folder in HtcMusic
Code:
/res/layout
or
Code:
/res/layout-mdpi
and choose the .xml file you believe you are looking at on your phone screen. For example on the HtcMusic app if you are resizing the playback screen it would be audio_player.xml that you would have to edit.
Play with things that have sizes (y.y px) especially things that say layout_width=y.y px... change the y value to something smaller.
If there is something that has a value @dimen/... it means that the value is in the dimens.xml in the /res/values folder
If there is something that has a value @com.htc:dimen/... it means that the value is in the dimens.xml in the com.htc.resources.apk
Once you finish the changes you are going to have to recompile the app
Go back to the terminal app that you still should have open (if you don't you will have to open it and cd to the apktool dir)
type in this code (make sure you delete the HtcMusic.apk out of the apktool directory prior to doing this)
Code:
./apktool b HtcMusic HtcMusic.apk
if you get an error and you are on linux try this
Code:
sudo ./apktool b HtcMusic HtcMusic.apk
sudo chown [your username] HtcMusic.apk
Once you finish this you will have to sign your apk. The easiest way to do this is to use dsixda's kitchen's signing tool.
Once this is done you can either push the app to your phone using adb (this never works for me)
Code:
./adb push HtcMusic.apk /system/app
if that doesn't work
Code:
./adb remount rw
./adb push HtcMusic.apk /system/app
But if that causes HtcMusic to disappear like it did to mine you will have to use dsixda's kitchen to open the rom, add htcmusic, sign all apps, and cook the rom again, then flash it on your phone.(I will not type out how to do this, there are lots of threads on how to use the kitchen)
Actually you can do it a lot easier than flashing the whole ROM again. I will post how to do this soon [28/6/12]
Open the app and look what has changed (if any) and then try again till you get it right. Trust me it takes a long while to get it right so don't expect for it to be right on your first go
Oh and if this helped you hit thanks!
APK Manager
There is an app called APK Manager that will make this easier i think it is just for windows but i don't know there might be a linux version
if this is helpfull remember to THANK
linux too http://forum.xda-developers.com/showthread.php?t=695701
Nice ! (ADB works never for me to )
THanks for the tutorial Vigidroid
I am new to this followed your steps perfectly but couldn't find any file with extension xml
I am on windows 7 all files are .smali extension
Can you elaborate a little ...Thanks
Edit :weird but works now
hey guys i'm a complete noob
i did follow all of d above steps and i'm stuck on d "AndroidManifest.xml" ... i'm not able 2 open d xml !!!!! it gives me a phrasing error( in mozilla) and an "encoding error"(in jedit)
could some 1 pls help me out !!!
thankya in advance
You must be trying to open up a .xml file that hasn't been decompiled yet. Try using apktool again to decompile all the contents of the app and then you should be able to open all .xml files correctly.
Opening the android manifest that has been decompiled:
{
"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"
}
Opening the android manifest that hasn't been decompiled:
hi VigiDroid,
thanks for all the work you do for our wildfires. ive tried, unsuccessfully to use apktool a few times so i can learn how to resize apps. i cant even get to open apktool.
i downloaded the apktool1.4.3.tar.bz2 and apktool-install-wind...,tar.bz2 and unpacked them onto a folder on my desktop (windows xp). in the tut you say to install apktool, i assume you mean to open the tar files to a folder?
when i open a command and try and run apktool i keep getting a syntax error message. i have the apktool ms-dos batch file and executable jar file with the aapt file in a folder on my desktop called (not very originally ) "apktool" so i typed into the command box
cd/C:\Documents and Settings\KnK\Desktop\apktool/apktool
as instructed in your tut ie cd /install...dir../apktool. install directory being C:\Documents and Settings\KnK\Desktop\apktool.
any help would be appreciated. ive attached a screen shot of the command promt
Here's a couple of guides I followed in the beginning. First one is for setting up java, adb http://forum.xda-developers.com/showthread.php?t=879701
Second is for apk multi tool, it used to be apk manager, install this after setting up java and the Android-sdk, its basically apktool but with a gui. Great tool for beginners.http://forum.xda-developers.com/showthread.php?t=1310151
There is another one I used for just setting up apktool but I can't find it so have a crack with the multi tool.
Sent from my HTC Wildfire using xda premium
Nice 1 Scratch, as always there with a helping hand for our little wildfire community. Thanx m8
Sent from my Wildfire using xda premium
... on the learning progress , my dream is to be a chef and share my work here ... thx for the tutorial it really help me a lot ..
Sent from my Wildfire using Tapatalk 2
Does anyone know why do I always get errors on compiling with apktool ? I have java installed for sure, I installed the framework , got no problems with the decompiling and then it just wouldn't build up :X
P.S. I was trying to edit one layout xml in this apk ,but no success. Would be really grateful if someone can compile it for me :S
----------------------------------------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
----------------------------------------------------------------------------------------------------------
PREFACE
Hello guys, first of all I want to say thanks to all the real developers (and not just rom-modder like me) that are here, helping us to get better performance and features everyday, so thanks to FXP, CosmicDan, DooMLorD, wedgess, smokerman, krisdee, Spizzy, Keiran, fareneith, Pizza_Dox, Bakisha, and many, many others.
This guide is intended for those who want to make some mods, for example touchpads fix to their rom, and it's not too hard to understand how to do it (we will just use an IDE to achieve that, so it'll be pretty simple).
Let's start!
Click to expand...
Click to collapse
----------------------------------------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
----------------------------------------------------------------------------------------------------------
DECOMPILING .APK AND .JAR FILES
without custom framework
Make sure you have installed NetFramework 4.5,
if not download it from here and then install ;
You can now install Virtuous Ten Studio (VTS):
download it from here and follow the passages to install it ;
Run VTS (you could easily find it under Start) ;
Now you can create a new Project:
simply click on File (on the left top) and select New Project ;
Projects can be of 4 kinds: apk, jar, m10 and boot.
Select apk if you want to edit an apk; select jar if you want to edit a jar ;
Compile the fields on the bottom (Solution and Project name) ;
Wait for VTS to create the folders...;
Now you can import the file you want to edit:
simply right-click on the project you have created (you can find it under Solution Explorer bar, on the left)
and select Import File, then find and select the file you want to edit ;
Here we go! VTS will now decompile our file, and when it finishes,
Solution Explorer bar will be updated to show you what your file contains (smali files and whatever) ;
Now you can make every modification you want to do;
When you have finished, you can recompile that file by right-clicking your project and selecting Build Project:
you can easily find your modded file, just click Binary (under Home tab on the top) and select your file project name;
Here we are! If you've got some questions, just ask here!
Click to expand...
Click to collapse
Click to expand...
Click to collapse
----------------------------------------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
----------------------------------------------------------------------------------------------------------
DECOMPILING .APK FILES
with custom framework
first of all, you must know what to do: just take a look at the guide above and follow the steps (from 1 to 7) ;
now you must take the custom resources needed from the apk you want to decompile to work (that resources file is another apk, generally located under /system/framework and its name contains always something like Res or Resources - for example SemcGenericUxpRes -) then place it wherever you want ;
once you've done that you can create your project (DON'T import now the app you want to modify, because you'll get errors related to missing resources) and set-up a custom framework: just right-click on your project and go under Properties ;
find External tools on the left and click on apktool: select Add single framework, import the custom-resources apk that you took from your rom ( see first step ) and set a Tag (the name you want to assign to that file) ;
now you must select that framework to be used instead of the default one: right-click on your project and go under properties; here you can find a selector called Framework tag: select the one you've just setted ;
that's it! Now you can import your custom-framework-based apk ( if you don't know how just take a look at the guide above - step 8 ) .
Click to expand...
Click to collapse
Click to expand...
Click to collapse
----------------------------------------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
----------------------------------------------------------------------------------------------------------
When i have the time, i really have to give this program a chance. Tnx for tutorial
Sent from my R800i using xda app-developers app
Good job, I've used vts.for awile now.its a great program.
Dark Lords Development Team
Needed to learn Apk Decompiling, now i can!,
simpler than apk tool..and easy to use in small changes..comes handy. nice post.
i have a problem with decompiling resource files can anyone help plz???
{
"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"
}
and this is my log
raminta said:
and this is my log
View attachment 2048601
Click to expand...
Click to collapse
It seems apktool is missing, maybe an incorrect installation? Have you tried reinstalling?
CriGiu said:
It seems apktool is missing, maybe an incorrect installation? Have you tried reinstalling?
Click to expand...
Click to collapse
Yes but nothing has changed
Sent from my R800i using xda premium
raminta said:
Yes but nothing has changed
Sent from my R800i using xda premium
Click to expand...
Click to collapse
try using an older version of VTS, but I can't promise anything
it's clearly related to missing binary, and that's strange. does this happen just with that specific apk, or with all of them?
And keep in mind that you're decompiling an apk with a custom framework, so before you can decompile it, you must add its resources by right-clicking on your project, selecting properties, going under External tools and clicking on Apktool, selecting Add single framework (here you must place your resources apk file: it's generally located under /system/framework folder of your rom - the rom from which you're taking the apk you're modifing - it's something having for name SonyResources or something like that).
Then you must set that framework to be used instead of the "stock" one by right-clicking on your project and going under properties; here you can find a selector called Framework tag: select the one you've just placed in.
CriGiu said:
try using an older version of VTS, but I can't promise anything
it's clearly related to missing binary, and that's strange. does this happen just with that specific apk, or with all of them?
And keep in mind that you're decompiling an apk with a custom framework, so before you can decompile it, you must add its resources by right-clicking on your project, selecting properties, going under External tools and clicking on Apktool, selecting Add single framework (here you must place your resources apk file: it's generally located under /system/framework folder of your rom - the rom from which you're taking the apk you're modifing - it's something having for name SonyResources or something like that).
Then you must set that framework to be used instead of the "stock" one by right-clicking on your project and going under properties; here you can find a selector called Framework tag: select the one you've just placed in.
Click to expand...
Click to collapse
Ok thanks for replying:thumbup:
Sent from my R800i using xda premium
" This thread will cover various useful guides starting from how to Decompile/Recompile Apk & Jar files. Me & my friend Aneel will provide new guides/tutorial day by day so that you guys can get many handy guidance in one place. Please Suggest us If you need any guide & we will try to post it If we actually can. Also If you find our guides useful then support us my giving feedback, hitting thanks & adding in credits section "
1st Let's start with [How to decompile & recompile with Apk Multitool]:
*Requirements*
Latest Java
Latest JDK+JRE (get everything from http://www.oracle.com/technetwork/java/javase/downloads/index.html)
Apk Multi Tool (Download from attachment)
Steps
1. Unzip Apk Multi Tool into a folder
2. Now run Setup.bat. It will look like this
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
3. Now choose 3. Setup Directories & press enter
4. This will create the folders needed. It will look like this
5. Now place the apk you want to decompile in place-apk-here-for-modding
6. Place a framework-res.apk, SemcGenericUxpRes.apk & SystemUI.apk in other folder. Preferebly it should be from the same package of apk/same apks of a Rom which you placed in the place-apk-here-for-modding folder. If there is no corresponding apks then you can try with other framework & systemUI apks also.
7. Now again run Setup.bat & press enter & choose 2. Installing Framework-Res. It will look like this
8. Now choose option 1 & enter to install framework & again option 4 & enter to install SystemUI
9. Now run Script.bat & press enter to activate various menu. Choose option 9 to decompile the apk. Then press enter. It will look like this
10. Once decompile is complete close the script & go to projects folder
11. Do the necessary changes you want to
12. When editing is done again run Script.bat
13. Choose option 11 to recompile & press enter. It will prompt a message after sometimes, Aside from the signatures....of errors (y/n)
14. Input y & press enter
15. Now after sometimes, it will again ask you to delete everything you have modified from keep folder & also delete resources.arsc if you have modified any xml. Minimize the script, delete the xml(s) you have modified (other than from values folder, it won't appear in keep folder) & also resources.arsc. If you have modified any png (not added) then delete it too. Then press enter when you are ready.
16. Now your new apk is ready. You can find it in place-apk-here-for-modding folder. Note that, your original apk will also be in the same folder with original name. Your modified apk will have System_ attached in the name.
17. Copy it to some other place & rename to original apk name & enjoy.
18. When you want to work on the next project then delete everything from place-apk-here-for-modding & projects folder. Now follow the same steps again from Number 5 of this guide.
[How to decompile & recompile Jar Files]:
*Requirements*
Winrar/7zip
Deodexed Jar files
smali.jar
baksmali.jar (both are in the attachment)
Command Prompt/Terminal
0. Take the classes.dex from jar file by opening it with 7zip/Winrar.
1. Open a new folder in Desktop named suppose "Jar"
2. Place smali.jar & baksmali.jar in the folder
2. Open Command Prompt. On windows type cmd in Run
3. cd to your directory where you have opened the new folder. In my case it is
Code:
C:\Documents and Settings\USER\Desktop\Jar
4. Write
Code:
cd C:\Documents and Settings\USER\Desktop\Jar
& press enter. Note that, on your case the directory will be different from mines. So get the correct directory by going into that directory from C:
5. Now type this to Decompile. Note that, there is a "space" before "classes.dex"
Code:
java -jar baksmali.jar -o classout\ classes.dex
& press enter
6. When Decompiling is done there will a folder named "classout" be placed in Jar folder. Minimize the cmd.
7. Now make the necessary changes inside the classout folder
8. When done,type this to recompile & press enter. Remember, there is a "space" before "new-classes.dex"
Code:
java -Xmx512M -jar smali.jar classout\ -o new-classes.dex
9. When recompiling is done there will be a new file in the folder named "new-classes.dex"
10. Now rename new-classes.dex to classes.dex & put it in the jar file with 7zip/Winrar
..............That's All. Thank You.................
Credits:
@raziel23x for Apk Multitool
@iONEx for teaching me about Apk Multitool when I was a noob
@Hero for Decomping jar files concept
Nice share... BTW, can mod MiuisystemUI.apk with this tool? I've heard Miui uses different aapt.
Aciong.Aksaya said:
Nice share... BTW, can mod MiuisystemUI.apk with this tool? I've heard Miui uses different aapt.
Click to expand...
Click to collapse
yes you can just follow this cause miui has more than one framework-res.apk & you don't need twframework in this case http://forum.xda-developers.com/showthread.php?t=2306397
saqib nazm said:
yes you can just follow this cause miui has more than one framework-res.apk & you don't need twframework in this case http://forum.xda-developers.com/showthread.php?t=2306397
Click to expand...
Click to collapse
The tool is great but I can't seem to do what should I do the centered clock for MiuisystemUI.apk I can't seem to find decent tutorial.
Aciong.Aksaya said:
The tool is great but I can't seem to do what should I do the centered clock for MiuisystemUI.apk I can't seem to find decent tutorial.
Click to expand...
Click to collapse
here is the guide http://en.miui.com/thread-4353-1-1.html
Hell there is an error in your compiling code of your smali/jar
it should be "-o new-classes.dex"
Razor! said:
Hell there is an error in your compiling code of your smali/jar
it should be "-o new-classes.dex"
Click to expand...
Click to collapse
Right! Thanks Razor,now it's correct :good:
saqib nazm said:
Right! Thanks Razor,now it's correct :good:
Click to expand...
Click to collapse
Welcome
Press thanks if you like my work/advice
@saqib nazm, it would be good if you add tut on how to recompile apks after making changes in androidmanifest.xml.. Because I have observed it gives bootloops.. As signing of apps just puts meta inf and doesn't do anything to androidmanifest.. Just a suggestion..
Sent from my MT11i using xda premium
sandy7 said:
here is the guide http://en.miui.com/thread-4353-1-1.html
Click to expand...
Click to collapse
Ive been into that place if you knew david guetta face in the thread thats me. Thanks for your kindness to redirect me. The OP is not just very much accommodating geez...
Aciong.Aksaya said:
Ive been into that place if you knew david guetta face in the thread thats me. Thanks for your kindness to redirect me. The OP is not just very much accommodating geez...
Click to expand...
Click to collapse
I suggested you to install the proper framework files to decompile miui stuffs properly, though this thread is for compiling & decompiling with apk multi tool,not how to center clock on miui I beg your pardon? & I didn't say anything else because sandy already directed you to a guide, that's probably I would also gonna do If I were in the 1st place like sandy replied. You cannot say words which can hurt other people. Cause If I would know how to "Center clock on miui" I would open a thread with that guide,isn't it?
First of all,Thank you for work but I have a lot of problems.Can you help me about thats? I did everything step by step.No problems with 1 to 6 steps.I placed the apk place-apk-here-for-modding and I placed a framework-res.apk, SemcGenericUxpRes.apk & SystemUI.apk in other folder.
After that,in step 7&8,when I choose option 1 & enter to install framework & again option 4 & enter to install SystemUI,I get this screens
So,in step 9,Run Script.bat & press enter to activate various menü choose option 9 to decompile the apk. Then press enter,I get errors like this
And so,projects folder is empty.What is the problem and what can I do?
Mazellat said:
First of all,Thank you for work but I have a lot of problems.Can you help me about thats? I did everything step by step.No problems with 1 to 6 steps.I placed the apk place-apk-here-for-modding and I placed a framework-res.apk, SemcGenericUxpRes.apk & SystemUI.apk in other folder.
Click to expand...
Click to collapse
that could be a problem with that apk, you cannot decompile it. If you have done all the steps properly as you said can you try with any other apk? so to be sure if that's the problem with that apk
Aciong.Aksaya said:
Ive been into that place if you knew david guetta face in the thread thats me. Thanks for your kindness to redirect me. The OP is not just very much accommodating geez...
Click to expand...
Click to collapse
saqib nazm said:
I suggested you to install the proper framework files to decompile miui stuffs properly, though this thread is for compiling & decompiling with apk multi tool,not how to center clock on miui I beg your pardon? & I didn't say anything else because sandy already directed you to a guide, that's probably I would also gonna do If I were in the 1st place like sandy replied. You cannot say words which can hurt other people. Cause If I would know how to "Center clock on miui" I would open a thread with that guide,isn't it?
Click to expand...
Click to collapse
Hi Saqib Nazm, Yes it it but this is a full misunderstanding. The OP I am referring to is the OP on the link that Sandy gave.
Mea Culpa...
Aciong.Aksaya said:
Hi Saqib Nazm, Yes it it but this is a full misunderstanding. The OP I am referring to is the OP on the link that Sandy gave.
Mea Culpa...
Click to expand...
Click to collapse
Oh ok I am extremely sorry then. Have a nice day
Hi saqib i want to ask again. If I make own fragment in settings_header.xml. How?
Sent from my LT25i using xda premium
danisariandi said:
Hi saqib i want to ask again. If I make own fragment in settings_header.xml. How?
Sent from my LT25i using xda premium
Click to expand...
Click to collapse
bro I have told you how to do it that day in the original thread, which part you didn't understand? You asked about smali files, you don't need any smali files man.
Kjkkkkkkkkk
poria1999 said:
Hi all members
I have some problem in recompiling apk files...
When i compile apk and delete resources.arsc+xmls that i have modified them,anything didnt change in apk ...
i am working on framework-res.apk ...
please helpe me...
Click to expand...
Click to collapse
what were you trying to change? & what you did?
Yyyyyyyyyyyyyyyyyyyyyy