Could someone help walk me through this? I've decompiled/recompiled plenty of apks, however the framework-res.apk is being relatively stubborn. After recompiling the apk I get force closes in random areas of settings, etc.
I use apktool (as I need to edit an xml file's value), to decode, then build.
Are there any random steps I'm missing?
I've tried this over and over to get the same results everytime.
Someone said it is because of corrupted xml, and if so how do I prevent the problem from happening?
Anyway, thanks in advance.
Check out the theme guides in epic themes and apps forum, grab apk manager, the op says to decompile and recompile without making any changes as some apks can just be problematic and error. But you should be able to edit xmls (no pngs! Drag and drop after!) And recompile with no prob, use like notepad++ as windows notepad adds junk characters tat cause issues too.
Sent from my SPH-D700 using Tapatalk
UPDATED 2012.09.05!!! Hey guys, if you can do some testing with the new version and give me some feedback, I fixed some errors with the drag and drop code, and included apktool versions (1.2.0, 1.3.2, 1.4.0, 1.4.1, 1.4.2, 1.4.3, 1.4.5, 1.4.6, 1.4.7, 1.4.8, 1.4.9, 1.4.10, 1.5.0) you can add as many others as you like to the _bin folder, just create a separate folder with the version number and place it in there (make sure the file is named "apktool.jar" or the code won't work), if you want to set a default apktool version to use, so that you aren't prompted all the time, you can change the name of the "apktool.manual" file to (for example) "apktool.1.4.9" and from then on it will use that version instead of prompting... and you can always change it back, or change it to a newer/older version number as needed...
if this works well for you guys I will update the first post...
Code:
Beta Changelog
2.0 Initial Beta
2.1b
cleaned up some code issues (defualt file wasn't working properly)
added the newer unofficial apktool builds (1.4.5 -- 1.5.0)
here's the mediafire link: http://www.mediafire.com/?td20i8cv8lfq90l
First of all, I did not create apktool (DUH!) that credit goes to: Brut.alll what a wonderful tool. I have included version 1.3.1 because that is the version that seems to work best right now...
Note: Brut.alll, if you happen to read this and would like me to remove apktool from being included with my batch scripts, please contact me and I will happily do so.
Alright... the easyFLASHABLEzipBUILDER gave me the idea to do this... Basically it's a way to "automagically" compile/decompile (smali/baksmali via apktool) apk's and jar's for all you dev's or wannabe dev's who want an easier way about this... These are windows batch scripts and should work with anything win2k or newer.
how it works: said:
Extract to a directory, for simplicity we'll say "apktool"
Place whatever file/folder(s) you would like to compile/decompile in the root of "apktool"
The filenames are pretty self explanatory... the drag and drop options file will prompt for the options only, this way you can still have the ease of drag and drop, but only need to input the more specific options
The manual file will only ask for options and filename, if you decompile it will change the last "." before extension to a "_" so framework-res.apk would output to _out\framework-res_apk.
When you (re)build with ANY of the files if the given folder name is framework-res_apk then the output file will be framework-res_REBUILTsigned.apk
The manual and drag and drop files always preserve the extension, so if you modify the folder name before rebuilding leave the "_apk" or "_jar" alone.
I will add some error checking in later versions, but at the moment you'd probably have to be trying, to create an error, and it would only be an error with the batch, you wouldn't actually mess a file up or anything.
now outputs all files/folders to a subfolder "_out"
core files are now in "_bin" folder... batch files must be one level above this folder to work properly.
Drag and drop works from ANY folder, but always outputs to the "_out" folder.
rebuilt files are now signed with a test key, so shouldn't have any "unsigned" or "improperly signed" errors when trying to install after being rebuilt.
Click to expand...
Click to collapse
Let me know if you have any requests, or questions... happy to help in any way I can...
MEDIAFIRE [LATEST]: http://www.mediafire.com/?cablu617ijq22ac
benjamminzIS said:
Note: Brut.alll, if you happen to read this and would like me to remove apktool from being included with my batch scripts, please contact me and I will happily do so.
Click to expand...
Click to collapse
I'm always happy to see that someone uses and/or improves my tools
Brut.all said:
I'm always happy to see that someone uses and/or improves my tools
Click to expand...
Click to collapse
I know this will probably only appeal to the "newer" devs who are just getting started... but I'm a fan of less typing to accomplish the same goal, so I figured why not =)
thanks for your blessing, it's appreciated!
Linux compatable?
Daughain said:
Linux compatable?
Click to expand...
Click to collapse
not currently... but if linux supports drag and drop on scripts, I suppose I could look into porting it for linux... or if not I could just make a "manual" version for linux? (as in one that just prompts for for the options and filename and does the rest) I need to start familiarizing myself with linux anyways... so it would be a good learning experience for myself...
c'mon guys, over a hundred takers already and pretty much zero feedback! If there is anything functionality wise you looking for please let me know, I would like to be able to improve this for you guys, but if no one says anything, then I don't even know if it's working for you or not... 30seconds of your time to write a post isn't asking much =P
Great tool
2 of the 4 bat files worked great. The other 2 gave me the syntax usage be fore it said GOODBYE.
Working for me:
DRAGandDROPbuild.bat
DRAGandDROPdecompile.bat
Not working for me:
DRAGandDROPoptions.bat
APKtoolMANUAL.bat
Thank you. This would save sometime.
IamSonoma said:
Not working for me:
DRAGandDROPoptions.bat
APKtoolMANUAL.bat
Thank you. This would save sometime.
Click to expand...
Click to collapse
thanks for the feedback, I'll check it out... hopefully will have an update asap...
EDIT: main post updated, this patch is now obsolete...
nice, when i decompile a apk and change one string and then recompile it gives me application not installed (i am thinking its not signing the apk correctly)
for that matter if i dont change anything and decompile then recompile, same issue
benjamminzIS said:
can you try this out for me, and tell me if it solves your issue? if it does I will add to first post and update the main download...
Click to expand...
Click to collapse
Firmware: Froyo 2.2.1 KP5
Phone: Samsung Captivate
OS: Windows 7 and Windows XP
Code:
Batch File Tested: APKtoolMANUAL.bat
File Tested: Settings.apk
Decompile Errors: 0
Recompile Errors: 0
Folder Output: Settings_apk
Decompiled File Tested: Settings_apk\res\values\bools.xml
Edit made: <bool name="has_intrusive_led">false</bool> --> <bool name="has_intrusive_led">true</bool>
Changes took: Yes - <bool name="has_intrusive_led">true</bool>
Code:
Batch File Tested: DRAGandDROPoptions.bat
File Tested: Settings.apk
Decompile Errors: 1
Recompile Errors: N/A
Option chosen: d
Folder Output: Settings_apk.out
Result: Exception in thread "main" brut.androlib.AndrolibException: brut.directory.DirectoryException: java.io.FileNotFoundException: C:\EASYapkTO
OLcompilerDECOMPILER_patch_v1.1" C:\EASYapkTOOLcompilerDECOMPILER_patch_v1.1\C:\EASYapkTOOLcompilerDECOMPILER_patch_
v1.1\Settings_apk (The filename, directory name, or volume label syntax is incorrect)
at brut.androlib.ApkDecoder.hasSources(Unknown Source)
at brut.androlib.ApkDecoder.decode(Unknown Source)
at brut.apktool.Main.cmdDecode(Unknown Source)
at brut.apktool.Main.main(Unknown Source)
Caused by: brut.directory.DirectoryException: java.io.FileNotFoundException: C:\EASYapkTOOLcompilerDECOMPILER_patch_v1.1" C:\EASYapkTOOLcompilerDECOMPILER_patch_v1.1\C:\Downloads\EASYa
pkTOOLcompilerDECOMPILER_patch_v1.1\Settings_apk (The filename, directory name,
or volume label syntax is incorrect)
at brut.directory.ZipRODirectory.<init>(Unknown Source)
at brut.directory.ZipRODirectory.<init>(Unknown Source)
at brut.androlib.res.util.ExtFile.getDirectory(Unknown Source)
... 4 more
Caused by: java.io.FileNotFoundException: C:\EASYapkTOOLco
mpilerDECOMPILER_patch_v1.1" C:\EASYapkTOOLcompilerDECOMPI
LER_patch_v1.1\C:\EASYapkTOOLcompilerDECOMPILER_patch_v1.1
\Settings_apk (The filename, directory name, or volume label syntax is incorrect
)
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(Unknown Source)
at java.util.zip.ZipFile.<init>(Unknown Source)
... 7 more
Code:
More Testing
Batch File Tested: DRAGandDROPdecompile.bat
File Tested: Settings.apk
Decompile Errors: 0
Folder Output: Settings_apk
Decompiled File Tested: Settings_apk\res\values\bools.xml
Edit made: <bool name="has_intrusive_led">false</bool> --> <bool name="has_intrusive_led">true</bool>
Changes took: Yes - <bool name="has_intrusive_led">true</bool>
Batch File Tested: DRAGandDROPbuild.bat
File Tested: Settings.apk
Recompile Errors: 0
Folder Output: Settings_apk
Decompiled File Tested: Settings_apk\res\values\bools.xml
Edit made: <bool name="has_intrusive_led">false</bool> --> <bool name="has_intrusive_led">true</bool>
Changes took: Yes - <bool name="has_intrusive_led">true</bool>
Output File: Settings_REBUILT.apk
IamSonoma said:
Firmware: Froyo 2.2.1 KP5
Phone: Samsung Captivate
OS: Windows 7 and Windows XP
Click to expand...
Click to collapse
ok, will have to look into it... my apologies... looks like I'm handling the variables wrong...
No biggie. For the most part all is good. Plus I have been using cm7 and been busy.
Sent from my Captivate using XDA App
IamSonoma said:
No biggie. For the most part all is good. Plus I have been using cm7 and been busy.
Sent from my Captivate using XDA App
Click to expand...
Click to collapse
ok, looking at it a little closer, it looks as though you extracted the patch to a sub directory, if you ran the batch files from that subdirectory, then you will get errors as it is looking in that subdirectory for the _bin folder... try overwriting the original files, with the ones from the patch... then try again... let me know if you still get the error...
benjamminzIS said:
ok, looking at it a little closer, it looks as though you extracted the patch to a sub directory, if you ran the batch files from that subdirectory, then you will get errors as it is looking in that subdirectory for the _bin folder... try overwriting the original files, with the ones from the patch... then try again... let me know if you still get the error...
Click to expand...
Click to collapse
Ok. Thank you. Extracted the files again and moved folder to my e:\.
Working with contacts.apk it decompiled and recompiled fine. Contacts.apk did not work when I moved it to the system/app folder. I will test more later. the file was more compressed. I will recompile it later with winrar and the store command.
UPDATED!
fixed the syntax in DRAGandDROPoptions.bat and merged the fixes from the 1.1 patch...
also updated the thread name to be more proper... "compiler" instead of "builder" also updated the filename to match thread name... enjoy!
pyrator said:
nice, when i decompile a apk and change one string and then recompile it gives me application not installed (i am thinking its not signing the apk correctly)
for that matter if i dont change anything and decompile then recompile, same issue
Click to expand...
Click to collapse
I get the exact same problem no matter how I edit my apks and its confusing the hell out of me. Does anyone have any ideas on this? Happens with your tool here, and several others too.
Sent from my Nexus S
I have the same problem, and I think you are right about the signing.
I tried to resign the rebuilded file with autosign and I had the same resault. I mentioned that the file's size didn't change. I resigned again, using android commander' s sign option and at this time the file' s size incrased by 5K. The output file works without problems.
So, the problem seems to be with the apktoolj.
Thanks ill try that, it makes sense as I am trying to mod system apps such as camera and launcher2.
Thanks again! This could be what I'm looking for.
Sent from my Nexus S
strange, I thought apktool was supposed to sign as well? is it just not signing or is it improperly signing?
I am using the 1.3.1 version of apktool with this... I am using this version because 1.3.2 seems to have decompile/compile issues with many apk's...
I'm open to suggestions guys, please let me know if there is a "fix" I can implement and I will do so =)
I think i'm gonna need an exorcist. I'm trying to fix battery xml like this:
1.decompile w/ apkmanager
2.Navigate to /res/drawable and open with wordpad stat_sys_battery
3.Customize the file
4.Recompile
5.Flash.
But after flashed,i can't see battery icons in statusbar.
This is my untouched XML. I can see battery icons in statusbar.
Code:
This is my modded stat_sys_battery. With this one i can't see battery icons in statusbar.
Code:
What can it be?!?!?
Up.
Sent from my LG Optimus One P500 using Tapatalk
Did you delete the resources thing when recompiling? the only problem that I can see here is that the new battery pngs didn't get to be registered in the resources.xml(I'm not exactly sure with the name so) and so when the sys_stat_battery.xml calls for the pngs(it ask resources.xml if it was included and is part of the apk), resources.xml will reject the request and battery icon won't show up. Wasted almost a month of my life with the same problem before. Hope this helps.
There was someone(moderator) on the android theming thread who knows a lot about these stuff. Try asking there and post the results here.
So i only need to delete resources.arsc before compiling?
Sent from my LG Optimus One P500 using Tapatalk
I'm not doing any themes lately but if I remember it correctly, there's an instruction to delete resources.arsc on the temporary folder(can't remember the exact name) made by apkmanager whenever you modify an XML.
hey, im trying to get the status bar soft buttons on my phone. im not a rom developer, so i want to achieve this only by modding apks... i pulled the framework-res.apk.
some sites say that theres a "config.xml" to set the bools to make cm7 think that the phone is a tablet, but couldnt find any config.xml in that apk.
instead i, found framework-res/res/values/bools.xml
i changed these bools to true:
HTML:
<bool name="cm_default_is_tablet">true</bool>
<bool name="cm_default_has_soft_buttons">true</bool>
<bool name="cm_default_bottom_status_bar">true</bool>
i also chmoded the permissions of the apk to 644 after pushing it. also cleared dalvik cache. but i still cant see the soft button stuff in tablet tweaks...
which other apk do i need to mod?
I did the same thing but no success. Did you manage to find an answer since you posted this?
Hi
I try to decompile SecSettings by apktool and i get this:
Code:
C:\apktool>apktool d secsettings.apk SecSettings23
I: Baksmaling...
I: Loading resource table...
Exception in thread "main" brut.androlib.AndrolibException: Multiple resources:
spec=0x7f020052 drawable/avatar_default_6, config=-hdpi
at brut.androlib.res.data.ResConfig.addResource(ResConfig.java:65)
at brut.androlib.res.data.ResConfig.addResource(ResConfig.java:58)
at brut.androlib.res.decoder.ARSCDecoder.readEntry(ARSCDecoder.java:196)
at brut.androlib.res.decoder.ARSCDecoder.readConfig(ARSCDecoder.java:165
)
at brut.androlib.res.decoder.ARSCDecoder.readType(ARSCDecoder.java:130)
at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:10
5)
at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:82)
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:48)
at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibRes
ources.java:315)
at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.jav
a:50)
at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.jav
a:43)
at brut.androlib.Androlib.getResTable(Androlib.java:44)
at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:148)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:98)
at brut.apktool.Main.cmdDecode(Main.java:128)
at brut.apktool.Main.main(Main.java:65)
What to do ??
Thanks
Please any help?
Same issue here
osherdadon said:
Please any help?
Click to expand...
Click to collapse
Using a Note 3 from T-Mobile, I pulled the file with the adb command, with root explorer, and extracted it from the stock ROM file all giving me the same error. For some reason I also don't get any smali files out of my SystemUI.apk which has been driving me crazy. I can't seem to find any working answers yet... Fail...
Basically bumping this thread a half a year later...
SOMEONE HELP US
You have the relevant frameworks installed and java in your path?
Learned a lot in 24 hours
DSA said:
You have the relevant frameworks installed and java in your path?
Click to expand...
Click to collapse
Summary/Lessons Learned in the last 24 hours:
I must have been too tired, went to sleep got up again and went at it. I realized a few things, main thing was deodexing, I learned all about that. Converting the .odex file to a class.dex file inside the SystemUI.apk and SecSettings.apk so decompiling would work properly (I was originally missing the smali folder without deodexing my app). Second I needed to pull all the framework files from my device instead of just the two I had, then I used "apktool if framework-res.apk" then "apktool if twframework-res.apk" then "apktool d SystemUI.apk" then "apktool d SecSettings.apk". This time it actually worked, I proceeded to try and re-compile them just to test. The SystemUI.apk worked flawlessly but the the SecSettings.apk had errors then I realized I needed to copy the AndroidManifest.xml and resources.arsc from the original app to the decompiled folder and the SecSettings.apk compiled with no issues. I had to get the original file out of the stock ROM, it had gotten damaged somehow with zipping/raring/7zipping so quicktip no one should be zipping the files you're about to work on get it fresh from the ROM.
Current Issue:
Now that all that's done I'm onto what I was trying to get at when I started this whole project. I need to modify both of these apps which are now perfectly deodexed and on my stock device. Every time I try to modify these files I lose my status bar and my settings stop working, I'm obviously breaking it, this is the XDA guide I was following.
Any help or redirection on where to post would be greatly appreciated, thanks
Easiest thing - put your mod back in and get the status bar to disappear/fc whatever
Then, pull a log (catalog from appstore works fine)
Post that log at pastebin and link it here
We won't be able to solve your issue without knowing what it is, in the first place
Like this?
This was before I restarted: Log 1
Then I recorded for a little after I restarted probably pointless but that's where the error would have been: Log 2
DSA said:
Easiest thing - put your mod back in and get the status bar to disappear/fc whatever
Then, pull a log (catalog from appstore works fine)
Post that log at pastebin and link it here
We won't be able to solve your issue without knowing what it is, in the first place
Click to expand...
Click to collapse
Not sure exactly how to record it and send it to you, I pressed record but when the phone finished rebooting CatLog was closed so I reopened it and it keeps scrolling endlessly.
Research progressed a little
I came across a post here in the Flashlight Mod development thread which made me realize I'm not getting the ID's correct. They suggest compiling the modded SystemUI.apk to get the ID's into the apk file under the /res/values/public.xml file, then decompiling it to read the ID values. I'm missing a step or doing something wrong, I can't replicate it to find the ID values I need so I can add them to the .smali file and recompile a final time. I'm sure this is the only reason for the missing status bar and the force closes. I guess I need help understanding, a different set of instructions or just more detailed?
I can't post in that thread yet so I'm getting my posts up over here, I already posted in the Q&A thread but no one has responded yet, any help is greatly appreciated!
I get this when decompiling the modded apk: Modded SystemUI ApkTool Decompile
All these errors look like the file is broken now or something, I'm just lost at this point. I tried ApkTool 1.5.2 and 2.0 as well.
EDIT:
Additional info below for troubleshooting purposes since it seems my issue recompiling at the end to get the values for my public.xml
STEPS:
1. deodex (universal deodexer v5)
2. decompile (apktool 1.5.2 & 2.0 separate tests)
3. modify (add flashlight .png's and .smali file from 4.4kk flashlight mod files)
4. recompile (apktool)
5. decompile (apktool)
=
Errors <<<<< These errors solved in edit below
EDIT:
I forgot to use "apktool if SystemUI.apk" when loading "framework-res.apk" & "twframework-res.apk" now I get through decompiling and recompiling like I thought I should be and I even located the values int he public.xml, replaced them in the .smali and everything went peachy. Only problem is I never get the status bar after I reboot, not really getting any FC's but the status bar, if my goal were to get it to be invisible I would be so happy omg lol If you're curious I've also tested by signing and even another test with zipalign, nothing zip/zero/zilch...
EDIT... Again I know still no sleep, durp durp:
So my main issue was not using apktool v1.5.2 to decompile and v2.0 to compile EVERY SINGLE TIME, NO EXCEPTIONS. When I followed that simple rule I get it onto my device and she has no status bar... Hmmmmm..... And a logcat for anyone smart enough to help me
EDIT:
Maybe I'm in the right direction with an error I saw in the log at this post? I thought it was so I installed the DisableSignatureVerification Mod from the Xposed Modules and still nothing.
Calling All Developers
It's been like 2 weeks just curious if anyone has even looked at this, I haven't been able to make any progress so I started learning how to develop apps. I made two small apps basic flashlight and a counter app but I really want to know why I'm totally unable to mod a file on my phone. I can't get the ink effect to work with finger input either I've been really trying to get this flashlight mod and the ink effect for months. If I could get pointed in the direction of a developer that can actually help me I don't see why I couldn't donate like $10 or $20 to the one who helps me. I'm on android 4.4.2 (NK3) on my Note 3 from T-Mobile.