Refrencing changes from this thread I'm trying to change some stuff in the current framework-res.apk of this firmeware's framework-res.apk.
From what I've read, APKs only need to be signed if they're being installed, and using APK Manager, there's an option for System APK and Regular APK.
I decompile it with Option 1. Replace his ****ty icons with the default stock icons and then use option 7 with suboption 1. Push the APK to system/framework and overwrite the current one and then reboot. When I reboot I get a bunch of FCs and I have to do a clockwork recovery to get it working again.
When I open the original framework-res.apk with WinRAR, it says "signed with SignApk" in the note field. Does 2.2 require framework-res.apk to be signed? I can't get it to stop FCing on my recompiled framework-res.apk.
First of all, to get rid of all doubts, make sure the compression level is close to 0 (0 works for sure)
Then all you have to do is extract (1), modify files in 'projects', zip (3) unsigned (1). That's it
If its a custom ROM - most likely you can tweak the files and shouldn't have any FC issues.
BUT... you I would recommend finding the icons you want to change.... and then copy them directly into the res/drawable-hdpl folder with WinRar open and have it overwrite the existing ones. I've done this a few times to change batt mods and other items with little risk.
And... if your tweaking *.xml files? This could be your issue as well.
No. All I did was replace the connection icons with the stock ones from the 2.1 framework-res.apk in WinRAR. I use the "store" mode when I replace them, assuming that's the 0 compression method. Should I use Normal?
Bump. ▄
Hello,
little background. i know my way around ROM installation (changing Kernels,modems, installing themes etc.) and read about how to use apk manager.
one of the things i still can't figure out, and seems to me like the next step is modifiyng themes.
i am currently using Perception 10.2, with stock theme. i really like the paragon basic theme + few more icons and items from phoneix and other themes.
i wend ahead and decompiled framework-res.apk from all the themes, and tried to copy over the images from the paragon drawable-hdpi folder to the same folder in Perception.
importent note, i know that there might be an issue with editing a .9.png file, but i assumed copying over a file that works in another rom is acceptable.
hope some of you are still with me.. here is the catch... tried to Compile the apk... and errors...
here is a parital log:
--------
|Sat 01/22/2011 -- 17:23:37.28|
--------------------------------------------------------------------------
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)
'adb' is not recognized as an internal or external command,
operable program or batch file.
W: Could not find sources
I: Checking whether resources has changed...
I: Building resources...
libpng error: Read Error
ERROR: Failure processing PNG image Z:\F\kombinator work\android hack and hebrew\Developer\Tools\apk_manager_4.9\other\..\projects\framework-res.apk\res\drawable-hdpi\btn_zoom_down_disabled.9.png
libpng error: Read Error
ERROR: Failure processing PNG image Z:\F\kombinator work\android hack and hebrew\Developer\Tools\apk_manager_4.9\other\..\projects\framework-res.apk\res\drawable-hdpi\btn_zoom_down_disabled_focused.9.png
libpng error: Read Error
ERROR: Failure processing PNG image Z:\F\kombinator work\android hack and hebrew\Developer\Tools\apk_manager_4.9\other\..\projects\framework-res.apk\res\drawable-hdpi\btn_zoom_down_normal.9.png
libpng error: Read Error
ERROR: Failure processing PNG image Z:\F\kombinator work\android hack and hebrew\Developer\Tools\apk_manager_4.9\other\..\projects\framework-res.apk\res\drawable-hdpi\btn_zoom_down_pressed.9.png
libpng error: Read Error
ERROR: Failure processing PNG image Z:\F\kombinator work\android hack and hebrew\Developer\Tools\apk_manager_4.9\other\..\projects\framework-res.apk\res\drawable-hdpi\btn_zoom_down_selected.9.png
libpng error: Read Error
Click to expand...
Click to collapse
different error:
Z:\F\kombinator work\android hack and hebrew\Developer\Tools\apk_manager_4.9\other\..\projects\framework-res.apk\res\values\public.xml:3756: error: Public symbol drawable/zzzzz_tw_quickcontact_slider_grip_left declared here is not defined.
Z:\F\kombinator work\android hack and hebrew\Developer\Tools\apk_manager_4.9\other\..\projects\framework-res.apk\res\values\public.xml:3757: error: Public symbol drawable/zzzzz_tw_quickcontact_slider_grip_right declared here is not defined.
Click to expand...
Click to collapse
i hope someone can make sense out of this... i thought it would be a simple proccess, hope i did something wrong and it will be an easy fix...
Thank you so much for reading this far, your help will be appreciated!
Yossi
The problem you're having is with semi-transparent .9 files. The Android SDK png handler can't decompile them, so when you look at them in explorer they'll have a default image meaning they're corrupt.
The easiest way to deal with them is to not decompile and recompile.
PNG Only: With apk manager, take the original framework files from the ROM (or phone if stock) and drop them into place-apk-here-for-modding, then take the themed frameworks, rename them (something like framework-resParagon.apk) and drop those into place-apk-here-for-modding.
Select each one and extract (not decompile).
Open the drawable-hdpi folders side-by-side of the original and the theme, and drag (Copy) the ones you want to the original.
Then Zip the original and select System APK, and you're done. The reason this work is because the .9 files are still in their compiled state.
If you need to copy xml files, do this first, then the first step for png files: Decompile the two, copy the XML files, and recompile. Compiled XML files convert the png names to IDs which may be different between two roms. If you already have .9.png files that don't decompile, here's the fun part and I guess I'm doing all of this out of order, sorry...
Have an orginal apk decompiled with a different name, extract your modded apk, drag the drawable-hdpi out to say desktop, delete that project, decompile, drag the original decompiled drawable-hdpi into your modded one, and now you can edit/copy XML files and recompile. Then delete the project, extract, delete drawable-hdpi and drag the desktop drawable-hdpi to the project and zip it up. Done.
Or quick version.. 7zip helps.
right click the apk you want the images from, extract it.
right click open archive the apk you want the images in.
navage down to the folder that the images are stored in while in 7zip.
go back to the extracted folder and navagate down to the folder the images you want are in.
drag and drop them into the open archive 7zip window.
close archive
push
whiteguypl said:
Or quick version.. 7zip helps.
right click the apk you want the images from, extract it.
right click open archive the apk you want the images in.
navage down to the folder that the images are stored in while in 7zip.
go back to the extracted folder and navagate down to the folder the images you want are in.
drag and drop them into the open archive 7zip window.
close archive
push
Click to expand...
Click to collapse
CuriousTech said:
The problem you're having is with semi-transparent .9 files. The Android SDK png handler can't decompile them, so when you look at them in explorer they'll have a default image meaning they're corrupt.
The easiest way to deal with them is to not decompile and recompile.
PNG Only: With apk manager, take the original framework files from the ROM (or phone if stock) and drop them into place-apk-here-for-modding, then take the themed frameworks, rename them (something like framework-resParagon.apk) and drop those into place-apk-here-for-modding.
Select each one and extract (not decompile).
Open the drawable-hdpi folders side-by-side of the original and the theme, and drag (Copy) the ones you want to the original.
Then Zip the original and select System APK, and you're done. The reason this work is because the .9 files are still in their compiled state.
If you need to copy xml files, do this first, then the first step for png files: Decompile the two, copy the XML files, and recompile. Compiled XML files convert the png names to IDs which may be different between two roms. If you already have .9.png files that don't decompile, here's the fun part and I guess I'm doing all of this out of order, sorry...
Have an orginal apk decompiled with a different name, extract your modded apk, drag the drawable-hdpi out to say desktop, delete that project, decompile, drag the original decompiled drawable-hdpi into your modded one, and now you can edit/copy XML files and recompile. Then delete the project, extract, delete drawable-hdpi and drag the desktop drawable-hdpi to the project and zip it up. Done.
Click to expand...
Click to collapse
Thanks guys! i knew there should be a simple solution!
will try this soon. and post results!
Yossi
Also make sure to double check the sizes, the height and width my be different and give you issues if you copy and past the pngs
Sent from my SGH-I897 using XDA App
Also with 2.2.1 there's a problem with compressed apk files, so in apk manager, you need to set compression to 0. It's not a problem when dropping them into an apk with 7zip.
Different sized png files are usually the expanded notification bar switches. The darkness theme for example uses smaller ones. The size change is in twframework-res.apk/res/layout/status_bar_expanded.xml so those should be copied together (decompiled).
Another way to customize just 1 or a few .xml or .9.png files is to decompile the original, edit the xml or .9.png (with your modified one in mind), then compile. Then rip the compiled files from it and drop them into the themed one, assuming you already used the original the first time.
CuriousTech said:
Also with 2.2.1 there's a problem with compressed apk files, so in apk manager, you need to set compression to 0. It's not a problem when dropping them into an apk with 7zip.
Different sized png files are usually the expanded notification bar switches. The darkness theme for example uses smaller ones. The size change is in twframework-res.apk/res/layout/status_bar_expanded.xml so those should be copied together (decompiled).
Another way to customize just 1 or a few .xml or .9.png files is to decompile the original, edit the xml or .9.png (with your modified one in mind), then compile. Then rip the compiled files from it and drop them into the themed one, assuming you already used the original the first time.
Click to expand...
Click to collapse
so, double - checking that i understood...
method1: replacing images (same size) using copmpiled source and destination.
if i want to copy iver png's from one theme to another, i only decompress (or 7ZIP - open) the apk's - Replace the pics, and compress bacl (with compression set to 0).
method 2 : replacing images of different sizes
if the images are of different sizes, i should decompile both apk's, than i should copy the corrosponding XML from the new image's source, and drop in the original drawable directory, compile the apk, than copy over the image using method 1.
am i correct?
Thank you all for your help!!!
Yossi
In method 1, don't decompress it when using 7zip (or any other), just open the apk, drop the files in where they go, leaving the apk (zip) intact. If you extract the full apk, modify the files, and compress it back to a new apk it will lose the signature. That's what apk manager does when you zip it and select "system APK". It copies the signature from the original to the new one. Think of it like a zip comment. It's not a file, but a chunk of data attached to the zip that can't be copied from one zip to another.
Method 2: Too complicated. Just use method 1 to do as much as you can.
Whoever put the theme together originally did it incorrectly/lazily.
If you want to spend the time fixing it, then you need to decompile the same version of the .apk (the Samsung stock version, for example) and copypasta the themed one on top of it, while keeping the 1 pixel border.
One more question...or maybe two
when i decompile a framework-res.apk, i only get one drawable-hdpi folder.
if i open the apk using 7zip...i have a 2 folders: one is the same... and and another one that have this name: drawable-hdpi-v4
i replaced all the items i wanted in the drawable-hdpi folder..uploaded to the phone...and nothing happend... than i tried copying over some items to the drawable-hdpi-v4 foder..than i saw the changes.... the question is... do i have to copy the files to both follders? or just the drawable-hdpi-v4 folder?
another question tha poped into my mind right now, is it common that after i replace the framework-res.apk, my accounts data gets erased? (gmail account, facebook, etc)?
Thanks!
Yossi
Get the apktool in this thread and rename your old one just in case:
http://forum.xda-developers.com/showthread.php?t=864424&page=5
Oh, read the thread too. Good info!
The -v4 folders are higher resolution, or supposed to be. They take priority over the others, so if the image is only in drawable-hdpi it will be used, if it's in both the -v4 is used, or if it's only in -v4 it's used. I just leave the non-v4 alone, but it might save space to empty it, just scared to try.
You shouldn't lose account data though. That might indicate a problem. Not sure?
MikeyMike01 said:
Whoever put the theme together originally did it incorrectly/lazily.
Click to expand...
Click to collapse
I don't think the theme makers are to blame. Try decompiling a stock apk, then set the opacity of any .9.png to anything but 100%, draw9patch it again, then compile, then decompile and try to view that png. It's going to be damaged.
Well, it's actually easier to photoshop a compiled one, then remove the .9 and drop in draw9patch but you know what I mean.
I just don't think apktool can handle the extra info in a png.
Hi all,
Apologies if this has been covered elsewhere but searching has done me no good.
I'm trying to do a bit of theming by modifying framework-res.apk with apkmanager 4.9. As I understand it, you're supposed to:
1. Decompile (9) the APK
2. Modify files in .\projects\framework-res.apk
3. Compile (11)
4. Answer Yes to this being a system apk
5. Answer Yes to keeping unmodified files
6. Delete the files from keep that have been modified
7. Press a key to continue
At this point, if I rename the new apk to file to .zip and look inside the files I've deleted from keep are simply not there.
If I don't delete the files from keep, the old files are there, not the new files I'm replaced them with.
If I replace the files in keep with the modified versions again instead of deleting them, they do appear in the final apk and show up on my phone correctly. This only work for images though and this isn't working for XML files - only images.
After step 5 I get a line in the apk manager log saying "The system cannot find the file specified."
Can someone tell me what I'm doing wrong?
Thanks
Hi guys,
im currently using netdrg`s sense theme http://forum.xda-developers.com/showthread.php?t=1048792
Now i changed all the green elements of the framework-res.apk to blue. Ive done everything so far, but i have no clue how to edit the color of the progress bar. (the bar when u change the volume, download something and so on...)
Ive heard that u have to edit an xml file, but as i have no clue about editing these files, i want to ask for a little favour.
Ive attached the xml file, and the color which i will use is 1761ab (hex).
So ill thank the guy who will do this for me a thousand times and i can share the theme with you afterwards!
lg l
In order to edit this xml file you need to decompile framework-res.apk. You can use apk_manager. Once the framework has been decompiled you can easily change the hex color for the progress bar (remember that the first 2 digit are for alpha channel). After that you need to recompile the framework. Actually there is another way to do that, but it‘s a bit triky as you need to modify the xmls file by using an hex editor..
If you want i can modify and compile the xml attached for you! Let me know m8
hey, thanks for your answer.
I put the framework-res.apk in the "place here for modding" folder, opened the script and hit 9 to decompile.
Then i edited all the values in the xml file in the "projects" folder and saved it.
Now i compile it, delete the file i edited in the "keep" folder and that other file mentioned.
Now i tried to apply the compiled framework_res.apk back to the system which results in a bootloop, what am i doin wrong?
soulcrash said:
hey, thanks for your answer.
I put the framework-res.apk in the "place here for modding" folder, opened the script and hit 9 to decompile.
Then i edited all the values in the xml file in the "projects" folder and saved it.
Now i compile it, delete the file i edited in the "keep" folder and that other file mentioned.
Now i tried to apply the compiled framework_res.apk back to the system which results in a bootloop, what am i doin wrong?
Click to expand...
Click to collapse
Ok, you are getting close to the solution
Once you got the unsignedframework.zip inside the place-apk-here-for-modding folder, you have to do a little trick in order to get it working...
Unzip all the content of the "unsignedframework-res.apk". You should have 5 objects (3 folders, 2 files).
Zip these files with Winrar/Winzip (whatever) but you must choose "No compression (store)" method to zip it.
Rename this zip into "framework-res.apk".
Put it into an update.zip and it should be OK to flash trough the recovery mode.
keep me updated
Hey people, I've just found it at O3D forums and I think I should share the information, as I don't have time for creating a good tutorial myself.
This way you can change colors for your own likes and make a lot kind of themes.
Before starting you should have your Apktool environment set up.
1. (only if you never saw APKTOOL in your life, otherwise, just jump it)
1· Download and install latest version of Java JDK
2· Download latest version of APK Multi-Tool as we'll be using it for un/packing APKs and push/pull them from/to our device.
3· Extract it anywhere you may like. If posible, in C:/ to avoid any kind of problems. Be sure to read README file before asking something about it.
4· Run Setup.bat, type 3 and press Enter. Close it.
5· Run Script.bat, type 0 and press Enter. Now let's type our framework's path.
6· /system/framework/framework-res.apk for basic framework file. This will be pulling it out from our phones.
7· Repeating Number 5, type /system/framework/lge-res.apk for LG's framework file.
8· Now move to X:\...\APK-Multi-Tool\place-apk-here-for-modding\ and copy both apks (framework-res + lge-res) and paste it at X:\...\APK-Multi-Tool\other\
9· Run Setup.bat again, type 2 and press Enter. Now both frameworks should be installed and we are ready to un/pack APKs from the version we're actually using (v30A/B/C/D...). Close it.
10· Back in Script.bat, type 0 again followed by Enter, then type the path of your desired APK. (/system/framework/xxxxxx.apk for frameworks & /system/app/xxxxxx.apk for apps). After pushing it, select it as your actual project.
11· Now type 9 followed by Enter. This will unpack our APK.
12· Now is the time for tunning anything you want to. Go to X:\...|APK-Multi-Tool\projects\xxxxxx.apk\ and you'll find there everything.
13· When it's done, let's re-pack it typing the option 11 followed by Enter. When repacking gets done, it will ask if you want to use any files from your original APK. Tell it Yes, otherwise your apk won't get signed.
14· When the extracting is done, move to X:\...|APK-Multi-Tool\keep\ and erase everything there BUT META-INF folder + AndroidManifest.xml. Now press anything at APK Multi-tool window and you'll get your APK ready to go.
15· Now type 8 to push it back to your phone and type the desired path. If it cames from /system/app/xxxxx.apk or /system/framework/xxxxx.apk.
If you get any error recompiling it, you should take a look at the log, typing 23 and fix it at the projects folder.
Click to expand...
Click to collapse
2.
potaturrias said:
When i maked this theme (my first theme) y used trial and error procedure.
The first step is replace or edit 9.png. pictures in drawable-hdpi folder located in framework-res.apk and lge-res.apk, you can do this quickly using this tools:
http://jgilfelt.github.com/android-actionbarstylegenerator (Check that the names of new pictures match with the old pictures)
http://android-holo-colors.com/
Many images have to edit them by hand
If you put more files than originally,for example switches in lge-res drawable-hdpi, you will get an error when try to compile.
The second step is replace xml files in drawable folder using xml files from zip file that you downloaded in the previous step.
If you don't get the desire result you have to edit styles.xml or drawable folder files or layout files to change backgrounds colors, text color,etc.
Remember there applications with lines in XML files that reference to framework or lge-res, for example:
android:textColor="@*android:color/transparent makes reference to transparent color defined in framework-res and
android:textColor="@com.lge.internal:color/transparent makes reference to transparent color defined in lge-res.
I hope that this mini guide help you, remember that you can make your theme based on this theme, will be easier i think.
Click to expand...
Click to collapse
Thanks to @potaturrias!