Hi,
Before, I used to able to decompile and recompile AsusSettings and framework-res.apk without any problem, I even added my modifications to it. But then, on another day, I recompiled some other Settings and framwork-res and they corrupted and didn't work anymore (I decompile then recompile immediately, and didn't add any modification to it). Root Explorer (after recompiling) still works fine. I tried to install an other version of java, use different versions of Windows, but it didn't help me. I'm sure that I installed framework before I decompiling the apk, and I chmod 644 after copy the apk to it place, and my rom is deodexed.
What is the solution? Thanks in advance.
Edit: All the "recompile" steps i mentioned above is "Recompile, sign and zipalign"
Sorry for my English and expression.
Related
Hi there,
I am trying to learn all this theming and have started with the basics, the notification bar icons in framework-res.apk.
I can pull it from the phone, I can decompile it but I am having a challenge putting it all back together as I changed the number of images in a specific animation and then edited the XML file regarding that, but I think there must be other references to the files as now there are less files and the error log is saying it can't find the ones I removed (both the png's and the references in the one xml file) when trying to recompile.
Is there a master XML listing all the files expected or something.
many thanks in advance
David P
Let me guess you are using apktool?
What you need to do is take a clean version of the apk you want to edit. For arguments sake let's say you are editing framework-res.apk.
Decompile using apktool and make your edits to .xml files ONLY. Once done recompile using,
apktool b -f [foldername] framework-res.apk
Now this recompiled apk will probably not work. However the xml files will be properly recompiled. So now you extract the edited .xml files, add them to a clean unedited framework-res.apk (not a de and re copmpiled one) without extracting the .apk. Just add and replace the files using WinRar or whatever.
Also add your edited images to necessary folder in the clean .apk too. So the end result is a clean framework-res.apk that you have updated with your edited .xml files and edited images. This apk should function just fine!!
Sorry if this is a big mess but it makes sense to me and it works for me.
Thanks for the suggestion. I am not quite sure what I am using, I have tried ThemePro for windows and APKManager, both of which are just scripted batch files so I would need to check what they use to extract or decompile with.
So Basically, I decompile, edit the xml (while textual) then recompile so the XML's are binary again. Then pull the BINARY XML#'s from the APK and use those with all the appropriate files and folders which I then create a new clean APK from by zipping it and renaming to .apk, correct?
David P
ephumuris said:
Let me guess you are using apktool?
What you need to do is take a clean version of the apk you want to edit. For arguments sake let's say you are editing framework-res.apk.
Decompile using apktool and make your edits to .xml files ONLY. Once done recompile using,
apktool b -f [foldername] framework-res.apk
Now this recompiled apk will probably not work. However the xml files will be properly recompiled. So now you extract the edited .xml files, add them to a clean unedited framework-res.apk (not a de and re copmpiled one) without extracting the .apk. Just add and replace the files using WinRar or whatever.
Also add your edited images to necessary folder in the clean .apk too. So the end result is a clean framework-res.apk that you have updated with your edited .xml files and edited images. This apk should function just fine!!
Sorry if this is a big mess but it makes sense to me and it works for me.
Click to expand...
Click to collapse
A lot of thanks!!! I'm looking for an explanation like this, all that I try give me an unusable framework-res.apk and now I know why.
ephumuris said:
Now this recompiled apk will probably not work.
Click to expand...
Click to collapse
Apktool creates "clean" apks as you name them. There is almost no difference between application built from sources or using apktool. And almost no logical difference between original apk and rebuilt one (for most apps, of course apktool doesn't support some of them).
If you are talking about system apps, then your problems are most probably related to incorrect way of installing resulting apk, not to it's structure. You can't reinstall system app easily and one of workarounds is to copy AndroidManifest.xml and META-INF from original file and push it to a device. Actually you did this using your method and I think this is the reason, why you think there is something wrong with apks built by apktool.
So as I'm trying to figure out what's causing some bugs in the SEs music player I installed apktool to break the apk into readable java and text files.Since this is a system app i need the framework to decode it,and I pulled framework-res.apk from my system/framework directory and installed it in apktool,but it doesnt seem to apply to this app...Does anyone a file I can use?
The apps name is SemcMusic.apk
You could open the .apk in a .rar file . Its a pretty basic way though Idk if youll be able to access the file parts you need.
I guess it does work,but I just realized I have to find a peace of code in 20 folders and i have no knowledge of java...
Edit: It probably wont work that way since apktool translates binary xml to normal readable xml
Not sure if this is the right spot or should actually go in development or here since I got lectured for putting it in development the last time.
But what I am trying to do is decompile the framework file from the stock rom and change a xml and recompile so as to bypass the tetheringprovison call.
The last time I did this on the HTC One S I ran into the trouble that the recompiled verision didn't work and ended up just opening the recompiled apk as a zip pulling the xml and replacing it in the original apk and load that.
That seemed to do the trick on that phone.
I think the problem is with compression as the output apk I get after recompiling is never even close to the original size.
I am having the same issue when it comes to the file for the gs3.
So far I haven't tested a recompiled one yet since I haven't rooted yet but just working on the file.
That is a job for a little later on my days off where I don't need my phone.
But with this one the file I am looking for once it is decompiled shows in res/values/arrays.xml for this one. How ever if I open either the source file or the recompiled when I don't see those values folders anywhere inside.
I am not sure if they are just hidden in something else or where the other files are.
I am using the newest verision of apk multi tool to recompiling and decompiling with compression values tested at 1 and 0.
both the framework-res.apk and twframework files are loaded into it as well as dependencies.
Any ideas on the best way of changing out this one file?
Or if anyone can recompile one with the following arrays.xml file instead that I have attached.
When it is decompiled it does show the right folder string "\res\values" and the array.xml inside I have just made a change to the xml that would not check the tethering provision on the device to allow the built in tether to work again. and a recompiled verision with that file will bypass any tethering check
any help would be greatly appreciated.
*edited* to include the arrays xml
Anything found in the "values" directory are not going to be visible inside the apk they are files used to build the actual apk that tells the other XML and other files where things are. Compression won't break an apk. What exact file are you editing? Also you are going to have to root if you want to put the modded file back on the device..
Sent from my SGH-T999 using Tapatalk 2
Yeah will be rooton on day off so i dont have to worry about it too much.
But with the arrays file that has a call in it to consult a different program before starting tethering.
I have changed that file so it dont check anymore.
This worked on it before with it just unlocked and a different apn update came and dont work anymore.
I am just confused that why it recompiled before for the one and wouldnt work right.
Based on what i read should be no problem as long as both frameworks are installed to the apk multitool
M9x3mos said:
Yeah will be rooton on day off so i dont have to worry about it too much.
But with the arrays file that has a call in it to consult a different program before starting tethering.
I have changed that file so it dont check anymore.
This worked on it before with it just unlocked and a different apn update came and dont work anymore.
I am just confused that why it recompiled before for the one and wouldnt work right.
Based on what i read should be no problem as long as both frameworks are installed to the apk multitool
Click to expand...
Click to collapse
I decompile framework-res.apk all the time with no issues. What is the exact issue you're having?
Sent from my SGH-T999 using Tapatalk 2
Just that when I decompile the framework-res.apk replace one xml file and recompile it using the multitool (am using the system apk with dependancies and linking the twframework) and then try and load it on the phone it seems to cause it to crash.
M9x3mos said:
Just that when I decompile the framework-res.apk replace one xml file and recompile it using the multitool (am using the system apk with dependancies and linking the twframework) and then try and load it on the phone it seems to cause it to crash.
Click to expand...
Click to collapse
You cannot replace XML files with other XML files. You have to open the XML in notepad++ and edit the actual lines of code then recompile. And I thought you weren't rooted so how are you able to push the app back to the device? Also, are you setting correct permissions for the newly compiled apk?
Sent from my SGH-T999 using Tapatalk 2
Yeah sorry for the late reply.
I am still tinkering with it. I wanted to root just till I had a day off that it wouldn't kill me to have the phone down for a little.
I will be rooting it in the next day or two since I am off.
After recompiling the APK and pulling the XML out of that one and putting in the original was the only way I could get the change to take on the One S.
When I was testing then, and will try the same procedure with the GS3, is after recompiling it with the tool I would put on sd card then using twrp copy to the phone and chmod 644
Out of curiosity what would be the DD command for backing up the recovery to the sd card?
I am having trouble finding that.
I would like to have that to flash back on the phone as I am planning to try this again from within twrp and see what happens.
From my understanding for triangle away to work you need to be on stock recovery right?
Ok
Now I have a new problem I have stumbled upon.
I have modded the file but when I try and push it with ADB from the pc even after system mounted it tells me that permission is denied.
Any ideas why that is happening?
Tried copying over with root explorer and that froze during copy and then resulted I'm a boot loop.
Not sure if that was because of the method or a problem with the file I made.
When decompiling does that need to be done with the twframework dependence or just simple decompile?
Also then after switching the arrays.xml I can just recompile with no compression or do I have to do something with keeping files.
Since the arrays is in something else I'm not sure what it shouldn't keep.
Any ideas would be greatly appreciated.
And I can't find if should either be zipaligned or signed. Some articles say signed some say don't sign system apks
Holy crap... youre allllllllllll over the place one bite at a time.. Quick answers first:
You do not need to backup your recovery. It is flashable via Odin and is much safer to flash via odin then it is using DD. With DD, you could flash the wrong partition by a simple slip of a keystroke. IE you typed '9' instead of '0'
Secondly: You got that 'freeze' issue using Root Explorer because framework-res.apk is constantly in use by the system. The BEST way to apply any system file is by creating a flashable zip file then applying it through recovery.
Thirdly: You do NOT need stock recovery to use Triangle Away, ive used it twice now with CWM as my recovery.
About your issues with decompiling recompiling.. I dont think its necessary to install the twframework... i dont recall if i had to when i was on Frosty, but doing "java -jar apktool.jar if <twframework here>" wouldnt hurt.
Also what exactly are you trying to modify?
Yeah Sorry about that
was just as I was reading other things and playing with it I kept coming across other questions.
Was thinking about that with the recovery so I am just going to skip doing that and flash a custom one then.
Was trying to do it without switching to avoid tripping the counter but seems like that is un neesicary
I am looking to stay on the stock software of the phone but want to edit the arrays file out of the framework so it don't check for tethering provisions.
Previously I was able to tether just by changing the APNs on the device now I can't do that. Says I don't have a tmo tathering plan. But also not with T-Mobile so that is problematic.
M9x3mos said:
Yeah Sorry about that
was just as I was reading other things and playing with it I kept coming across other questions.
Was thinking about that with the recovery so I am just going to skip doing that and flash a custom one then.
Was trying to do it without switching to avoid tripping the counter but seems like that is un neesicary
I am looking to stay on the stock software of the phone but want to edit the arrays file out of the framework so it don't check for tethering provisions.
Previously I was able to tether just by changing the APNs on the device now I can't do that. Says I don't have a tmo tathering plan. But also not with T-Mobile so that is problematic.
Click to expand...
Click to collapse
Quick question, are you running Stock Jellybean? And who is your carrier? There was a hacked apk that enabled tethering.. not sure what its called. just read about it. Never tried/downloaded it.
i got this to work last night for frosty 11.2.1, AllenD87 over at the att forums helped me get it right.
I have the stock jellybean on tmo device and use with simple mobile service
Just checked out the other one hack/mod that was looking like the same kind of mod where made changes to the framework and put it back.
different firmware so I don't that I should try that on mine.
i just decompiled framework-res.apk made the changes and recompiled. put it in the rom and flashed the whole rom.
Trying to keep the absolute stock rom.
I just installed twrp since it has file manager so I don't need to make a flashable zip but just copy over and chmod 0644
first attempt gave me a boot hang so I am going to try compiling with a different tool
Ok found out the problem was the multi tool inwas using
Used the beta instead and everything worked ok
Someday I found this:
[HOWTO]Implement Swipe to Remove Notification
I like this function but my phone can't update to 4.1.2 (I8160-TGY don't have JellyBean Firmware...)
So I tried to modify it.
But deodex the whole ROM is a hard work.
So I found this:
[Toturial][Windows] How Editing The ODEX framework files? [Simplified]
I tried to decompile framework.odex ,and compile without modifications ,then my phone can boot normally.
So I'm sure this method is possible.
========================
So now I know how to decompile and compile.
And I find many thread about this but I still have no idea...
Even if I can compile it after modify, I still got bootloop.
Here is my deodexed framework.jar and SystemUI.apk:
https://www.dropbox.com/s/vj5u68g4qfo7zwp/Desktop.rar
Can any devs help me to modify it?
THANKS A LOT!!!
changes umanalm
I found that if I compile and decompile again, some string become different.
So now I don't know how to decompile correctly........
I use baksmali1.4.2 and decompile via command line:
java -jar baksmali-1.4.2.jar -a 10 -x framework.odex
When you compile apk your output is not signed. that is reason why you cant boot
here is what to do
1. Open output apk with 7-zip
2. Open original apk with 7-zip
3. Take meta-inf folder from original and drag to new apk
4. You will have signed apk and you can push it to your device
hope this will help you
btw. for decompiling i use
apktool d path\original.apk path\outputfolder
for compiling
apktool b path\outputfolder path\output.apk
Rox said:
When you compile apk your output is not signed. that is reason why you cant boot
here is what to do
1. Open output apk with 7-zip
2. Open original apk with 7-zip
3. Take meta-inf folder from original and drag to new apk
4. You will have signed apk and you can push it to your device
hope this will help you
btw. for decompiling i use
apktool d path\original.apk path\outputfolder
for compiling
apktool b path\outputfolder path\output.apk
Click to expand...
Click to collapse
I know that.
Because my phone haven't DEODEX, so I Just put classes.dex into framework.jar and odex it.
So it's not my question, but thank you for reply.
Why dont you just deodex rom using android kitchen and do your mods?
Sent from my GT-I8160
Rox said:
Why dont you just deodex rom using android kitchen and do your mods?
Sent from my GT-I8160
Click to expand...
Click to collapse
I tried.
But I can't boot after I deodex my rom.
I use system.tar.md5 to make CWM Flashable ROM.
These is my method: (Android Kitchen version is 0.223, I already download 0.224 but I never use it....)
1.Choose 1 to decompress system.tar.md5 and make Work Folder.
2.Then choose 0 to Advanced option, and choose 11 to de-odex the whole ROM.
3.Repack a CWM Flashabe ROM.
4.Format all partition and flash it.
5.Reboot, and the screen stay in "SAMSUNG GT-I8160".
Is there any wrong? or I have to use Android Kitchen 0.224?
You probably make some mistake.
Can you post updater script to see if problem is there.
Btw. You can try copying system folder to sd card from root directory and than use it as working folder for kitchen
Edit:
Oh, you formatted all partitions? You dont need to format them you possibly lost some device specific files required for boot. Try without formatting
Sent from my GT-I8160
Rox said:
You probably make some mistake.
Can you post updater script to see if problem is there.
Btw. You can try copying system folder to sd card from root directory and than use it as working folder for kitchen
Edit:
Oh, you formatted all partitions? You dont need to format them you possibly lost some device specific files required for boot. Try without formatting
Sent from my GT-I8160
Click to expand...
Click to collapse
Thanks!
This time I make a deodexed ROM via kitchen 0.224, And flash it without formatting.
It still can't boot, and when I enter to CWM, it can't mount any partition.
So I reflash stock ROM via Odin v3.07....
Oh, few days ago I tried to make a CWM flashable zip with only de-odexed /system/app and /system/framework.
It also can't boot.......
I just want to modify some strings in LGHome.apk
I use apk-multi-tool to decompile and recompile it, and it seems successfully
Then I extract resource.arsc from the unsignedLGHome.apk and add it the original LGHome.apk
After that, I copy the new LGHome.apk to /system/priv-app and set the permission,
then I reboot the phone, but the home app FC and I cannot access the home screen.
I have another try that I did not modify anything, just decompile and recompile it, and replace the resource.arsc
But it still failed.
I have use this approach to modify many apk, such as LGSettings.apk.
I do not know why it cannot be applied to LGHome.apk. Is there anything special for this apk?
Thank you very much.
bfdream said:
I just want to modify some strings in LGHome.apk
I use apk-multi-tool to decompile and recompile it, and it seems successfully
Then I extract resource.arsc from the unsignedLGHome.apk and add it the original LGHome.apk
After that, I copy the new LGHome.apk to /system/priv-app and set the permission,
then I reboot the phone, but the home app FC and I cannot access the home screen.
I have another try that I did not modify anything, just decompile and recompile it, and replace the resource.arsc
But it still failed.
I have use this approach to modify many apk, such as LGSettings.apk.
I do not know why it cannot be applied to LGHome.apk. Is there anything special for this apk?
Thank you very much.
Click to expand...
Click to collapse
What do the logs say about the reason for the FC?