| || |
[Experimental] Battery-Mod-Automator [Updated]
[Update] I've started to test this on themes, and some are causing problems. When decompiling theme frameworks, I'm finding some have missing images, others have corrupt images that can't be extracted or opened, some have out-of-range resource ID's that were manually added in, etc. It's a bit of a mess.
I added in a prompt at the end of my program asking if you want to proceed to push the new framework back to your phone. If along the way, you saw a big list of errors scroll up the screen, choose no. If everything looked clean, go ahead and choose yes.
I'm going to leave my program up because it seems to work perfectly on stock and properly assembled frameworks, but not so much on ones that have been hacked to hell and back. As I have time, I'll try to figure out how to work around the issues giving it trouble.
Ok, if any brave souls want to play Guinea Pig, here's what I've come up with...
The problem: With the plethora of different roms and themes, each with their own features, each being updated constantly, it's impossible to provide individual frameworks with my battery mod for each possible combination. Well, technically, it's not impossible, but I do have a life!
The solution: A simple program that will automate adding my icons to your current framework, whatever it may be. Whatever rom and/or theme you have, this will pull your current framework-res.apk file off your phone, decompile it, add my icons, recompile it and push it back to your phone. Since this is applied on top of your current framework, it should avoid conflicts where some things get reverted back to stock.
The issues: On some roms, I've noticed the wallpaper gets reverted to that beach scene, and sometimes the current Google account is lost. In both cases, it's pretty simple to reset your wallpaper and re-add your Google account. Not sure why these things happen, but again, they're easy to fix.
So far, I've tested this on stock EB01, EB01 SuperClean versions 2.2, 2.3 and 2.4 and Blackhole 4.1... and it works perfectly with the exception of the above issues. Shutdown menus don't break, everything seems to work. Will it work on other roms and/or with other themes? It should, but you'll just have to give it a try.
Is this dangerous? Of course it is! Not really, the first thing this does is make a backup of your existing framework-res.apk that can be restored should it ultimately not work. If it doesn't work, just run the program again, choose the option for restoring your framework and it'll send the backup back to your phone. That said, I would still highly recommend having a full nandroid backup at the ready.
What do I need? Since this is a DOS bat program, you'll obviously need to be running Windows. XP, Vista, Win7, it shouldn't matter. And since some of the tools the bat file calls are Java programs, you'll need the Java Runtime Environment which you can download here. (You only need the Runtime Environment (JRE), not the full JDK). To check if you might already have Java, just open up a command prompt and type "java". If you get a screen of usage details, chances are you're good to go. You'll also need the Samsung drivers loaded up and working, but you probably already have them.
The bonus: If you don't like my icons, just replace them with your own, re-run the program and it'll add them to your framework. Just put your icons in /modfiles/png and make sure they're properly referenced in the xml files located in /modfiles/xml. If you just replace all of my icons with your own, you won't need to touch the xml files, but if you want to change the animations, the xml files will need to be updated accordingly. Just take a look at what's there, it should be fairly obvious how these xml's work.
So how does it work? Unzip the attached file (make sure directory structure remains intact) and run ModMyBattery.bat. Make sure your phone is rebooted into Clockwork Recovery and that your /system is mounted. To check, go into "mounts and storage" and make sure the first option reads "unmount /system" (indicating that it's currently mounted). The menu in my program should be self explanatory.
So, cross your fingers and give it a whirl. Again, it seems to work on the roms I've used it on, but there's no guarantees something in some other rom or theme might cause problems. I've had to make certain assumptions about the configuration of the framework and while I think I covered the bases, I have no way of knowing until it's tested more broadly. If it doesn't work, let me know what rom and theme you're using and I'll see if I can update the program to work with them.
So again, this is highly experimental and I'll honestly be amazed if it works without a hitch on a majority of roms, but it's worth a shot. Also, while I haven't tried it on other versions beside EB01, I don't see why it would have any problems with DL30 or even older versions. Keep in mind, however, something was broken in pre-FroYo that prevented the display of charging icons in 1% increments.
And just to say it again, a current, full nandroid backup is highly recommended! If it doesn't work, restore your backup (either your backup framework with this program or your full nandroid backup), try to let me know where it went wrong, but I make no guarantees I'll be able to get it to work in all cases.
Did I mention this was highly experimental? No? Well it is!
Here's the program: