Thought id share this since it can be quite a hassle to find everything needed if you wanna translate stuff yourself or edit something for personal needs.
This was done on miui stable 8.1.3.0 from xiami.eu on a mi5 but should work on other miui versions and roms (with slight modification)
Download Bursoft apktool (http://bursoft-portable.blogspot.se/p/blog-page_23.html) and unzip to C:\BatchApkTool
Make sure you have java installed (www.java.com)
You will also need root
Fetch the following files/folders from your phone and copy them to C:\BatchApkTool\_framework
system/framework/framework-res.apk
system/framework/framework-ext-res/
system/app/miui/
system/app/miuisystem/
system/priv-app/miuisystemUI/
Place the apk you wanna modify in C:\BatchApkTool\_INPUT_APK\
Execute BatchApkTool.exe in c:\BatchApkTool\
Press 1 to decompile
Go to your C:\BatchApkTool\_INPUT_APK\ folder and if everything worked alright then open the newly created folder from the apk file you just decompiled and make whatever change you wanna do. If you wanna translate, then open the \res\ folder and make a new folder called values-sv (if you wanna add swedish language for example) then you can either copy strings.xml from another language folder and edit them or grab xml from a partially (or fully but not 100% voted) translated source like crowdin or github
Do not use caps or anything other wierd stuff or it wont compile afterwards
You can now return to batchapktool and press 3 to recompile and hopefully no errors, otherwise check log to determine possible cause.
Do not sign the apk!
Now open the recently modified compiled apk with winrar (your w/e zip program you prefer) and grab resources.arsc out of there. Now open a copy of the original apk and paste the resources.arsc into it (replacing the existing resources.arsc).
Plug in the phone to the computer and copy the apk to the internal memory
Open your favourite root browser (using romtoolbox filemanager myself) and go to the location of the original apk and rename it (or make a backup incase any error occurs), now copy the modified apk you copied earlier into the folder of the apk you wanna replace, e.g system/app/ or system/priv-app/
Kill/close app (incase it was started earlier) and restart it and see if the changes are live!
Edit: After you replaced the files, then you need to chmod those aswell to 0644 and possibly clear cache in twrp
Might have forgotten something but just ask and ill try to help
Related
EDIT: Figured it out.
Care to share?
Yeah, will be nice if you could share this information with others
aitorTheRed said:
Yeah, will be nice if you could share this information with others
Click to expand...
Click to collapse
Man, I hate it when people do that...
1. Search for APK Manager in XDA and install it on your PC
2. Download and Install the Android SDK kit on your PC
3. Follow the instructions for APK Manager and place the APK file in the modding folder
4. Open APK Manager and select Decompile APK (Your APK file will be placed in a separate folder for you to work on)
5. Change what you want to change in the APK
6. Recompile the APK and sign it (unless it's a system file like framework, those are not signed)
A lot more is involved in modding an APK file and you really should know something about how the files inside the APK work before you go changing things, but in a nutshell, that's the basics.
Hope that helps!
What I have learned.
I had a specific question, but here is what I can tell you.
1. Setup APK Manager, it saves a lot of command line typing.
2. Pretty much always use option 9 and 11, never 1 or 3.
3. If you are simply changing graphics and not smali or XML files, don't use this, open it in 7zip and drag the files. Decompiling changes the image darkness sometimes.
4. Unless you are working on your own apk file, always say yes to 'is it a system apk', when it asks you to keep existing files, say yes. Delete from the 'keep' folder what you edited.
5. If you edit XLM files, delete resources.arsc from the file, this is where they all get compiled to.
6. You can use this for jar files, just rename to apk then back to jar when finished.
7. If you get an error try using option 20 to increase the memory to 1024.
8. If you edit jar files, delete classes.dex in the 'keep' folder when compiling.
9. Treat all files as signed system files (as noted above) and you will be much safer. If the file has a signature on it, this will save it.
Thanks for the info
Is there anything that can install system files. They won't install with ap manager so does it have to be pushed?
Sent from my Desire HD using XDA Premium App
I got this figured out already, sorry about that.
Who ever thanked me, I wasn't posting a guide but a question.
I am trying from a fresh firmware base to learn from scratch but no idea how to get that framework to compile correctly.
did you install framework first?
Code:
apktool if framework-res.apk
Easy
I had problems with the apk tool and recompiling. The way I ended up doing it is:
I didnt decompile the framework-res.apk.
rename the file framework-res.apk.zip
open it with 7zip.
Extract the files you are wanting to work on
Do what ever work on the files you need done
Drag and drop the files back in the directories they go into while file is open in 7zip
Close 7zip
Rename file back to framework-res.apk
push to phone with adb
No decompile or recompile.
Hope this helps
Chadw1985 said:
I had problems with the apk tool and recompiling. The way I ended up doing it is:
I didnt decompile the framework-res.apk.
rename the file framework-res.apk.zip
open it with 7zip.
Extract the files you are wanting to work on
Do what ever work on the files you need done
Drag and drop the files back in the directories they go into while file is open in 7zip
Close 7zip
Rename file back to framework-res.apk
push to phone with adb
No decompile or recompile.
Hope this helps
Click to expand...
Click to collapse
If you just want to modify one of the 'normal' XML files or an image then that approach will work fine. The problem is he wants to edit the bool.xml file and that is contained in the 'resources.asrc' file and you need to decompile it first.
I am in the same situation although someone managed to edit the file for me and recompile it so I got there in the end, just not by doing it myself.
I followed the instructions you describe and the file never recompiled properly - or at least my device never booted with the one I recompiled
Try it like this:
1. Place APK in "place-apk-here-for-modding"
2. Choose "9" to Decompile
3. Grab resource "resources.arsc" from framework-res.apk
4. Do my edit in projects\framework-res.apk\res\values\bools.xml
5. Compile - Yes (system app) - Yes (copy files)
6. Go to "keep" folder and delete "resources.arsc" and the bools.xml file
7. Press any key
8. Either push by ADB or Root Explorer or Flash
nickiberli said:
Try it like this:
1. Place APK in "place-apk-here-for-modding"
2. Choose "9" to Decompile
3. Grab resource "resources.arsc" from framework-res.apk
4. Do my edit in projects\framework-res.apk\res\values\bools.xml
5. Compile - Yes (system app) - Yes (copy files)
6. Go to "keep" folder and delete "resources.arsc" and the bools.xml file
7. Press any key
8. Either push by ADB or Root Explorer or Flash
Click to expand...
Click to collapse
I have tried exactly like this and it didn't work for me. I downloaded lots of different APK tools and tried them all - there were comments about using older versions of apktool.jar etc. I kept getting different sizes of the output file depending on which one I used. I gave up in the end as someone edited the file for me and it was only one specific entry in bool.xmls I wanted changing. As far I could tell we were both doing exactly the same thing.
The last thing I said I was going to do was wipe the PC I was attempting to do this on. I never got round to doing it... I'd be interested to know why I could never get this working though
Andy
Give me the framework and tell me what u want to do.
I will do that for u
Btw is the framework ICS based?
Sent from my Micromax_A70 using Tapatalk 2 Beta-4
You have resigned?
Greets!
I dont know how to sign framework-res.apk
who will teach me?
What are you trying to do exactly? Why do you need to sign it? Have you decompiled it? Recompiled? Some more info may help you get more/better answers.
If you have decompiled it and made some changes to it, then recompiled it and now have an unsigned-framework-res.apk then what I usually do it use 7zip (WITHOUT UNZIPPING the .apk file and ONLY OPEN ARCHIVE)and remove the AndroidManifest.XML and meta-inf folder. Next use 7Zip to unzip the ORIGINAL framework-res.apk, then select the AndroidManifest.XML and meta-inf folder and DRAG it into the unsigned-framework-res.apk that you also have OPENED ARCHIVE, hit OK to add it on the popup. Now I then usually copy the unsigned-framework-res.apk to my phone, use root explorer to rename it framework-res.apk (so remove the "unsigned" part of the name). Then I use root explorer and copy it into /system, long press on the framework-res.apk and choose permissions, then set the permissions correctly , then long press again and select move, navigate to /system/framework and hit paste. Then reboot phone.
IF you have a issue where it doesn't boot up correctly then there is something g wrong with your framework-res.apk and you will HAVE TO go back to recovery and reinstall your ROM to fix it (or restore a nandroid backup). This last part is just FYI in case you have an issue.
Hope this helps. If it is not what you have done or trying g to do then give some more details as to what your trying to do and why.
Sent from My SGH-I777 Running Spiderman Themed AOKP or Spiderman Themed CM10
Hi
I'm trying to move my security software apk file to the /system/app folder to make it hard reset proof. I renamed the original apk which is in the /data/app folder. I then copied the file to the /system/app folder and renamed it to the original filename. I then installed the apk, chose replace. What happend was that the app created another apk in the /data/app folder this time with a "2" behind it.
I'm guessing the apk has code in it that tells it to install there. So what I was wondering, can I set a specific default install directory, install the apk and then return it to default?
or
Where do the file go after the apk is ran, the program isn't ran by the apk because when you try and run it, it just asks to install it, not open the program. Could I move the actual app files and edit the install path in where the os stores the list of installed apps and there paths (where ever that is?)?.
Hi,
So the situations is like this:
Just got a new LG Nexus 4, NFC enabled, GREAT!!!!
But then I start using it, and the NFC sound (everytime the phone reads a nfc-tag it makes an sound) annoys me beyond belief.
So I start looking around, it seems there's no solution, except recompiling the app.
So I learn how to compile an app (noob here), using this guide: http://forum.xda-developers.com/showthread.php?t=1860115
I'm up to the point where my apk is decompiled, and I have modified the sound files, located in my decompiled files folder respectively at res/raw/start.ogg & res/raw/end.ogg.
I modded the files using audacity, lowering the volume to zero, used them to replace the original .ogg files. The file size is a bit smaller as the original ones (1Kb difference).
Next I use the recompile command: apktool b decompiled_apk_folder_with_modified_files modded_apk_file.apk
So now I have the new nfc apk file, called NfcNci.apk, with which I replace the original file in /system/app.
Next up I reboot my phone into recovery, wipe all cache and dalvik cache, and reboot again.
First thing that pops up on my screen is a force-close message, saying that the nfc-service force closed.
Anyone who can tell me what I did wrong? Or how I can fix this?
Attached are: my decompiled-files-folder (compressed to zip)
the original NfcNci.apk file
my modded NfcNci.apk file which causes the FC's.
Any help will be greatly appreciated!!!!
S.
Looks like you're still on 4.2
The latest NfcNci.apk has some more files.
And your apk is missing the META-INF folder.
I guess that this is the problem.
But you should use "adb logcat" to ensure we're on the right track.
Micky
1 thing i would recomend is not using the actual apk you just built. instead, open your new apk with a file manager such as 7zip and remove your newly compiled files out of it, then put them into the original apk from your rom using 7zip as well! thus keeping the apk's original signature
try to copy the least amount of files from one to another, so to be safe only pull out your new .ogg files, then put them into your original apk! hope this helps
ldrifta said:
1 thing i would recomend is not using the actual apk you just built. instead, open your new apk with a file manager such as 7zip and remove your newly compiled files out of it, then put them into the original apk from your rom using 7zip as well! thus keeping the apk's original signature
try to copy the least amount of files from one to another, so to be safe only pull out your new .ogg files, then put them into your original apk! hope this helps
Click to expand...
Click to collapse
Hi, I tried this, installed 7zip, and double clicked the original apk, I opende the res/raw/ directory, and only copied the files I was using: start.ogg & end.ogg. Then I close 7zip, and send the file to my phone. But as soon as I it them to /system/apps on my phone, and reboot to recovery, wiping the dalvik cache. I get FC's on reboot (NFC-service has FC'd).
Any reasons for this?
Thanks for the help, both of you!
BTW: I'm on Android 4.3 JB