Related
In framework-res.apk, what controls the color of the text for the status bar, such as notifications and the digitial clock? Are these controlled independently by seperate apks?
I'm considering diving in and attempting to skin my android but I want to know what I'm getting into.
I've tried replacing framework.apk that I built from source on a real device and emulator. Only bad things came of it. Had to reflash. Let me know if you have better luck.
I'm pretty sure it failed because a lot of the stuff in framework.apk is stubbed closed source stuff.
Koush,
Have you looked at this post by Living_Sword?
I suggest you enter the following commands using adb, because its faster and reliable than telnet or any other method. If you do not have adb setup, read here, if you do, then just enter adb shell in the console while the phone is connected.
In simple words, you have to re-sign the framework-res.apk with your own key. You should know that you will loose all your data while doing this mod. Here are the steps,
1. Re-sign and re-upload all the .apk files in /system/app with your own key or the test-keys. The command used for signing is included in the readme file alongwith the signing jar here.
2. Take a backup of /system/framework/framework-res.apk. Now, you would want to edit some stuff in framework-res.apk, for that the easiest method is to rename the apk file to .jar/.zip, put in your own files(with same name as original png) and rename it back to .apk. You have to re-sign this apk with the same key like you did in the first step.
3 . Upload the apk file to /system/framework. The phone will hang, and in few secs it will most likely go back to the android robot screen.
4. Take out the battery, then do a data reset by going into recovery mode and pressing ALT+L to see the log text and then ALT+W to wipe out /data. Obviously, you will loose all your apps and settings and will have to re-activate the phone.
5. After the wipe is complete, press HOME + BACK to reboot. The phone should reboot normally now.
I know its a pain to loose all the data and apps, but this is the easiest method until we figure out something more elegant, and its required to be done only once. Also, there is no need to keep the png file size same. And in future, you will be able to replace the framework-res.apk without any hassles.
Also, since each stock app's icon is in its own apk, once you re-sign every apk in /system/app, you can easily replace their icons with your own.
Source: http://www.modmygphone.com/forums/showthread.php?p=16871#post16871
Ok, so I have successfully replaced framework-res.apk with my own build which includes custom icons and things like that. However, I am running into two problems:
1: I keep running out of room in my system folder. Everytime I replace framework-res.apk I am losing space somehow, eventually I have to do the mod rc30 update all over again to get my memory back so I can push this file over, where is this space going? Whats eating it up? Oh, and it isn't the file size growing, this will happen if I pull a file and directly try to push it back onto the phone.
2: I still don't know how to change the default color of the text. I assume it is in one of these xml files but I'm not sure, and I haven't found it yet. Could it be in /res/color/?
If anyone could help me on these two issues I would be so appreciative.
This is what I've done so far, see the status bar and the icons?
Stericson
Stericson said:
Koush,
Have you looked at this post by Living_Sword?
I suggest you enter the following commands using adb, because its faster and reliable than telnet or any other method. If you do not have adb setup, read here, if you do, then just enter adb shell in the console while the phone is connected.
In simple words, you have to re-sign the framework-res.apk with your own key. You should know that you will loose all your data while doing this mod. Here are the steps,
1. Re-sign and re-upload all the .apk files in /system/app with your own key or the test-keys. The command used for signing is included in the readme file alongwith the signing jar here.
2. Take a backup of /system/framework/framework-res.apk. Now, you would want to edit some stuff in framework-res.apk, for that the easiest method is to rename the apk file to .jar/.zip, put in your own files(with same name as original png) and rename it back to .apk. You have to re-sign this apk with the same key like you did in the first step.
3 . Upload the apk file to /system/framework. The phone will hang, and in few secs it will most likely go back to the android robot screen.
4. Take out the battery, then do a data reset by going into recovery mode and pressing ALT+L to see the log text and then ALT+W to wipe out /data. Obviously, you will loose all your apps and settings and will have to re-activate the phone.
5. After the wipe is complete, press HOME + BACK to reboot. The phone should reboot normally now.
I know its a pain to loose all the data and apps, but this is the easiest method until we figure out something more elegant, and its required to be done only once. Also, there is no need to keep the png file size same. And in future, you will be able to replace the framework-res.apk without any hassles.
Also, since each stock app's icon is in its own apk, once you re-sign every apk in /system/app, you can easily replace their icons with your own.
Source: http://www.modmygphone.com/forums/showthread.php?p=16871#post16871
Click to expand...
Click to collapse
framework-res.apk is just the resources. framework.apk contains the actual code used by every application in the system. Attempting to replace THAT file the result of the android build process will fail.
I think we're talking about two different files.
Oh yep, definetly we are...I thought you were talking about that but I figured you would clarify if you were indeed. Thanks.
so you guys are making progress on some themes... GOOD ****..
jzajzz said:
so you guys are making progress on some themes... GOOD ****..
Click to expand...
Click to collapse
Agreed. Once this process is mastered, and some polished themes, or a tool to make your own (or something) comes out, our G1's will look even sweeter.
jzajzz said:
so you guys are making progress on some themes... GOOD ****..
Click to expand...
Click to collapse
Well, I was making progress, but now my phone is bricked. Don't know how it happened. Was doing the same thing I've done over 20 30 times, suddenly started giving me problems, reflashe JF update and voila! bricked phone. So now I'm getting a new one sent to me and hoping that it comes pre-rc30. Sucks too because I am pretty sure I found out where the text color is set. Thats why I'm trying to get this to work under the emulator, but I can't get it to work. The dang emulator won't reboot or shutdown. So I can't see the changed made.
It sounds like it's too late to help now. But how was the phone bricked? Did it go into an infinite reboot cycle? Stay on the G1 screen?
Also, I assume you hadn't loaded the dev bootloader? That could have easily saved your phone from brickage
JesusFreke said:
It sounds like it's too late to help now. But how was the phone bricked? Did it go into an infinite reboot cycle? Stay on the G1 screen?
Also, I assume you hadn't loaded the dev bootloader? That could have easily saved your phone from brickage
Click to expand...
Click to collapse
My phone does have the dev bootloader on it. However, now it just stays on the boot splash screen and I can't do the update because it says the /dev file is gone! Can I reflash all of that and save my phone?
Btw, I actually think the entire folder /system is gone, because I can't abd with root, and when I did it in the update screen my system folder wasn't showing. So, I have no idea how this happened.
Is it possible to push that entire folder back on there and then recover or something?
Yes, you can reflash the recovery partition using the fastboot protocol, which the dev bootloader supports. There isn't a windows binary for it yet, but if you have a linux or mac handy, turn on the phone into bootloader mode, then plug in the USB cable. "Serial0" should change to "FASTBOOT". now you can use the fastboot binary on your computer to flash anything on the phone. You might try re-flashing the recovery image that's in my modified update. If that doesn't work, maybe try flashing the radio too.
If you have the dev bootloader, I'm almost positive your phone can be saved. Give me at IM if you want to talk about it.
I *think* the fastboot binary is in the sdk for linux/mac. I could be wrong though. There are copies of both floating around though, just ask if you need one.
I managed to repack framework-res.apk and resign all other packages without wiping. The problem is with the signatures in /data/system/packages.xml - they no longer match after resigning. The solution is to simply delete all <sigs> sections (and the <certs> within), and the PackageManager will automatically regenerate them as they are launched. I just now successfully booted, so can't say this is thoroughly tested, but I'll report back here if any problems crop up.
donniesmit said:
I managed to repack framework-res.apk and resign all other packages without wiping. The problem is with the signatures in /data/system/packages.xml - they no longer match after resigning. The solution is to simply delete all <sigs> sections (and the <certs> within), and the PackageManager will automatically regenerate them as they are launched. I just now successfully booted, so can't say this is thoroughly tested, but I'll report back here if any problems crop up.
Click to expand...
Click to collapse
A good check after doing something like this is to take a look at the call log, and actually receieve a call (call yourself from your home phone, or whatever). Both of these like to error out when messing around with resigning.
I've been seeing way too many requests for this with just about every mod possible. Considering the simplicity of this mod, the easiest way to please everyone, is for all of you to know how to accomplish this mod yourself.
BTW, this is for the status bar itself, not pulldown bar or notification background.
What you need:
- Paint.NET software (or any other image editing software that you are already comfortable with, this one seems to be the easiest for setting transparency though.)
- Your framework-res.apk AFTER you have all of your other mods applied to your phone. Otherwise you will have to apply this mod again every time you add or change mods (most likely).
- 7zip
So, you should have your framework-res.apk on your computer and 7zip installed to open the apk. Open up the framework, navigate to /res/drawable-hdpi folder. In that folder, find the file statusbar_background.png. You can either pull that file out to your computer to edit it or open it straight from 7zip (which is the best way to ensure there is no issues when pushing framework back to the phone) but you must have your editing software set as the default to open .png files.
Now once you have that file open in Paint.NET, you will see the image of the status bar as you currently have it. Up on the top toolbar, you should see the option "Layers". Click that then select "Layer properties" at the bottom of the drop-down. At the bottom of the window that pops up, you should see "Opacity" and the number set at 255 with the neighboring slider all the way to the right. I suggest using the slider because as you move it you will see the transparency applied to the bar image, allowing you to slide it around to the desired transparency.
Once you have finished setting your transparency, click the little disk image at the top left to save your changes, close the program out and you should then see a box pop up in 7zip (if you made changes without unpacking the file from 7zip first) asking if you would like to apply changes to file you edited. Say yes, then close 7zip, which may or may not state that changes have been made to the apk and if you'd like to update it, which you would say yes to if it does. If you unpacked the file from 7zip, simply drag and drop the file back into its correct spot, confirm you want to replace the file, then close it up. After all of this is done, just put framework-res.apk back into the framework folder on your phone whatever way you like, turn your phone on and you have a transparent status bar.
As a side note, you can play with Paint.net to see all of the modifications you can make to your status bar like changing colors, texture, and a few other things. One piece of advice is to have a backup framework-res.apk in case you make a mistake or something.
excuse my extreme noobness, but what is the best way to transfer the apk back and forth from the phone to computer? yes I am new to this and yes I am a retard and yes I probably shouldnt even try this..
JoeyBones1 said:
excuse my extreme noobness, but what is the best way to transfer the apk back and forth from the phone to computer? yes I am new to this and yes I am a retard and yes I probably shouldnt even try this..
Click to expand...
Click to collapse
Easiest way would be to get root explorer so you can navigate to the /system/framework folder and copy the apk from there to your sdcard, where you can just copy it to your computer. the other option would be plugging your phone into your computer, phone should be on, open up command prompt then navigate to your sdk/tools folder (get it if you dont already have it), then type "adb pull /system/framework/framework-res.apk c:\" without the quotes. the file will be in the root of your C directory. To get it back on your phone when finished, for root explorer just reverse the steps, but when moving the apk back to its proper folder, just hit the "Mount R/W" button at the top right of root explorer, copy the file back in and reboot. For alternate method, boot into recovery, mount /system partition, then in prompt after navigating to sdk tools folder type "adb push c:\insertdirectoryto\framework-res.apk /system/framework/" without quotes, then boot up and youre done.
tried this...boot looped...had to restore backup...thanks for the info though...might try again soon
BillytheKid82 said:
tried this...boot looped...had to restore backup...thanks for the info though...might try again soon
Click to expand...
Click to collapse
Did you try editing the file without extracting it or did you extract it and reinsert it?
Or you could edit the .png and use metamorph to push it into the framework-res.apk without moving or unzipping anything. And you could just keep the metamorph theme with that one .png on your sdcard to re-apply it whenever you flash a new rom, without altering any other theme elements you've already applied.
What do I edit to change the pull down notifications?
Sent from my Incredible using XDA App
thx a ton got it
transparent, transferring back to phone now..we will see
edit ..boot loops too..
i used root explorer ..extracted framework-res.apk to my sd card ,,then on my computer i opened paint.net and edited the statusbar_background.png file and then
zipped back up the framework-res and renamed to apk then copied back to my framework folder and it the forced closed and went into boot lopes...
i know im close to getting this right ..what step am i skrewing up?
i edited the file w/out extracting it...using root explorer i copied the framework res to my sdcard...plugged my phone in to comp, opened the framework res w/ 7zip, edited w/ gimp, saved all changes...unmounted phone, used root explorer and copied the new edited framework, then navigated to the original framework res and pasted the new one there to overwrite the original...then it force closed so i tried to paste it again, then the phone rebooted and boot looped? not sure if i did something wrong
Gahh Its Lee said:
What do I edit to change the pull down notifications?
Sent from my Incredible using XDA App
Click to expand...
Click to collapse
That file is a .9.png file. editing these is ridiculously difficult and ill-advised.
chrisloveskaos said:
thx a ton got it
transparent, transferring back to phone now..we will see
edit ..boot loops too..
i used root explorer ..extracted framework-res.apk to my sd card ,,then on my computer i opened paint.net and edited the statusbar_background.png file and then
zipped back up the framework-res and renamed to apk then copied back to my framework folder and it the forced closed and went into boot lopes...
i know im close to getting this right ..what step am i skrewing up?
Click to expand...
Click to collapse
BillytheKid82 said:
i edited the file w/out extracting it...using root explorer i copied the framework res to my sdcard...plugged my phone in to comp, opened the framework res w/ 7zip, edited w/ gimp, saved all changes...unmounted phone, used root explorer and copied the new edited framework, then navigated to the original framework res and pasted the new one there to overwrite the original...then it force closed so i tried to paste it again, then the phone rebooted and boot looped? not sure if i did something wrong
Click to expand...
Click to collapse
I JUST remembered that I think you need to be running a deodexed rom to allow modifications. I've always used deodexed roms and forgot that it might be a requirement for things like this. Do either of you know if what youre running is deodexed or not?
mixedlemon said:
Or you could edit the .png and use metamorph to push it into the framework-res.apk without moving or unzipping anything. And you could just keep the metamorph theme with that one .png on your sdcard to re-apply it whenever you flash a new rom, without altering any other theme elements you've already applied.
Click to expand...
Click to collapse
metamorph is definitely more useful. I just have never created anything to run with it so I don't know the process of doing so.
im running skyraider vanilla, i tried to look on the thread to see if it is deodexed and i couldn't find if it is or not...may not be...thanks for your help
mb02 said:
I JUST remembered that I think you need to be running a deodexed rom to allow modifications. I've always used deodexed roms and forgot that it might be a requirement for things like this. Do either of you know if what youre running is deodexed or not?
Click to expand...
Click to collapse
running new skyraider 3.3 and im sure it is
Yea it seems they are both deodexed, and btw I didn't know skyraider 3.3 was so awesome I'm tempted to switch over to it. But yea, I'm not sure why your phones aren't allowing the modifications to the framework. I might as well load SR 3.3 and see for myself what's up. I'll get on that later tonight when I have time and let you guys know if i figure anything out.
Use this with metamorph. It will work on any rom (tested on skyraider 3.3) except those that still use the "drawable-hdpi-v4" folder in the framework-res.apk. If your rom uses that folder, simply rename the folder it puts on your sdcard in /sdcard/AndroidThemes/HalfTransparentBar/
If you'd rather have a different transparency just replace the .png in the folder with yours.
In fact, if you want to edit ANY graphic on your rom, just put the .png in the /sdcard/AndroidThemes/xxxxxx/framework-res/res/drawable-hdpi/ folder with the same file name as the one you want to replace. And of course, do a nandroid backup just in case.
EDIT: As Berzerker7 pointed out, this file probably wont make anything transparent unless you have a modified services.jar. oops.
mixedlemon said:
Use this with metamorph. It will work on any rom (tested on skyraider 3.3) except those that still use the "drawable-hdpi-v4" folder in the framework-res.apk. If your rom uses that folder, simply rename the folder it puts on your sdcard in /sdcard/AndroidThemes/HalfTransparentBar/
If you'd rather have a different transparency just replace the .png in the folder with yours.
In fact, if you want to edit ANY graphic on your rom, just put the .png in the /sdcard/AndroidThemes/xxxxxx/framework-res/res/drawable-hdpi/ folder with the same file name as the one you want to replace.
edit: and of course, do a nandroid backup just in case.
Click to expand...
Click to collapse
Well then that simplifies a lot of things lol. Thanks for putting that up for us, makes everything even easier.
Simply swapping a file won't work. It's the same reason simply swapping a transparent image for the notification pull-down doesn't work. Opacity is controlled on another level by services.jar. You need to modify the values there, as well as swapping out for a transparent image.
Btw, this didn't work for me on SkyRaider 3.3. (Metamorph or swapping the file).
It makes the background black but not transparent on virtuous 3.0.1
mixedlemon said:
Use this with metamorph. It will work on any rom (tested on skyraider 3.3) except those that still use the "drawable-hdpi-v4" folder in the framework-res.apk. If your rom uses that folder, simply rename the folder it puts on your sdcard in /sdcard/AndroidThemes/HalfTransparentBar/
If you'd rather have a different transparency just replace the .png in the folder with yours.
In fact, if you want to edit ANY graphic on your rom, just put the .png in the /sdcard/AndroidThemes/xxxxxx/framework-res/res/drawable-hdpi/ folder with the same file name as the one you want to replace.
edit: and of course, do a nandroid backup just in case.
Click to expand...
Click to collapse
Berzerker7 said:
Simply swapping a file won't work. It's the same reason simply swapping a transparent image for the notification pull-down doesn't work. Opacity is controlled on another level by services.jar. You need to modify the values there, as well as swapping out for a transparent image.
Btw, this didn't work for me on SkyRaider 3.3. (Metamorph or swapping the file).
Click to expand...
Click to collapse
Ah, I must have already installed a theme that modified it, then.
WOOOT!
SO can't wait to try this!
Wow... epic fail on my part... edited the image, repackaged, compared to original, file sizes/compression were similar enough, so I copied it onto my SD card and went in to Root Explorer... Mistake number 1)forgot to do a nandroid OR a titanium, Mistake number 2)Renamed the framework-res.apk to framework-res.bak BEFORE I copied the new file to the /system/framework. As soon as I did that, everything went haywire so I did a battery pull and went to do it the ADB way from recovery. Thought I did that right, so I rebooted into a bootloop... Finally gave up so I decided to do mistake number 3)full nandroid restore of a backup that was admittedly a few days old (See mistake 1 lol) after which I had rearranged a few things and added more apps etc... Now on to the important stuff...
MAKE SURE YOU DO STEP 1 BEFORE ATTEMPTING ANY OF THIS AND IF YOU RUN INTO PROBLEMS, DO STEP 2 SO YOU DON'T MAKE THE SAME MISTAKE I DID!
Step 1)For the love of all that's holy, do a Nandroid and Titanium backup first!
Step 2)In Clockwork Mod Recovery, do NOT do a full restore, instead go to advanced restore and simply restore the system (the part that you were messing around with to do this mod lol I realized this gem just as I clicked "Yes" in CWM, I still have the palm print on my forehead... haha
Hopefully you folks will have better luck than I did, but if not, hopefully I can save you some of the headache I went thru...
Working from rooted 2.3.3 (on a Droid X2, but I don't think that matters).
I have pulled /system/framework/framework-res.apk from the phone, unzipped, modified exactly one file (\res\drawable-hdpi\zz_moto_list_texture_bg.png) with photoshop, zipped back up (7-zip), zipaligned and pushed back into the /system/framework/ directory with the correct permissions. The file was not re-signed.
The phone boots without error, but the new modified file does not get loaded, the old version of the graphic remains. I have double checked and my modified /system/framework/framework-res.apk is in place. I don't know where the phone is getting the old version from.
I have tried formatting the system cache, erasing all user data via android recovery, zipped with different levels of compression for the apk file (moderate to none), same result.
I had this problem before on 2.2.2, which I thought was corrected by formatting the cache, but I guess I was wrong and it got fixed by chance.
Does anyone know what can be done to force framework-res.apk in the /system/framework/ directory to load?
Relevant files attached.
Chris
Figured this out. There is a 5x5 graphic that colored the background texture. I had to change that too.
Chris
i know there are hunderds of threads about this, but none of them helped me and niether of them describes my situation.
i had to change some values in bools.xml in framework-res.apk of a deodexed cm7.2 rom. so, i decompiled and recompiled using apktool and tried the folowing things (in all cases i remembered to chmod to 664):
- pushed the compiled file without signing. Boot loops.
- wiped dalvik cache. still boot loops.
- signed the compiled file. IT BOOTED! but all system apps fc. And i see a blank status bar. clearing dalvik cache doesnt help.
- copied the compiled resources.asec to original apk with winrar. NO FCs this time. still a blank status bar. Rotating the phone freezes the system instantly. but even if you dont rotate, system soon freezes, within 30 secs. logcat shows repeating messages of "cpu may be pegged. trying again". (no i havent overclocked).
how do u guys mod the frameworkres successfully?
Well, I don't know exactly what the problem you're having is since it may depend on the type of mod you're doing but..
I decompile framework-res.apk with apktool, make my changes and recompile. Then I use 7zip to copy the res folder from the new apk to the old one (just open both and drag across). Next, I extract resources.arsc from the new apk and add it to the old one, making sure to use 'store' compression. If resources.arsc is compressed at all, it causes problems.
So the original framework-res.apk now has a new res folder and resources.arsc at the right compression ratios. If you sign the new apk file, you have to make sure all the other system apps are signed the same way and it's just more trouble than it's worth.
Then I reboot into recovery, mount the system and push straight to the framework folder. I used to do this while the phone was running normally but I'd get all kinds of odd bugs if I made any change to anything other than a drawable. I'd get strange FC's, I'd lose wifi connection, all kinds of things.
And that's about it. As long as the changes I'm making don't stop the phone from working properly anyway, the above works perfectly every time.
Sent from my U20i using xda premium
arnab321 said:
(in all cases i remembered to chmod to 664):
Click to expand...
Click to collapse
Did you made a typo, or did you really have set the permissions to 664?
Its 644.
brainmaster said:
Did you made a typo, or did you really have set the permissions to 664?
Its 644.
Click to expand...
Click to collapse
that was actually a typo, and once i also accidentally made a typo on adb, but it still boots fine. i dont think giving extra permissions will screw things up.
the problem "cpu may be pegged" is rom/kernel related, because it is still there after a fresh install... sometimes it happens, sometimes not.
but i dunno anything about the blank status bar... i was trying to set "has_soft_keys" to true, to use tablet tweaks on my phone, does that cause a blank statusbar? anyone else got the same problem?
Wait, why are you using framework-res.apk for that? I think you need to change local.prop in /data to do this.
Have you actually got the line "has_soft_keys" already in the bools.xml?
Ticklefish said:
Wait, why are you using framework-res.apk for that? I think you need to change local.prop in /data to do this.
Have you actually got the line "has_soft_keys" already in the bools.xml?
Click to expand...
Click to collapse
yes it had that line, and setting it to true does bring the softkeys stuff in tablet tweaks menu. But the status bar always stays empty, nothing on it.
what needs to be changed in local.prop? There's nothing related to softkeys there on my phone.
umm, my ROM had the center clock mod on status bar, is that an issue?
Sent from my LG-P500
edit:
yes it was due to the center clock. tried anoher rom and i got the softkeys just by modding the bools.xml
First of all never sign system apps.
try using apk manager(I know it uses apk tool to do these operations) so try to set compression level to zero and heap size to 512.
I think above solutions should solve your problem but revert if u face any problem.
Sent from my Micromax_A70 using Tapatalk
I downloaded Sac's v2 ROM and I got used to the Recent apps where it usually is, my question is, is there anyway to flash a zip file or replace a file in order to achieve the stock button functions? I flashed his "hold home for recents" but its not the same as I'm used to.
You can take the android.policy.jar from system>framework in v1 and swap it and all buttons will go back to normal. (change permissions and such of course when replacing any system files)
I swapped the android.policy.jar files the other day, and as a result the phone just wouldn't boot. I'm guessing this is due to not setting permissions. How should permissions be set for the new file when it is swapped? And in addition, should permissions for other files placed in system be set the same exact way (for future reference)? I know how to change them, but do not know how they should be or why they should be set a certain way
dc.wash95 said:
I swapped the android.policy.jar files the other day, and as a result the phone just wouldn't boot. I'm guessing this is due to not setting permissions. How should permissions be set for the new file when it is swapped? And in addition, should permissions for other files placed in system be set the same exact way (for future reference)? I know how to change them, but do not know how they should be or why they should be set a certain way
Click to expand...
Click to collapse
The folder is set to rw-r-r- but there is a new flashable zip just posted in the sac23 thread
Not sure but I replaced the Android.policy.jar file from v1 to v2, worked like a charm. Took maybe 5 to 6 minuted to boot.