hey
Ive got a good idea for an app.
Ive just worked out how to change the background of the status bar menu thing as per this pic:
http://i39.tinypic.com/35lgbnt.png
Its really untidy yes but still.
The way I did this was by modifying some png files before I compiled from AOSP.
I have since worked out that I can do it by manipulating the apk file in file roller (linux zip util). just by replacing the pic in the archive. My problem is, I could probably work out how to extract then repack the apk in my app, but that doesnt work. What I need to do is replace the file without extracting and repacking.
Some help would be amazing. Python is my native language and the way java is layed out is just blowing my mind! haha
Cheers
Alex
Related
Ok, maybe I'm going a little overboard here, but I jailbroke the phone just yesterday. I thought that it was time to see what all I would be able to do with it. So i got to looking around trying to figure out what I could skin. /system/app/Launcher.apk provided what i needed to redo the app bar. Here are my results.
I didn't do any modification to the xml files yet. I would like to get where I can edit the images out of those files as well. I removed the up/down arrows, but it was more of a replace with a 1x1px png. you get errors if the files are not put back with the right names or if files are missing. So I'm sure in the xml you would be able to edit it out.
One last thing. There really isn't much space on the /system mount. even when coping the file back up after repacking, I would ofter get not enough space on disk error. Trying again resulted in a success.
How about something else. I am not the best artist or graphics person. I'm sure that my files are larger then they should be. I had to do a 255 index on the color to get the image files down small enough. I'm sure with proper programming on my part, I wouldn't need the bar image, just the tux image. /shrug. I'm tired and going to be.
Enjoy.
Impressive. What does it look like with the apps menu expanded?
Oh, and how do you take screenshots?
It looks like it would noramally but with a tux on it instead of the grey bar. I will have to gt another image up.
The program to take screen shots is ddms (i think). It is in the tools directory of the sdk. Sorry, I just woke up for work.. not much sleep. But I do know if you are running linux it has to be on a 32bit os. It wouldn't run on my 64bit ubuntu.
a question I received
kron2 said:
can you help me i am new to linux and would like to edit some off the images in the app folder on the G1 my phone is jailbroke and i have the files to resign the apk's but don't no how to use them i no how to remove the files from the phone and edit them with rar. and thin i put the files back and rename the file apk but don't no how to resign it i have the emulator and ddms plus eclipse working i would think i resign it after i edit it but don't no where to put the files or how to use signapk.jar thx for your help
Click to expand...
Click to collapse
I don't know how much help I can be with the jar tool. I can tell you what I did though.
I used adb to get the /system/app/Launcher.apk file. The I extracted the file. So now I have the .apk file and a folder with all of the files in it. I then copied the .apk file to make a backup of it, just in case I needed to push it to the device.
Ok now I am set to do the editing of the files. I use Linux so I started gimp up editing an image. Then saved the image, keeping it the same size (56x295 - something like that) as the previous file. The files size (k/mb) will change. You need to keep this as small as you can.
I then started up Archive Manager, I think that you said that you use winrar or something. You might want to try 7zip, not sure though. Onward. I opened the .apk with the archive manager. The allowed me not to have repack the archive. I then dragged and dropped the edited .png file into the same folder I edited it from, into the same folder browsing though the archive manager. This did nothing more than update the .apk archive with the edited file.
then I pushed the file back to the droid. I hit the end button to turn the screen off and then menu x2 to get into the interface again. This refreshed the interface. and my edits were there.
That is about it. I'm going to copy and paste this reply in the forum so others will benefit from your question.
I'm trying to edit a few things but I'm not sure how to go about repackaging them as .apk even though I know they're archives. If I open the archive and extract everything how should I go about putting it back together? Is it as simple as throwing it in a .zip file, renaming it to .apk and signing it or am I missing something? I tried doing that with Rosie.apk because it has a lot of wallpapers I won't ever use and I wanted to throw some of my ringtones into it too.
Dyonas said:
I'm trying to edit a few things but I'm not sure how to go about repackaging them as .apk even though I know they're archives. If I open the archive and extract everything how should I go about putting it back together? Is it as simple as throwing it in a .zip file, renaming it to .apk and signing it or am I missing something? I tried doing that with Rosie.apk because it has a lot of wallpapers I won't ever use and I wanted to throw some of my ringtones into it too.
Click to expand...
Click to collapse
there is already another thread somewhere farther down about this, but in short, you need to resign. Stericson did a one-click signing tool, but I was never able to get it working on my machine. I use the same tools, but I have to do the manual sign option, it is still easy, it just uses one more click.
As far as repacking rosie.apk, you should just be able to locate the .png and small.png files you want to replace. Find your new wallpapers, rename them to the names of the wallpapers you want replace. (you will need to resize your 480x320 wallpapers to the small wallpaper dimensions, they are 80x60. easiest way to resize is in MS paint or Gimp. once you rename just drag the files into the open winrar window. For rosie i think wallpapers are in the drawable 480x320 folder. When winrar brings up a prompt, just make sure you have the options selected to add and overwrite existing files or something of the like. It is also a good idea to adb pull your Rosie.apk just in case things go bad you can push a backup to revert you to where you were before. If you got any questions send me a PM or hit me on gtalk- [email protected]
Dyonas said:
I'm trying to edit a few things but I'm not sure how to go about repackaging them as .apk even though I know they're archives. If I open the archive and extract everything how should I go about putting it back together? Is it as simple as throwing it in a .zip file, renaming it to .apk and signing it or am I missing something? I tried doing that with Rosie.apk because it has a lot of wallpapers I won't ever use and I wanted to throw some of my ringtones into it too.
Click to expand...
Click to collapse
You can open Rosie.apk with something like winrar and replace the images without the need to resign. I've done it countless times. There's not much point in removing wallpapers in Rosie though, it will just reduce the size of the apk without any noticeable speed improvment. Most Hero devs use the stock Rosie apk.
As for ringtones, they don't reside in Rosie.apk. You can put them on your FAT32 (or EXT if you have one). Just put the mp3's in /media/audio/ringtones. I highly suggest putting them on ext because when the SD card is mounted in your computer your phone can't access the ringtones. Ext isn't mounted (on windows atleast) so they are still accessible.
Thanks guys, I seem to have it almost done now with this and what I stumbled through
I managed to somehow stumble through a few minor edits in the Launcher.apk by relying purely on colour replacement tools but that was messy and I tried to be more accurate and do something that works and looks how I want. Unfortunately it doesn't seem to matter what I do now on any .apk PNGs they don't work. I resign them when I'm done, push to my phone and nada. It either fails to load or half loads then throws up a ton of acore FCs so clearly I'm doing something wrong. Perhaps someone here can point out what I'm doing wrong if I list what I do.
unzip .apk and find image to edit.
Pull image into Photoshop
Change image as needed / wanted
Save file (I haven't touched any .9s yet)
zip the lot back up, rename to .apk and sign
Push file back to phone, reboot.
I've tried pushing the file while in recovery and while it's been running, neither makes a difference and I have little enough hair without resorting to pull it out :| I did just notice in another thread where Ted mentions using Paint.NET to pry open those damned indexed files. I'm going to look at that but earlier if it was indexed I ended up opening it then manually cleaning it up before making sure it was indexed when I saved it again.
That's about it. If anyone can offer insight into the cause I'd be most appreciative
try not resigning individual apks (system apks). After you edit them, zip them back up. put them back into the update.zip that it came from and resign the update.zip and reflash. that should work.
Yeah what I do is unpack the theme/ROM with the .apk I want to edit. Then I unpack the .apk, go into the folder and edit the images I need, then zip the contents of the folder back into a .apk (make sure you zip the contents, not the folder they are in) and replace the current .apk with mine. Then I re-zip the theme/ROM and resign it. it's a long and arduous process, but it works
i use 7-zip, extract the folders i want to edit from the archive, delete all of the .xml's out of it (since they can break something between versions sometimes) then edit my images, go back to the .zip or .apk file (7-zip will open either extension) go to the folder with the images i edited, then drag my images into it.
i never actually never unzip an entire zip or apk and rezip it when i am done. it is rather quick and easy. just make sure that you click ok when it ask you to update the archive.
david1171 said:
i use 7-zip, extract the folders i want to edit from the archive, delete all of the .xml's out of it (since they can break something between versions sometimes) then edit my images, go back to the .zip or .apk file (7-zip will open either extension) go to the folder with the images i edited, then drag my images into it.
i never actually never unzip an entire zip or apk and rezip it when i am done. it is rather quick and easy. just make sure that you click ok when it ask you to update the archive.
Click to expand...
Click to collapse
Hes got the solution..........its the way ive done it from day 1, and 7-zip FTW.
brandenk said:
Hes got the solution..........its the way ive done it from day 1, and 7-zip FTW.
Click to expand...
Click to collapse
well i got it from a certain post you made on how you made themed quickly and easily
Thanks for all the replies I've been a fan of 7-zip for a while, glad to see I'm not alone there! From the sound of it all the re-signing might be the cause so I'll give the method david suggested a whirl!
Are there any major things to avoid? For example, I noticed a lot of the icons don't take the full size of the image like the 3G notification icon or the satellite notification icon. Is it safe to go the full size or will that cause a horrible mess? I don't quite see why the images have so much space around them basically and want to use some of those extra pixels lol
Hey about using metamorph bud? much easier to do then what your doing
Check it out.
www.RelentlessAddictions.com/android
http://forum.xda-developers.com/showthread.php?t=589315
Stericson
If your on windows, its simpler not to unzip the .apk or .zip. Since the begining, there have been problems with the way windows zips files. It seems the way Linux and windows zips files are some what different. There may lie your problem. Simply drag the folder on to your desktop, edit the pngs, then drag the folder back on to the .apk inside the .zip. I also agree with the above statements. Sign the whole zip as one instead of each one independably. You can also erase any apk or jar archive not being editing to make your update smaller and faster to load...
Also, most .apk's are universal, meaning they can be used in any rom. Some are not! Meaning they will break the system. Examples are framework, launcher...
Stericson said:
Hey about using metamorph bud? much easier to do then what your doing
Check it out.
www.RelentlessAddictions.com/android
http://forum.xda-developers.com/showthread.php?t=589315
Stericson
Click to expand...
Click to collapse
I thought about it for simple recolours but this is me trying to teach myself what works and what doesn't before I attempt to make myself a theme. I'm still going to have a look at metamorph though so thanks for the links Stericson.
Quick edit to note that using Paint.NET to change lots of bits in framework-res.apk worked Now I can have a little rest before I tackle things like Launcher and others. Out of all the programs to open indexed PNGs I would've thought Photoshop would do it. I only own Elements but the trial version of CS4 still opened them as corrupt. Strange stuff!
Ive been working on a custom theme for MIUI for a while now and I just finished it but everytime I try to load it up on my droid it just puts me on the default theme. Help/Suggestions?
No one has any helpful advice?
Yes, that has been happening to me too, but that is when I try to go from scratch. There are two things I can think of right now that could be stopping that: You are on a mac and you used the built-in archive, and you didn't use astro to delete the MACOSX_. Folder, or you don't have update scripts or code that you need.
You're right about the mac. So how do I get rid of the MACOSX folder?
Scratch that. Just found it. Trying to load the theme now....
And still same default theme.
Actually I might have just found the problem. When I compressed the folder it put the actual theme folder INSIDE the .zip file instead of putting the contents in the .zip file.
ok... status_bar_close_on_cust.9.png
i believe i have followed all the guides i have seen correctly. sorry. i've been stuck on this for almost 4 hours.
i opened the apk in 7zip, exported the image.
removed the 9 from the file name
edited the png in PS
opened draw9patch,
added the full bottom and right side lines.
added the 2 dots i need on top and made the leftside work after eclipse failure
did the eclipse project thing
pulled new status_bar_close_on_cust.9.png from the eclipse created apk
opened framework-res.apk in 7zip again
i tried both..
- deleting the original image and then adding the new to the archive
- drag-drop the new image thus replacing the original
resign the rom's zip
when i install on system i get the bootloop with each loop getting shorter.
i have tried converting framework-res.apk to a zip, resigning it, and then back to an apk
i know this is a much descussed subject on this forum and all the other's i googled looking for the missing step or something i'm doing wrong
i have tried apkmanager, apktools, shorter suggested methods i've seen, and full drawn out methods.
i dont know if i'm messing something up in the png edit, the draw9patch, eclipse, signing or not the apk, or somewhere else.
i've tried pulling a logcat/boot.log from the device but i get some sort of error. i dont know if it's not creating one or i'm trying to pull it from the wrong place.
i'm sure a ton of you guys have had this happen to you. please offer some advice
Do you get an error when importing into eclipse? If so what does it say?
im sorry shoulda clarified that. originally i failed to put the patches on the left side. it failed when trying to make the apk. put thos there and the apk was created. my proplem is with the framework-res.apk i guess.
i put it back in the rom, sign it, and boot-loops.
i guess it has something to do with adding the image to the framework-res.apk. apparently it doesnt like the new image, so to speak. i have tried finding out how to re-build the framework-res.apk, to no avail. hell, i may be using the wrong terminology when searching. at this point, i have no idea.
If i change any images i use metamorph, free from the market. You dont need to sign and flash full apk's, just the files that need changing, a lot quicker and easier.
You could create your ***.9.png as a full size png and remove the 9 patch data, eg. instead of having a 5x32.9png make it 320x32.png(depending on your resolution).
In fact come to think of it ive never seen the "status_bar_close_on_cust.9.png" on my screen, just "status_bar_close_on.9.png".
EDIT: If you've used apktool or other to decompile, crop the the edges by 1 pixel each side, this will remove the 9 patch data, edit your image, then use your draw9 tool, and recompile with eclipse.
You may have been adding another 1 pixel 9patch border to the already existing 9patch border, hope that makes sense.
this is the custom pull down notification bar in gingerfly-1.7.0 based on cm6.1 i believe with some gingerbread looks.
This is how I do it:
1. Extract image from framework-res.akp. You can right click on the framework > 7-zip > open archive and extract the image this way or just extract the whole apk.
2. Edit the image. Open the image in Photoshop and do what you want. Don't worry if you don't have the border. Save the image as a .png file.
3.Add the border. Open draw9patch and add the image. A border for the dots should be created automatically so just do what you need to do and save it as the same file name. It should automatically change the file type to .9.png.
4. Compile the image.9.png. Download the file attached. In the zip, you should see a file called 'xUltimate-d9pc' and a folder called 'Original'. Put the image into the folder 'drawable inside 'res' inside 'Original'. Then open the file named 'xUltimate-d9pc' and wait. When it has finished, there should be a new folder and inside should be the compiled image.
5. Replace the image in framework. Right click framework-res.apk > 7-zip > open archive. Drag the new image into the framework, make sure you have the same file name. You shouldn't need to sign it.
Now you should have a framework-res.apk working with no problem.
I'm not sure if it will work for a custom rom as I use the framework-res.apk from my X10
Hope this helps.
that worked! thanks much!!! the one step i did add to this is to re-sign the rom. i have had nothing but problems anytime i have not signed it after making any changes. it may be an un-needed step, but it worked. thanks again!!!
Can I bump this real quick?
This is my first post here and I'm sorry if I shouldn't bump this thread but my problem is closely related and I hope someone out there knows what I'm doing wrong.
First things first, I'm using the EVO, that's probably important information.
I just flashed Warm Z TwoPointTwo and I love it, except... I really want the vanilla lockscreen. No problem, right? Just rename or delete HtcLockScreen.apk and you're good to go.
That works, and the vanilla lock screen appears upon hot reboot, but the images aren't right; they are all transparent in Warm Z. I have been trying basically all day to get the stock images back into framework-res.apk and nothing has worked; I bootloop every time.
The images are jog_tab_* except that the images in MY framework-res.apk have for example jog_tab_bar_left_end_confirm_gray.png (for all of the left and right end confirm images), whereas the AOSP framework-res.apk has 9patches for all of those.
I've tried deleting the jog_tab_* images in mine and placing in the ones from AOSP, I've tried placing the AOSP images in alongside the ones already in my copy, but nothing works.
I've tried apktool, apk manager, xultimate... I've read about 25 xda threads on this and tried every new suggestion. It bootloops no matter what I do. I think I'm missing something.
I've done the 7zip replacement without re-signing, I've re-signed, I've done xultimate with compression 0, and I've tried creating my own metamorphs. Something about Warm Z is conflicting with the vanilla images, but I'm too inexperienced in themes and the Android OS to know what's up.
Perhaps Warm Z changes definitions elsewhere as to which images are used, or perhaps something else isn't lining up properly with the vanilla lockscreen code. I hope someone out there knows what on earth I'm talking about.