I've seen it asked quite a few times now, so I thought I would share how I've been creating my own themes for the Nook. This is a quick and dirty guide as I've almost got it down to a science for quick, keyboard shortcut, theming.
Things you'll need
Photoshop or The Gimp for editing files
Android SDK so you can push and pull files to/from the Nook.
draw9patch app in the Android SDK /tools folder for creating 9.png files
APK Manager (http://forum.xda-developers.com/showpost.php?p=6703735&postcount=1)
Notepad++ or some other text editor for editing XML files. After using Notepad++ on this, I'd highly recommend it though
An attention span
Some restraint
This is a rather good guide that helped me get started. My only complaint is that it is almost to complicated and includes more information than what is needed for a basic theme.
http://forum.xda-developers.com/showthread.php?t=916814
Getting Started:
Download the Android SDK and get it installed.
Download APK Manager
ADB pull /system/framework/framework-res.apk
Make a copy of the framework-res.apk files as a back-up in case you need to revert
Copy the framework-res.apk file to the /place-apk-here-for-modding folder under the APK Manager folder
Launch the APK Manager Script.bat file
Type in 22 to select the default project
Type in the number next to framework-res.apk in the list to select it as your project
Select 1 to extract the files
Select 9 to decompile (this is what makes the XML files readable)
Go to the /projects/framework-res/res folder under the APK Manager folder to view all the files from the theme
Images are located in the /drawable-mdpi folder. XML files are located throughout, but the files specific to layout are under the /layout folder. To change global settings, such as color codes and strings, edit the XML files under the /values folder.
Creating custom PNG files: If you are using Photoshop, use the Save For Web feature when saving. Save the image as PNG-24. Select None under the Matte option. Select None under Metadata.
A word on 9.png files: 9.png files are files that can be stretched by the OS. There is a 1 pixel border all the way around the image. In that 1 pixel border, you'll notice solid black lines here and there. The black pixels indicate which portions of the image are to be stretched. You can add this border and the black pixels in Gimp or Photoshop, or you can open the file the draw9patch app under the Android SDK /tools folder. The draw9patch app will actually display how the image will look when stretched as you add the black pixels around the border, so it can come in handy and it's what I prefer to use. You can open and edit .9.png files in draw9patch and edit the border even after you save the file.
Once you have all your files edited, recompile the APK package with APK Manager
Option 11
y
y
It will tell you to delete the files under the /keep folder that you have edited. Delete any images and XML files, from the /keep folder, you edited under the /projects folder. If you edited XML files, delete the /keep/res/resources.arsc file as well
Press any key to continue and let the script finish
In a separate command line window, mount your Nook's /system folder (adb shell mount -o remount,rw /dev/block/mmcblk1p2 /system)
back in APK Manager, select 8
/system/framework/framework-res.apk
Reboot your Nook
Boot Loop: If you messed something up and are stuck in a boot loop, most of the time you can still mount your Nook, push the original framework-res.apk to it and reboot. Or, you can use an unedited version of the CWM flashable zip file from the link below.
NOTE: it is not smart to push your framework-res.apk file to the Nook. I've learned the hard way that you can only do this about 10 times before you run out of memory and can no longer boot your Nook until you reflash Froyo again.
I'd recommend only a few flashes on a bare bones copy of Froyo until you feel comfortable with working on the framework theme. After that, I'm attaching a base, flashable zip for you to use in CWM so you can flash the theme instead of pushing. This will prevent you from getting stuck in a boot loop (unless you do something wrong yourself).
To add your framework-res.apk file to the zip, just open the zip and replace the /system/framework/framework-res.apk file (I'd recommend 7zip).
A Few Goodies
I'm including all of the PSD files I use to edit and create themes. If you want to create your own, custom theme, these will get you started. The only downside to these PSD files is that they are at the MDPI scale. If you want to create an HDPI theme, you'll need to increase the sizes.
Link to PSD files for creating your own theme, plus the flashable CWM zip file:
http://jjis.me/android-theme-templates
Hey man, I know you theme the froyo roms, but Im attempting a theme for the Phiremod CM7 and I cant seem to get anything but splash hangs and bootloops. I theme CM7 for the hero so I know my way around that, but Im wondering if theres something about the Nook that I have to do differently. For instance what is the mount.sh file you have in the tools folder on your themes? Is that only for froyo? Any help you could give me would be appreciated.
PMDColeslaw said:
Hey man, I know you theme the froyo roms, but Im attempting a theme for the Phiremod CM7 and I cant seem to get anything but splash hangs and bootloops. I theme CM7 for the hero so I know my way around that, but Im wondering if theres something about the Nook that I have to do differently. For instance what is the mount.sh file you have in the tools folder on your themes? Is that only for froyo? Any help you could give me would be appreciated.
Click to expand...
Click to collapse
CM7 is a little different than the stock builds of Froyo and others. They use the theme manager for it. If you are looking to theme for CM7, I'd suggest learning what it is needed to package it for the theme manager. I spent about an hour one day trying to find documentation, but couldn't. If can, or have it, please let me know where to find it so I can link to it and use it myself.
With that said, it appears that CWM does not flash, or at least mount, the same on the Nook. I'm assuming it's because it's on the external SD card and not internal. The mount.sh file was borrowed from samuelhaff's flashable ROMs. It actually tells CWM to mount the internal memory and flash to it.
If you are flashing without the mount.sh, it could be why you're getting the boot loops.
CWM uses edify language instead of amend. Again, it took me forever to find little to no documentation on it.
If you are using the mount.sh file and you are still getting stuck in a boot loop, I did discover a little issue with it yesterday. I was trying to use it to flash my new theme without the Vending.apk mod and I kept getting stuck in a black screen during start up. I forgot my edify code deletes the Vending.apk file so that was causing my problem. If you know how to edit the file, go for it. If not, I'm planning on updating it to correct this. If you need to, for now, just copy the Vending.apk to your flashable zip file.
It deletes the services.jar file as well. This was a requirement on Froyo since the status bar text is black by default. The services.jar file has to be edited to change the status bar text to white. Since CM7 does not need that change, try pushing just the framework-res.apk file, reboot and see if you boot successfully. If so, that is more than likely your problem.
wretchedlocket said:
CM7 is a little different than the stock builds of Froyo and others. They use the theme manager for it. If you are looking to theme for CM7, I'd suggest learning what it is needed to package it for the theme manager. I spent about an hour one day trying to find documentation, but couldn't. If can, or have it, please let me know where to find it so I can link to it and use it myself.
With that said, it appears that CWM does not flash, or at least mount, the same on the Nook. I'm assuming it's because it's on the external SD card and not internal. The mount.sh file was borrowed from samuelhaff's flashable ROMs. It actually tells CWM to mount the internal memory and flash to it.
If you are flashing without the mount.sh, it could be why you're getting the boot loops.
CWM uses edify language instead of amend. Again, it took me forever to find little to no documentation on it.
If you are using the mount.sh file and you are still getting stuck in a boot loop, I did discover a little issue with it yesterday. I was trying to use it to flash my new theme without the Vending.apk mod and I kept getting stuck in a black screen during start up. I forgot my edify code deletes the Vending.apk file so that was causing my problem. If you know how to edit the file, go for it. If not, I'm planning on updating it to correct this. If you need to, for now, just copy the Vending.apk to your flashable zip file.
It deletes the services.jar file as well. This was a requirement on Froyo since the status bar text is black by default. The services.jar file has to be edited to change the status bar text to white. Since CM7 does not need that change, try pushing just the framework-res.apk file, reboot and see if you boot successfully. If so, that is more than likely your problem.
Click to expand...
Click to collapse
Thanks for the reply! I actually took yours apart and was able to correct my script and I noticed that the delete services.jar line was causing issues as well. If you can I'd like you to take a look at the updater script after I edited it and see if you see any errors. It's attached below. I have gotten the framework and other themed apps to flash fine, but for some reason the themed market will not install. After flash it is in the /system/app folder as vending.apk. but it doesn't actually replace the stock market anywhere else. I actually spent several hours today trying to get the market back because I got frustrated and went all delete happy in root explorer, lol.
As far as Theme Chooser goes, here is a decent tutorial, but I haven't taken the time to really try and change my whole MO to use it. I theme the aospCMod for the heroc without using the chooser app. You can also get some good tips on building themes for the chooser in the #aospbot irc channel. A few of the guys in there build themes for it.
View attachment updater-script.zip
PMDColeslaw said:
Thanks for the reply! I actually took yours apart and was able to correct my script and I noticed that the delete services.jar line was causing issues as well. If you can I'd like you to take a look at the updater script after I edited it and see if you see any errors. It's attached below. I have gotten the framework and other themed apps to flash fine, but for some reason the themed market will not install. After flash it is in the /system/app folder as vending.apk. but it doesn't actually replace the stock market anywhere else. I actually spent several hours today trying to get the market back because I got frustrated and went all delete happy in root explorer, lol.
As far as Theme Chooser goes, here is a decent tutorial, but I haven't taken the time to really try and change my whole MO to use it. I theme the aospCMod for the heroc without using the chooser app. You can also get some good tips on building themes for the chooser in the #aospbot irc channel. A few of the guys in there build themes for it.
View attachment 546902
Click to expand...
Click to collapse
Stupid question, but you are copying the vending file as Vending.apk and not vending.apk, correct?
Also, if you're using my themed market, there are only two icons that are customized. The rest looks stock.
Sent from my SAMSUNG-SGH-I897 using Tapatalk
wretchedlocket said:
Stupid question, but you are copying the vending file as Vending.apk and not vending.apk, correct?
Also, if you're using my themed market, there are only two icons that are customized. The rest looks stock.
Sent from my SAMSUNG-SGH-I897 using Tapatalk
Click to expand...
Click to collapse
Yeah the file is Vending.apk but its my themed market.
Sent from my NookColor using Tapatalk
PMDColeslaw said:
Yeah the file is Vending.apk but its my themed market.
Sent from my NookColor using Tapatalk
Click to expand...
Click to collapse
Sorry for the delay in response. I had too many things to do with the family yesterday.
If you haven't got this working yet, I'd suggest trying to start with removing just the /system/app/Vendind.apk file via the updater-script. If it works, then go back in and add each additional line until you run into problems again. At that point, you'll know what your problem is.
Since everything else (framework-res.apk, services.jar, etc.) gets replaced successfully, leave those lines alone. I'd just start with the basics of replacing the Vending.apk first and then work your way back up from there.
Hi. I just wanted to write a guide on modifying apks. You probably have seen my rom in the ported section.
(I'll make the guide look better when I get home)
Well lets get started.
1.
First. An introduction to what an apk is. An apk is (believe it or not) a zip of files.
2.
So how do you go about editing a zip? I suggest using 7z on your computer or root explorer on your phone.
Second: there are a lot of apks you can edit but for this guide I'll be using the systemui.apk that you find in any rom in the system/app folder.
3.
Ok. So assuming you start with the system ui apk your going to need to extract the apk with 7z on your computer. (or root explorer on your phone. Es file should work also)
4.
Now you should have a new folder where you chose to extract your apk. Open that folder. Your going to see a bunch of files. What your probably going to be interested in is the res folder. Go into that folder and find the drawable hdpi folder. Open it.
Your going to see a lot of icons. Here is where you can change things like wifi icons. You can add 4g icons and so much more. Even edit what your contacts look like.
5.
This is an important step. Make sure your using the system ui apk from the rom your currently on or make sure its compatible with yoir rom.
Ok so now we get to the things like icon changes. Download a theme you've been dying for but couldn't get because it was either for another rom or phone. And the only thing you wanted was a few things from the theme.
Now extract that zip. Then extract the systemui.apk again from the zip you want your icons to look like. MAKE SURE YOU RENAME THE THE SYSTEM UI TO SOMETHING DIFFERENT SO YOU DON'T MIX THEM UP.
6.
So now that you got the system ui apk with whatever you want to use all you need to do is go into the drawable hdpi of the one with the icons you want in it. Copy them and bring them to your roms stock system ui and replace them.
7.
Thats about it. Now zip your roms stock system ui back up and change the ending to .apk. Then put it in system/apps and replace it. Reboot. And boom. Your modded apk is ready.
Hit thanks if I helped.
for step three rename the. apk to .zip its easier
This can only be used for replacing regular images in the APK. There are many images that are .9 images which require decompiling.
There are MANY guides across xda that go into detail and show you the proper way to modify APK's..... There is much more then images.
This one is even in this forum: http://forum.xda-developers.com/showthread.php?t=1388459
Hello,
I own a ZTE Crescent- Rooted/CWM recovery running CM7.
I was messing around with using CM9 and I like it but it isn't up for the kind of usage I'd like to use it for so I went back to CM7. One thing I really liked about CM9 was the pattern lock dots- On ICS they are a lot thinner and look slicker, whilst on GB they are thick and bulky and I dislike them.
So my question is; Would it be possible to flash a zip in CWM to change the pattern lock dots on my device? Or any other method?
Thanks,
Curtis.
It's certainly possible. You need to edit framework-res.apk. Within the apk, the images you want to edit I think are in /res/drawable-hdpi/(possibly in other drawable-XXXX folders as well). You need to edit/replace the following files I believe:
btn_code_lock_default.png
btn_code_lock_touched.png
indicator_code_lock_drag_direction_green_up.png
indicator_code_lock_drag_direction_red_up.png
indicator_code_lock_point_area_default.png
indicator_code_lock_point_area_green.png
indicator_code_lock_point_area_red.png
Not completely sure, you might be able to do it fairly easily with UOT Kitchen: http://uot.dakra.lt/kitchen/ (I can't check now as the kitchen is full, so I'm not sure if it supports theming the unlock pattern or not). If not, you can use apktool to unpack the APK, then edit the images you want changed, then repack it with apktool.
The other option is to use MetaMorph. It's an app you install on your phone for theming. Then download a lock pattern theme like this one: http://droidpirate.com/2011/01/15/metamorph-lock-pattern-liberty/, unzip it and replace the images inside with your own, then re-zip and use MetaMorph to install it. (Probably simpler than using apktool to manually edit the APK).
Thanks for the reply, I appreciate it!
I've gone with the metamorph option, seems much easier to do and I've used it once or twice in the past so I have a general idea on how to use it!
Thanks again
I couldn't find a theme for what I wanted- None even came close for Metamorph, so I decided to try and make my own. Unfortunately; I'm now stuck.
I copied the files you mentioned from the CM9 rom to the CM7 framework apk. I have the original CM7 framework app with the new icons in and a zip version of the framework with the files also in there. Now what should I do?
If anyone with more experience wants to take over then here are the files.
APK:
https://docs.google.com/open?id=0B5IQUxhoTn2XVVJiek01OGRNek0
ZIP:
https://docs.google.com/open?id=0B5IQUxhoTn2XWnRGVDhIdzRsa0k
I'd say the easiest way is to grab the metamorph theme I linked above, unzip it and replace the images inside with the ones you took from CM9. Then zip it back up and install using metamorph.
Trying it now, phone has just rebooted, time to check lock screen.
Edit-
Nothing has changed.
Hmm. I have no idea then, sorry.
Hola guys. To all of you. Particularly the ones who are familiar with MIUI. I will just stick to the point. If you ARE familiar with miui then you must have come across those flashy themes. You must also have found out the way to bypass the infamous theme policy WSM tools and Xposed and all. But I recently started taking interest in those flashy themes. You know that once you download a theme from the default Themes app the mtz file starts getting downloaded and as soon as the downloading has finished it gets unpacked into bits (com.android.contacts, com.miui.home, icons, lock_wallpaper, locksreen and so on) and gets copied to the MIUI folder in main storage and again into data/system/theme. This is the first problem. I can't copy the whole mtz file to a safe place because it gets unpacked as soon as it has been downloaded which is basically a zip file containing several other zip files that is, the 'bits' I was talking about. Second thing. the default themes app does not recognize mtz files downloaded from the official miui themes website. It declares them as third party themes. What I did was, took some of those 'bits' and replaced some XML files inside them and some png elements and put them back into data/system/theme. But miui has a way to prevent this from happening. As soon as it detects a modified file present in data/system/theme it reverts back to the default plain theme by deleting all files from data/system/theme. My guess is it keeps checking out verifying in regular intervals the checksums that it must have generated earlier. The same thing happens if I just replace a bit in the mentioned directory with a bit from another theme. So my questions are:
1. Is there a way to preserve the mtz file downloaded from within the default Themes app as a whole mtz file?
2. Can I make changes to just the Themes app so that it would apply any mtz file?
3. Is there a way to prevent miui from continuously checking or verifying the checksums that it has generated? (just a guess but I reckon thats what it actually does) because for an hour or so after replacing or modifying the 'bits' everything works fine but the reverting process takes place in an hour or so.
Thats all folks! jk. Any help or suggestion would be really appreciated because I think a thread like this was long since needed here. And dont talk about visiting MIUI's official forums. Most of the guys there don't know half the things that is really worth discussing. Thank you guys.
note- dont want to use WSM tools nor can I find one for miui7.
note2- if I change the permissions of the folder (data/system/theme) to 444 allowing READ permissions only, the phone would just reboot without warning and continue to reboot until the permissions are changed back to normal (755).
come on guys. seriously? not a single guy on XDA who has ever come across this problem?
Hola guys. To all of you. Particularly the ones who are familiar with MIUI. I will just stick to the point. If you ARE familiar with miui then you must have come across those flashy themes. You must also have found out the way to bypass the infamous theme policy WSM tools and Xposed and all. But I recently started taking interest in those flashy themes. You know that once you download a theme from the default Themes app the mtz file starts getting downloaded and as soon as the downloading has finished it gets unpacked into bits (com.android.contacts, com.miui.home, icons, lock_wallpaper, locksreen and so on) and gets copied to the MIUI folder in main storage and again into data/system/theme. This is the first problem. I can't copy the whole mtz file to a safe place because it gets unpacked as soon as it has been downloaded which is basically a zip file containing several other zip files that is, the 'bits' I was talking about. Second thing. the default themes app does not recognize mtz files downloaded from the official miui themes website. It declares them as third party themes. What I did was, took some of those 'bits' and replaced some XML files inside them and some png elements and put them back into data/system/theme. But miui has a way to prevent this from happening. As soon as it detects a modified file present in data/system/theme it reverts back to the default plain theme by deleting all files from data/system/theme. My guess is it keeps checking out verifying in regular intervals the checksums that it must have generated earlier. The same thing happens if I just replace a bit in the mentioned directory with a bit from another theme. So my questions are:
1. Is there a way to preserve the mtz file downloaded from within the default Themes app as a whole mtz file?
2. Can I make changes to just the Themes app so that it would apply any mtz file?
3. Is there a way to prevent miui from continuously checking or verifying the checksums that it has generated? (just a guess but I reckon thats what it actually does) because for an hour or so after replacing or modifying the 'bits' everything works fine but the reverting process takes place in an hour or so.
Thats all folks! jk. Any help or suggestion would be really appreciated because I think a thread like this was long since needed here. And dont talk about visiting MIUI's official forums. Most of the guys there don't know half the things that is really worth discussing. Thank you guys.
note- dont want to use WSM tools nor can I find one for miui7.
note2- if I change the permissions of the folder (data/system/theme) to 444 allowing READ permissions only, the phone would just reboot without warning and continue to reboot until the permissions are changed back to normal (755).
seriously guys. no one?
I'm right now at your point.
I want to modify some files or overwrite some files in "data/system/theme" and after a while the theme manager applies the original miui theme .
Does someone have any solution to this?
Damntoosleepy did you get any solution?
Xiaomi doesnt let global phones use unapproved icons, themes, fonts etc. If you changed any of these you will be reverted to default. Only way to design your theme or apply one is becomming a designer in miui website(theres tut at gearbest.com). Or you can adjust your current one in themes \app bottom right corner\ click button/ customize theme. You can mix things there. Take icons from one theme, bg or font from another one and so on. But the themes you must have downloaded from approved miui themes app. I had issue when 3rd party icon pack caused me this problem on a approved theme from miui themes app. Then i changed the pack through the miui themes app and problem solved
Any solution?