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.
Updated: July 24/2010 Go to the X10 Theme repo for a listing of uploaded themes.
Thanks to everyone that is helping out and contributing. I also apologize if I rip anything off. If I do please post it and I will definitely correct it.
The usual disclaimer goes with this... Use at your own risk and backup your system before making any changes. You know what to do if you run into problems
I think this is important...
Links for various stuff:
framework-res.apk
/system/app/ folder
startup show (boot animation)
Mms.apk
Phonebook.apk
apps2sd-work in progress?
http://forum.xda-developers.com/showthread.php?p=7037044#post7037044
Many visual aspects of the os and system apps can be changed and surprisingly easily. By default when opening an apk you should look around the res-drawable folders for the pngs to edit. If you have noticed, there are some png's that look like xxx.9.png. To modify these files easily, remove the 9 from the filename and open with your preferred editor. When you are done editing the files save them, open the command prompt and type draw9patch. This should open a window with an arrow in it. Drag your file there and I'm pretty sure it goes into the same folder. That's it.
If you are using a mac use betterzip and take a look here.
You can also use root explorer (I havent tried this myself)
Step 1:
Connect phone to pc, enable usb debugging and open adb. Type:
adb pull /system/framework/framework-res.apk framework-res.apk
That will pull your framework-res.apk to whatever folder is displaying in your command line.
Step 2:
Find the framework-res.apk on your hard drive, right click and open with 7zip.
Step 3:
Use png's here or create your own and dump into the appropriate folder within framework-res.apk.
Step 4:
When you are done editing the files open up adb and type the following command:
adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock2 /system
adb push framework-res.apk /sdcard/framework-res.apk
adb shell dd if=/sdcard/framework-res.apk of=/system/framework/framework-res.apk
That will put the new framework-res.apk on your phone. It should automatically reboot (if not reboot it) and your changes should be applied!
When running the script above you can replace framework-res.apk with whatever you want. For example, Timescape.apk
Remember, it is CASE sensitive I made this problem many times)
If you would like to pull an entire folder put a slash at the end of the last word. For example, adb pull /system/etc /etc"/" (no " in actual script )
Courtesy of corruptfate is the steps to modify the startupshow (post #207)
step 1: open adb shell
step 2: type "adb shell"
step 3: type "su"
step 4: type "mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system"
step 5: type "mkdir system/etc/semc/startupshow"
step 6: exit and redo step 1 - 4
step 7: type "mkdir system/etc/semc/startupshow/default"
step 8: exit and open command prompt again, this time type "ddms"
step 9: look for the default folder in system > etc > semc > startupshow > default
step 10: push the images into that folder
Possible reasons your phone won't boot after modifications:
images anren't stored properly, right format, right size etc.
unpacked apk improperly, use 7zip, it doesn't mess anything up
you signed the package before pushing it- unless you know what you're doing follow the directions to a tee and you should be fine
pushed the package to the wrong directory, /system/framework-res.apk XX, /system/framework/framework-res.apk
I'm sure many other reasons, these were the only ones I encountered
How to get past boot screen:
Use backup framework-res.apk and push that one to your phone. Remember to place that one where the modified one is.
To see if adb sees your phone type adb devices, if a serial number pops up try pushing your original, if not...
Flash your phone again from scratch . Sorry, I don't know any better way yet.
Please post your themes and download themes from the X10 theme repo
The basics:
http://forum.xda-developers.com/showthread.php?t=502010
http://developer.android.com/index.html
http://developer.android.com/guide/developing/device.html
Some Links:
Notification background color
Status bar clock color
Notification font color
Notification bar shortcuts
Edit 9.png's
Install mobile defense as system app through terminal (I haven't tried this yet)
Resigning apps
http://forum.xda-developers.com/showthread.php?t=549109
http://androidforums.com/developer-101/8665-how-signing-roms.html This is the one I have been using. I just noticed its for roms
http://code.google.com/p/android-apktool/ Figured it out but no need for it as of yet
How to modify notification background colors
Some of the files; not sure which is the top band displaying carrier(semc_avctivity_title.9.png??):
statusbar_background.png
status_bar_background.png
status_bar_close_on.9.png
status_bar_header_background.9.png
status_bar_item_background_normal.9.png
They should be in res/drawable-240dpi. Once you find them open them and modify as you wish. Once completed save your changes.
Getting FLAC working, I was wrong, mixed up file folders. Apparently meridian pioneer works. Havent gotten a chance to test for sure yet. I am now trying to manually add flac support to mediascape
Second tutorial: Busting open apks so you can edit xml's!!
So has anyone tried opening up an xml file on their phone to edit only to find incoherent coding. Well I have. So I have stumbled upon a tool called apktool. The tool somehow breaks down the apk into readable xml files. I haven't gotten so far as to test out an edited xml because I wanted to post this so I don't forget how to do it.
1. follow instructions on installing apktool. Unzip the files into your android-sdk-windows/tools folder
2. Put a copy of your framework-res.apk into the same tools folder
3. from command type: java -jar apktool.jar if framework-res.apk
4. Put whatever apk you want to edit into tools folder and type this: java -jar apktool.jar d xxx.apk
5. Look in your tools folder and voila there will be a folder named with whatever apk you worked with.
Third tutorial: Use smali/baksmali to edit services.jar and services.odex
1. follow instructions on downloading and installing smali/baksmali
2. pull these files from your phone and place them into the same folder as smali (should be android-sdk-windows\tools):
code.odex
ext.odex
framework.odex
android.policy.odex
There may be other ones needed that Im missing so if you find this out please let me know
3. place the odex you want to modify into the same folder (android-sdk-windows\tools)
4. from the command line type java -jar baksmali-1.2.3.jar -x services.odex
your pc will work a little bit and when its finished will just show your directory again.
5. minimize that screen and go into the folder you put everything in there should be an out folder. Open it up and all the files to edit will be there!
I haven't recompiled yet but when I do Ill finish this tutorial.
COMMON PROBLEMS:
These are some problems I ran into because I am a noob. I figure it may help a couple people out
1.unable to access apktool.jar/baksmali-1.2.3.jar
Im pretty sure you are in the wrong directory
from the command line type: cd C:\whatever\directory\leadsto\android-sdk-windows\tools\the.jarfileyouaretryingtoaccess
2....
Modification requests:
Custom boot screens-- find your startupshow folder=== SOLVED
custom response to invalid password
Ad hoc support
Disable slide lock
App drawer categorization=== THERE'S AN APP
map hardkeys
cool, gonna try and change the battery indicators
I was able to replace framework-res while the phone was running, but now the phone wont boot.. good thing I made a backup of the original one
xxsashixx said:
I was able to replace framework-res while the phone was running, but now the phone wont boot.. good thing I made a backup of the original one
Click to expand...
Click to collapse
Thats where I'm stuck too. Did you resign the package after modifying it? Im going to try that in a bit.
Does anyone know of a good n00b guide to emulating our phone in eclipse?
@microkiwi can you post how it went?
I did make some new icons in PS, but unfortunately I wasn't able to boot the phone after pushing my new files to it
I also tried to sign it with the autosign (testsign.java) application but no luck...
mikrokiwi said:
I did make some new icons in PS, but unfortunately I wasn't able to boot the phone after pushing my new files to it
I also tried to sign it with the autosign (testsign.java) application but no luck...
Click to expand...
Click to collapse
Cool thanks, hey have you seen an app called metamorph? I just noticed it right now but it seems like stericson automated and simplified the process. Heres a link
http://forum.xda-developers.com/showthread.php?t=591329
Have you tried that app yet?
Yes, I have made a metamorph theme now and everything seems fine, the theme shows up and I can apply it and everything.
But after reboot the phone is still using the old icons
Any other metamorph themes that we can install?
I think for 1.6 only
gavriel18 said:
http://code.google.com/p/android-apktool/ Looks cool I just wish I knew how to use it
Click to expand...
Click to collapse
Apktool is just for everything else but signing ;-)
mikrokiwi said:
Yes, I have made a metamorph theme now and everything seems fine, the theme shows up and I can apply it and everything.
But after reboot the phone is still using the old icons
Click to expand...
Click to collapse
Could you please upload the theme, I'd like to learn how theming works. In the AndroidThemes thread I found only themes for custom roms. THX !
mikrokiwi said:
Yes, I have made a metamorph theme now and everything seems fine, the theme shows up and I can apply it and everything.
But after reboot the phone is still using the old icons
Click to expand...
Click to collapse
Could you please post the .png files from the framework pull? I would like to change the colors and then try to replace them with files in a theme that I found that might work with our phone. The only issue is the resolution of the theme that I had in mind. If this works then we can all make custom themes for our X10 using that theme as a template. Not sure if it will work, but I would like to try.
pietropizzi said:
Could you please upload the theme, I'd like to learn how theming works. In the AndroidThemes thread I found only themes for custom roms. THX !
Click to expand...
Click to collapse
Unfortunately it does not work at the moment, but when I get it to work I will upload it for everyone to use
troyjamz said:
Could you please post the .png files from the framework pull? I would like to change the colors and then try to replace them with files in a theme that I found that might work with our phone. The only issue is the resolution of the theme that I had in mind. If this works then we can all make custom themes for our X10 using that theme as a template. Not sure if it will work, but I would like to try.
Click to expand...
Click to collapse
http://www.mediafire.com/file/kkmhmnyhgyw/framework-res.apk open it with 7zip
Thx man!
mikrokiwi said:
Unfortunately it does not work at the moment, but when I get it to work I will upload it for everyone to use
http://www.mediafire.com/file/kkmhmnyhgyw/framework-res.apk open it with 7zip
Click to expand...
Click to collapse
Tack så mycket!
@microkiwi Thanks for the upload, do you mind if I post that link in the first post?
@brut.all Does it work the same way as autosign? I followed the instructions properly on installing it but when I try to open it a command line pops up for a second (too fast for me to read) and then closes. Am I missing something?
Also do you know if framework-res.apk needs special signing? I'm just trying to figure out why the phone gets stuck at boot after pushing the modified apk.
@pietropizzi I have made one as well it doesn't work but I'll upload it right away. Check out the metamorph thread for some tutorials on theming. It is surprisingly easy.
On another note has anyone gotten to move their apps to the sdcard? I've tried but with no luck..
heres a post I made about it:
http://forum.xda-developers.com/showthread.php?p=7037044#post7037044
Cool ,I'm going to try it tonight. Mind if I add it to the list at the top?
BTW did anyone know mediascape supports wav audio Swwweeeeeetttt
It's not much, but I thought everyone should be able to theme their Framework
Requirements: WinZip(or any other zipping program), Android SDK, testsign, some graphics editor...
NOTE: This will work with theme apk's as well !!!
So what you need to start with is your framework files:
framework-res.apk, com.htc.resources.apk ... both are located in SYSTEM:framework/
These files are just renamed zip files, so rename them back to .zip and extract them (you can also edit them inside WINRAR or something, but it is more comfortable if you extract them)
In these, images are usually saved in res/drawable-mdpi or such, but you have to think here, allways modify all files from one resource
Now locate the images you want to edit but I only know how to edit .png files (.9.png files are for a different howto, probably not by me as I've never really mastered it)
Pick those you want to edit, and edit them (I'm not gonna tell you how here, I usually use photoshop to do that )
Once you have edited those images, it is recomended to optimize those png's (Firstly to make them smaller, but more importantly, most of the times the png's from Windows graphics editor didn't work for me...)
To optimize png's you can use:
OptiPNG: DOWNLOAD This one is drag'n'drop batch conversion capable...
Pngcrush: DOWNLOAD Command line utility, but it has more settings
...or something else, but I find these two the best
Once you have these optimized, copy and re-write them to folders you took them from to edit...
Now you need to zip these back, for framework files I was told it is usual to zip them as "store", but correct me someone if I'm wrong.
After you have zipped those, they will have to be re-signed. To do this, use testsign from code.google.com
Then run this in cmd line (or create a .bat file as I did, it's much easier):
Code:
java -classpath testsign.jar testsign [COLOR="DarkRed"]file.zip[/COLOR] [COLOR="DarkRed"]file-signed.zip[/COLOR]
Now that you have signed it, it is recomended to zipalign it:
(zipalign.exe is located in /tools in your SDK)
Run this in cmd line:
Code:
zipalign 4 [COLOR="DarkRed"]infile.zip[/COLOR] [COLOR="DarkRed"]outfile.zip[/COLOR]
(4 is alignment in bytes)
Now that you have aligned the .zip, rename it to the original name and then you just need to push it back to your phone:
Code:
adb shell mount /system
adb push [COLOR="DarkRed"]com.htc.resources.apk[/COLOR] /system/framework/[COLOR="DarkRed"]com.htc.resources.apk[/COLOR]
or
adb push [COLOR="DarkRed"]framework-res.apk[/COLOR] /system/framework/[COLOR="DarkRed"]framework-res.apk[/COLOR]
And you're done
I hope this helps someone! Enjoy!
note: This way you should be able to modify any apk I think
Very good.
Good initiative, thank you.
Lets hope that others will follow your example and contribute in this community,we need it.
Sent from my HTC Desire S using XDA Premium App
One question... can i change the framework if i'm s-on? And if yes how? flash it through recovery or how?
LE: Thx for the info. I found out how to edit themes... i will create a cool one to upload here. I could edit the framework.....but i am s-on so no use for that.
Unfortunately, when you're unrooted, you can't push files to your system...
But this will work for those Theme apk's too... so grab a theme you like and you can edit it as easily as you would your framework It has a limited potential, but it's something for you S-ON users
Hmm, I skipped the push part and copied the file back over the one in the phone. Now my phone is stuck in a continuous loop on the "quietly brilliant" screen.
Any help? Where do I get a stock rom to flash?
rogbese said:
Hmm, I skipped the push part and copied the file back over the one in the phone. Now my phone is stuck in a continuous loop on the "quietly brilliant" screen.
Any help? Where do I get a stock rom to flash?
Click to expand...
Click to collapse
Just enter recovery & factory reset,wipe, then wipe dev cache, then reflash your rom that you were using before the bootloop.
You can even swap icons in the framework of your rom then just flash (if you try to swap framework.apks or dialer.apks using a file manager you will delete or swap the file but this will cause loads or errors & force closes & then result in your bootloop!) Then just swap via a computer within the zip file then just flash in recovery as normal & if done right you wont get bootloops
Ok well I don't like the default Asus buttons so I decided to get this http://forum.xda-developers.com/showthread.php?t=1120014
That was on the stock rom. I just flashed the Revolver rom however and noticed the icons were back to normal so I went through the process in the link like before however this time my wallpaper disappeared along with the navbar. I looked in Root Explorer and SystemUI was only a couple of kbs in size so obviously it got corrupted. I kept trying this method with the same result.
How else could I go about getting those buttons? Do I have to mod the SystemUI file manually and put them in, if so, how?
EDIT: Solved it. For anyone else experiencing issues with Metamorph, check out ZipThemer.
I manually add them from the linux command line. You have to use the update command to add them to the zip/apk. Don't sign the new apk after adding them.
unzip -l SystemUI.apk - look in the res folders
zip -ur SystemUI.apk res/blah/blah
for that last line, I just have a res/ directory with all the files that I want to replace in the proper subdirectories.
Good luck! use zip --help or unzip --help if you get stuck.
I am trying to change an image in the com.htc.resource.apk, I do it just like framework-res.apk from this guild
HTML:
http://www.incredibleforum.com/forum/htc-incredible-themes/6020-%5Btutorial%5D-how-make-themes.html
However when I flash it, the OS boot loops, I wipe the data/cache before and after I flash the resource.apk. I am trying to change the default phone status bars to a black square(so it doesn't appear on the bar). Can anyone help me with this task?
P.S. I have tried goggled this topic but it routes me to framework-res.apk(which work great).
ravenboilinux said:
I am trying to change an image in the com.htc.resource.apk, I do it just like framework-res.apk from this guild
HTML:
http://www.incredibleforum.com/forum/htc-incredible-themes/6020-%5Btutorial%5D-how-make-themes.html
However when I flash it, the OS boot loops, I wipe the data/cache before and after I flash the resource.apk. I am trying to change the default phone status bars to a black square(so it doesn't appear on the bar). Can anyone help me with this task?
P.S. I have tried goggled this topic but it routes me to framework-res.apk(which work great).
Click to expand...
Click to collapse
Use 7zip instead of winzip or winrar. Note that some image files are not editable, i think they call then 9jpes or something. Should be as simple as pulling the apk from your current rom, opening the apk with 7zip drag the images you want to edit out, edit them, then drag and drop them back in. Make sure to ok 7zip to update the files once you drop them back in. Then push the apk back to the phone while in recovery.
How do you do push them back from recovery?
ravenboilinux said:
How do you do push them back from recovery?
Click to expand...
Click to collapse
Using adb. " adb push filename.apk /system/framework "