How to modify Jelly Bean Contacts.ap? - Captivate Q&A, Help & Troubleshooting

I am trying to modify XMLs of Jelly Bean Contacts.apk. Using apktool that has been used for ICS and other Jelly Bean apks, I can decompile and then recomplie it without any error. However, the recompiled Contacts.apk would not work in cell phone, showing a message "Unfortunately, Contacts has stopped!".
To simplify the problem, I simply do decompiling and then recompiling without any modifications. I found that the size of resources.arsc has been changed from 1480 KB to 1525 KB. The new Contacts.apk causes FC!
Note: Files in smali folder can still be modified. After editing, use apktool to recompile and create a new apk. Then use WinRAR or 7zp to drag the newly created classes.dex into the original Contacts.apk. Such a "modified" Contacts.apk works properly. Note here that we did not modify resources.arsc.
This problem is only related to resources.arsc!! XMLs cannot be recompiled!!
Does anybody have the same problem? Do you know how to solve this problem? Any solutions or suggestions are appreciated.

Did anybody try this?
Are you all ok with modifying Contacts.apk?

With the current apktool jar file you can not edit any XML in the contacts apk. It has to be done in source code
Sent from the BatCave

zelendel said:
With the current apktool jar file you can not edit any XML in the contacts apk. It has to be done in source code
Sent from the BatCave
Click to expand...
Click to collapse
Thank you for your reply. The question is why we can edit XML in other apks except Contacts.apk.
Is there any magic?
framework-res.apk, Settings.apk, SystemUI.apk, Phone.apk are all ok without any problem.

iBotPeaches, the author of apktool, wrote: "Looks like we have new resource type. T9Map. Will have to code support for it. Its just loosing it on rebuild."
See discussions at: https://github.com/iBotPeaches/brut.apktool/issues/11

Related

[Q] modding APKs and ODEX files

Hi, just have a question regarding modding apks inside /app in odexed roms.
Have read a few threads regarding deodexing and decompiling apks, and just wish to clarify one thing:
For apks which have a corresponding odex file, is it possible to modify them without deodexing the whole rom? Intend to edit some xml files in the Contacts.apk file but wasn't sure of the exact procedure.
Here's what I tried:
1. Used xultimate to deodex
2. Used apktool to decompile apk
3. Edited xml
4. Used apktool to compile
5. Added META-INF and AndroidManifest.xml from original apk using 7zip
6. Deleted Contacts.apk and Contacts.odex
7. Copied Contacts.apk over
Thanks in advance!
ock said:
Hi, just have a question regarding modding apks inside /app in odexed roms.
(...)
For apks which have a corresponding odex file, is it possible to modify them without deodexing the whole rom? Intend to edit some xml files in the Contacts.apk file but wasn't sure of the exact procedure.
Click to expand...
Click to collapse
+1
I am also interested in the answer ...
I would like to theme some widgets and theme the statusbar on a stock ROM. I am not sure is it possible ? And what is the procedure with the odexed files ?

Help, any alternative to apktool

Hi can anyone suggest an alternative tool for apktool. It just doesn't work for me. Whatever I do either gives compiling errors or just a bootloop. Thanks guys.
It's nice to know I'm not the only one. Anything past extract optimize and zip is useless for me. I have never had it actually compile an .apk without an error.
I'm having serious problems compiling the framework-res from a CM6.1 based ROM. It decompiles fine, but won't recompile I get hundreds of errors about missing referances.
I only wanna edit a few XML's :sad:
Sent from my HTC Hero using Tapatalk
l0st.prophet said:
I'm having serious problems compiling the framework-res from a CM6.1 based ROM. It decompiles fine, but won't recompile I get hundreds of errors about missing referances. I only wanna edit a few XML's :sad: Sent from my HTC Hero using Tapatalk
Click to expand...
Click to collapse
Which xmls do you want to edit, and what are you wanting to change?
dean.d said:
Which xmls do you want to edit, and what are you wanting to change?
Click to expand...
Click to collapse
Thanks for replying, but I worked it out. I had some dodgy .9.png's that were breaking the compile, so I just had to remove them before compiling.
For anyone else having trouble, check the logs after you decompile to see if there are any messages about .9.pngs. If there are, remove them from the decompiled folder, compile when you are finished, then just add the .9.png's back in afterwards with WinRAR.
I was tryna change the color of the text and the border in the bottom popup menu for my Gingerbread theme
l0st.prophet said:
Thanks for replying, but I worked it out. I had some dodgy .9.png's that were breaking the compile, so I just had to remove them before compiling.
For anyone else having trouble, check the logs after you decompile to see if there are any messages about .9.pngs. If there are, remove them from the decompiled folder, compile when you are finished, then just add the .9.png's back in afterwards with WinRAR.
I was tryna change the color of the text and the border in the bottom popup menu for my Gingerbread theme
Click to expand...
Click to collapse
The reason that happens is the original "dev" who themed the framework did not decompile/modify/recompile. He merely dragged and dropped the modified .9.png
Hence when u decompile, apktool cannot find the necessarry data within resources.arsc to decompile the .9.png and hence when u go to recompile, it complains. Ur safest bet is to always decompile an apk as close to stock as possible.
Where do you place your framework-res.apk I placed mine in the platform tools folder but apktool can not find it

[ACS][HOW-TO]Remove Sprint branding

so of you have notice and have been asking about this. i decided i would open up my vault and let the secret out for all.
this is brought to you by myself and the rest of ACS.
Me and dreamsforgoten figured this one out together.
Disclaimer: do not decompile a custom framework and expect it to recompile as it will not work and you'll end up with a list of errors. You can not hold me our anyone at ACS for bricking your phone or any damage that may have occurred by doing this
this how-to is written as if you have a half a brain and know what your doing. if you dont know what your doing please read the themeing how to's written by dreamsforgotten.
1. decompile framework-res.apk
2. open up the values folder
3. locate strings.xml and open with notepad++
4. ctrl+f and search for Sprint. it should be under zz_roamingguard_1 or something simliar. make sure just to edit the roaming guard_1 only
5. rename to w/e you would like. this changes the pull down branding, the aosp lock screen branding, and the network in settings
6.recompile apk. if your building a theme make your other xml edits while decompiled
If you use this mod in your custom themes or roms please give me credit
if you feel as you have benefited from this in anyway please buy me a beer in my signature to keep me motivated on finding more tricks, hacks and themes
Not sure if this will work on other phones or carries.
Thanks for posting this. Is there a way to tell if a framework-res is modded already? Or, more specifically, if trying this on dk28, where's the best place to get a "pure" framework to start with?
also, do you use a specific level of compression when compiling your edited framework?
Thk u.
Sent from the future.
decalex said:
Thanks for posting this. Is there a way to tell if a framework-res is modded already? Or, more specifically, if trying this on dk28, where's the best place to get a "pure" framework to start with?
also, do you use a specific level of compression when compiling your edited framework?
Thk u.
Sent from the future.
Click to expand...
Click to collapse
When I mean a modded framework-res.apk it's one that comes from a theme. They don't compile nicely with the new images added.
I'm personally using the dk28 release from ACS as my framework to modify.
A good way to test is as soon as you de compile the framework re compile it. If it re compiles with no errors you then you can go ahead and use that framework.
I haven't changed my compression when compiling any of my work
Sent from my SPH-D700 using Tapatalk
I know in apk manager 4.9 it saves the file as unsigned_filename.apk but when you chose yes to carry over the signature, it is carried over into the new file in tact. You can skip the last step of resigning the apk after compiling if you choose yes as a system file when you compile. it throws you off being named unsigned but if you open it the meta inf folder is in there.
Sent from my SPH-D700 using Tapatalk
Ok
Maybe i am in wrong thread but here goes.
I installed acs dk28 fro-yo version when it was first released
I have an app i use called privacy star,it no longer will let me use the app
I called privacy star they say my carrier is iroot the original branding acs used for the ROM since iroot isn't a phone company i cannot pay for the app at all.
tell me why, and any suggestions how i can change my carrier back to sprint branding, i have a build prop if anyone can help me.
about phone says sprint as my carrier and i didnt see anything odd in buildprop
http://pastebin.com/92hCixde
humdrum2009 said:
Maybe i am in wrong thread but here goes.
I installed acs dk28 fro-yo version when it was first released
I have an app i use called privacy star,it no longer will let me use the app
I called privacy star they say my carrier is iroot the original branding acs used for the ROM since iroot isn't a phone company i cannot pay for the app at all.
tell me why, and any suggestions how i can change my carrier back to sprint branding, i have a build prop if anyone can help me.
about phone says sprint as my carrier and i didnt see anything odd in buildprop
http://pastebin.com/92hCixde
Click to expand...
Click to collapse
you may basically have to reverse the instructions in the OP. do you understand the instructions? browse the how to theme guides by dreams, you wouldnt be doing all the editing of pngs and compiling in eclipse, but you will need apk manager. basically decompile your framework-res.apk, go to values/strings.xml and change iroot back to Sprint in Notepad++, recompile. you could either drop it in /system/framework with root explorer or replace in the ROM zip and reflash.
Ill get on it right now thanks
Nice post.
Hmm.. I'm curious If that works for you, since you're decompiling and recompiling a "modified" framework.
Sent from the future.
decalex said:
Hmm.. I'm curious If that works for you, since you're decompiling and recompiling a "modified" framework.
Sent from the future.
Click to expand...
Click to collapse
Unfortunadamente, it won't. You can however, take a stock framework-res.apk and copy over the drawable-hdpi folder. But you will lose the battery % mod as well, so make sure to change the battery images back to stock before you copy it.
Sent from my Xtremely Syndicated and Emotionless Epic 4G
Thread cleaned. If something like this happens again, infractions will be handed out to everyone involved.
If you have a member that is trolling/flamming, just ignore them and report the post. I will take care of it.
By saying something to them you are going to get yourself in trouble and start a large fight in a thread that does not need it.
decalex said:
Hmm.. I'm curious If that works for you, since you're decompiling and recompiling a "modified" framework.
Sent from the future.
Click to expand...
Click to collapse
you can reverse the order but there will be extra steps involved. when your ready ro re compile you would have to add in all the stock .9.pngs when re compiling.
Sent from my SPH-D700 using Tapatalk
Thx for your help guys I'll edit this post with results.
Cool-- using both of your recommendations (starting with orig ACS DK28 rom's framework-res.apk, I was able to edit the xml(s), recompile, (delete resources.arsc in the created keep folder), then signed, then dropped in drawable pngs. When you want to do the png edits, do you overwrite All of the folders in your signed framework's res folder? (wouldn't that overwrite the xml edit made)? or just the drawable folders
decalex said:
Cool-- using both of your recommendations (starting with orig ACS DK28 rom's framework-res.apk, I was able to edit the xml(s), recompile, (delete resources.arsc in the created keep folder), then signed, then dropped in drawable pngs. When you want to do the png edits, do you overwrite All of the folders in your signed framework's res folder? (wouldn't that overwrite the xml edit made)? or just the drawable folders
Click to expand...
Click to collapse
you will only loose your xml edits if you replace the xmls
Sent from my SPH-D700 using XDA App
hehe.. come on man. gimme a little more credit than that
in compiled state, the strings.xml (for example) is contained in the resources.arsc file (?). Because, decompiled, obviously, the folder structure is different.
so, I could basically just replace the whole res folder, since the resources.arsc is *not* in that folder? I'll play around with it, but I think I'm getting the gist.
decalex said:
hehe.. come on man. gimme a little more credit than that
in compiled state, the strings.xml (for example) is contained in the resources.arsc file (?). Because, decompiled, obviously, the folder structure is different.
so, I could basically just replace the whole res folder, since the resources.arsc is *not* in that folder? I'll play around with it, but I think I'm getting the gist.
Click to expand...
Click to collapse
When editing xmls you delete the xmls you edited in the keep folder. The hidden xmls like strings.xml is not seen when being built. I delete the resources.arcs when ever I edit a xml even if it is a visable xml. You cannot replace the hole res folder cause of the xmls inside. Some xmls makes changes in the public.xml when compiled. The public.xml is also hidden.
Just decompile the custom framework you wanna edit. Make your changes. Replace all the modified .9 images with the stock ones. Recompile the framework. In the keep folder delete resources.arcs and any xml you can see in the build that you edited. Delete the .9s from the keep folder since you replaced them. Once the file is compiled sign it. Open up the old custom framework with 7zip and your newly created framework with 7zip. Drag and drop the .9s.from the custom framework into your framework
Sent from my SPH-D700 using XDA App

Jvt Adding lockscreens

guys i'm trying to add lockscreens to the rom i'm using, I decompiled classes.dex from framework jar of a theme which have the lockscreens i want, after decompiling classes.dex with baksmali i get 4 folders:
-android
-com
-java
and -siso
which files are the ones that contains the information about lockscreens?
edit*
decompiling android-policy jar i found the files of the lockscreens. what more do i need?
any help would be appreciated and I hope somebody can help me
thanks
i've search for a tutorial or something that help me, but came with nothing, thats why I post this

System app Contacts (Phonebook.apk) decompiling and recompiling

I decompiled and recompiled Phonebook.apk without modifying anything and the app gets smaller, from 7,196 kB to 7,178 kB. What can it depend on? I used Advanced Apktool ...

Categories

Resources