Ok this is a quick little guide. Decided not to put this in the notification text thread as that needs to be cleaned up anyway.
This is for modifying .xml's in say /values or wherever you want. This particular example is going to use /values/styles.xml
First up, decode your framework using apktool
** Make a backup! **
Code:
: adb pull /system/framework/framework-res.apk /sdcard/mytheme/backup.apk
: adb pull /system/framework/framework-res.apk C:\themes\mytheme.apk
: apktool d -f C:\themes\mytheme.apk C:\themes\mytheme\decoded\
Then open up the /res/values/styles.xml.
Find "<style name="Widget.Button" parent="@style/Widget">
Change the textcolor to #FFFF0000
This will make all buttons have a RED text color.
Click to expand...
Click to collapse
Now re-encode the file
Code:
:apktool b C:\themes\mytheme\decoded C:\themes\mytheme\encoded\mytheme-new.apk
Now, the simplest thing to do is to do the following:
- Open the original C:\themes\mytheme.apk with 7-zip
- Drag and drop the META-INF and AndroidManifest.xml File into a folder, like C:\themes\mytheme\signed
* Now you have a copy you can always use, and skip the above steps after doing it once *
- Open the new encoded mytheme-new.apk with 7-zip
- Drag and drop the META-INF and AndroidManifest.xml from the \signed directory
Click to expand...
Click to collapse
Code:
: adb push C:\themes\mytheme\encoded\mytheme-new.apk /sdcard/mytheme/framework-res.apk
: adb remount (if available for you!)
: adb shell
**Only if remount doesn't work.**
: mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system
: cp /sdcard/mytheme/framework-res.apk /system/framework/framework-res.apk
**Wait for the theme to apply, no need to reboot**
**If you Bootloop and stay in shell (which you should if you don't reboot)**
Click to expand...
Click to collapse
Code:
: cp /sdcard/mytheme/backup.apk /system/framework/framework-res.apk
**After this the bootloops should stop as your last stable framework is loaded**
Click to expand...
Click to collapse
That's it!
Questions? Comments? Leave em!
So, for instance, in the Vanilla Froyo theme for 2.1, where all of the text elements that should be a dark grey or black are white, this would allow me to change them?
Yep. Just a matter of figuring out which style controls what...that's next on my list to document lol. It's a LOT easier than trying to Hex Edit everything.
I'm really surprised this thread isn't exploding with questions, but I have to say great work, man!
I'm gonna wait it out until I know my way around the SDK a little more, but I really wanna dig through this and finish the Vanilla theme I'm using.
Thanks! I should make one big guide get it stickied and be fine with it lol. You can check out my vanilla theme fire an idea of what I've done.
Sent from my DROIDX using XDA App
Great tutorial man. I especially appreciate the part about not having to reboot. I wonder why everyone always says to do that for installing themes.
If you use apkmanager (which is a frontend for apktool) -- it automates some of the steps mentioned here. Its in the G1 development section as well as apktool.
Not work...
Very sad
After complete all steps, device not boot after LG lable longer.
Any ideas?
log cmd in process:
Code:
D:\Android\SDKTools\tools>apktool d -f C:\themes\mytheme.apk C:\themes\mytheme\decoded\
I: Loading resource table...
I: Decoding resources...
I: Copying assets and libs...
D:\Android\SDKTools\tools>apktool b C:\themes\mytheme\decoded C:\themes\mytheme\encoded\mytheme-new.apk
[B][COLOR="Red"]W: Could not find sources[/COLOR][/B]
I: Checking whether resources has changed...
I: Building resources...
I: Building apk file...
phimuskapsi said:
Thanks! I should make one big guide get it stickied and be fine with it lol. You can check out my vanilla theme fire an idea of what I've done.
Sent from my DROIDX using XDA App
Click to expand...
Click to collapse
Phim, you're the best! I have been searching for a simple guide like this, as I found one a while ago when theming, but lost the link. Thanks for all your contributions on here, they are greatly appreciated! If I have some questions on editing some xml files, can I shoot you a PM or two?
Sent from my DROIDX using XDA App
I am trying to edit the color of the text in the drop down notification bar for the text such as USB Connection.
Can someone please tell me which xml file and which portion needs to be edited?
The font color would most likely be in the styles.xml file (in the values folder). I don't know which line exactly but you can take too different color versions and compare the decompiled xml files with word or online and look for differences.
yawdapaah said:
The font color would most likely be in the styles.xml file (in the values folder). I don't know which line exactly but you can take too different color versions and compare the decompiled xml files with word or online and look for differences.
Click to expand...
Click to collapse
Yae, thanks for the info. I found it shortly after posting through trial and error. I think it was in one of the status_bar_latest*.xml
For some reason when I made the esit and recompiled my famework-res.apk I lost adb capabilities and usb-mode and had to revert to a nandroid.
Any ideas on what may have caused this? Only edited an xml file...
Sent from my DROIDX using XDA App
.apk on desktop (adp pull C: [??])
phimuskapsi said:
Ok this is a quick little guide. Decided not to put this in the notification text thread as that needs to be cleaned up anyway.
This is for modifying .xml's in say /values or wherever you want. This particular example is going to use /values/styles.xml
First up, decode your framework using apktool
** Make a backup! **
Code:
: adb pull /system/framework/framework-res.apk /sdcard/mytheme/backup.apk
: adb pull /system/framework/framework-res.apk C:\themes\mytheme.apk
: apktool d -f C:\themes\mytheme.apk C:\themes\mytheme\decoded\
Click to expand...
Click to collapse
Hi there, newbie here (but I've managed to decode all the java and xml, which is fully readable). Only thing I have left is this pesky "resources.arsc" file. I tried using both the xml way and java way, but neither worked, that's when I found your posting. Thanks so much for sharing btw!!
I haven't tried this yet because I'm confused about why you did not put a "C:" in the beginning of the file address to route the command to the folder on your sdcard which contains your .apk.
My .apk will be on my desktop, so, how should my command line look???
Thanks again, hope to here from you.
Ok, I managed to decode everything except resources.arsc. I imported package successfully into eclipse but I have errors. I looked through all XML, which is in English and good, except for the resources.arsc, which is not decoding by methods I'm familiar with. Your method will probably work but I need command prompt spelled out for me (sorry about that).
So, resources.arsc is located: desktop/space/resources.arsc. I'll play around with it an see what happens...
Related
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
Deprecated.
Deprecated.
Deprecated.
I must be missing something..but how do i get to the com/android/server/status?
backdown said:
I must be missing something..but how do i get to the com/android/server/status?
Click to expand...
Click to collapse
This reference assumes that you already know how to recompile a framework file using smali/baksmali.
You're my hero for this, steel.
Just saying.
This is something that has driven me straight up the wall. Having so many useless icons means that when I finally do get some notifications, they get pushed right off the edge. I really can only seem to fit ~4 notifications most of the time before I get the arrow.
Well I've got the necessary lines changed to take out the location icons... Now to repackage it. Thanks for this!
Uh... I've never signed a .jar before. Anyone???
EDIT: I attached the services.jar I edited. It has to be signed for the phone to even boot up. Hopefully someone can sign this.
This is hot... I like it a lot. I have been looking for something like this for quiet awhile. Now to read up on smali/baksmali. I know how to edit a .jar file but there are "files" within that file.... Great... But I have to learn at least one thing a day right. If anyone has insight for me feel free to enlighten us but google search will suffice for now.
webby_s said:
This is hot... I like it a lot. I have been looking for something like this for quiet awhile. Now to read up on smali/baksmali. I know how to edit a .jar file but there are "files" within that file.... Great... But I have to learn at least one thing a day right. If anyone has insight for me feel free to enlighten us but google search will suffice for now.
Click to expand...
Click to collapse
Start here: http://code.google.com/p/smali/.
Thank you very much for posting this. This has been something bothering me since I got the device.
I have no idea how to use these tools, but I will figure them out.
EDIT: Figured it out. The steps worked! My taskbar is so clean and beautiful now!
Here are some VERY BASIC directions. Use at your own risk. They worked for me.
Make a backup of your services.jar on your device (or alternatively make a nandroid backup): adb shell cp /system/framework/services.jar /system/framework/services.jar.bak
Get services.jar from your device: adb pull /system/framework/services.jar .
Extract classes.dex from services.jar
Decompile the .dex file: java -jar baksmali.jar classes.dex -o outputdir
Make desired edits to the files now in outputdir/
Recompile the .dex file: java -Xmx512M -jar smali.jar outputdir/ -o classes.dex
Add the new (modified) classes.dex file to the existing services.jar file (which is actually a zip file)
Cross your fingers and push services.jar back to your device: adb push services.jar /system/framework/services.jar
Reboot device: adb reboot
How about someone post two edited and signed files to share with everyone else...?
EVOme said:
How about someone post two edited and signed files to share with everyone else...?
Click to expand...
Click to collapse
I believe (please correct me if I'm wrong) the services.jar could be different in certain ROMs or themes. It's better to make the edits yourself on the file that came off your device to preserve the integrity of the rest of your system.
EDIT: What we need is an app that makes the edits on the device for us...
Thanks, Xak
EVOme said:
Thanks, Xak
Click to expand...
Click to collapse
Sure thing. By the way, I love (and concur with) your avatar
So, as usual, I made this a lot more complicated than it needs to be. Somehow I was un-signing services.jar. I don't know. I got it to work now though. WORD!
many thanks to xak and the OP. with your help i was easily able to get rid of that pesky gps on/off icon! i appreciate the tips
Nice, this made me learn smali/baksmali and edit services.jar according to what I want.
Thanks!
webby_s said:
This is hot... I like it a lot. I have been looking for something like this for quiet awhile. Now to read up on smali/baksmali. I know how to edit a .jar file but there are "files" within that file.... Great... But I have to learn at least one thing a day right. If anyone has insight for me feel free to enlighten us but google search will suffice for now.
Click to expand...
Click to collapse
Very useful information about services.jar, smali/baksmali, classes.dex can be found HERE
As someone else mentioned, they learned how to use smali/baksmali and do customizations themselves. My OP along with the link posted here gives you all the info you need to perform these mods yourself, and at the same time you will learn a great deal on customizing your evo; The benefits of which are endless!
One final note, you need to use the services.jar from the ROM you are running, THEY ARE NOT interchangeable due to the fact that almost all ROM devs add some customizations into their roms.
SteelH - thanks for posting this! I love learning new things, so this was interesting... wasn't exactly sure where to start though, so these steps from xak were a great help.
xak944 said:
Thank you very much for posting this. This has been something bothering me since I got the device.
I have no idea how to use these tools, but I will figure them out.
EDIT: Figured it out. The steps worked! My taskbar is so clean and beautiful now!
Here are some VERY BASIC directions. Use at your own risk. They worked for me.
Make a backup of your services.jar on your device (or alternatively make a nandroid backup): adb shell cp /system/framework/services.jar /system/framework/services.jar.bak
Get services.jar from your device: adb pull /system/framework/services.jar .
Extract classes.dex from services.jar
Decompile the .dex file: java -jar baksmali.jar classes.dex -o outputdir
Make desired edits to the files now in outputdir/
Recompile the .dex file: java -Xmx512M -jar smali.jar outputdir/ -o classes.dex
Add the new (modified) classes.dex file to the existing services.jar file (which is actually a zip file)
Cross your fingers and push services.jar back to your device: adb push services.jar /system/framework/services.jar
Reboot device: adb reboot
Click to expand...
Click to collapse
In addition to these steps, I wanted to mention a few things... these might be obvious to most, but hopefully they help someone.
- to extract and re-add classes.dex from/to services.jar, use winzip
- to modify the .smali files that Steel mentions, use notepad
- you will need to mount /system as read/write before you can push services.jar back to the phone
- it took a long time for my phone to reboot... i got pretty nervous
thanks again, I love not having the alarm and gps icons taking up space
Was searching the forums looking for a way to remove the clock from my status bar and have come to the conclusion it may be a little over my head at this point. Can make me a flashable zip to remove the clock? Or maybe some step by step instructions on how I would accomplish this? Thanks in advance.
Update 3/26---------------------------------------------------------------------------
JKILO is working on a flashable .zip for MikShift, so until then here's how you do it manually....
Instructions for removing status bar clock on an odex rom:
Props to JKILO and riggsandroid for helping a total noob and doing most of the work. Also thanks to Steelh for showing us the lines to replace. His method for deodex roms is here. If I forgot to add anyone that helped out, let me know. I always throw props where its deserved.
You are modding at your own risk. Nobody who helped bring this to you is responsible for bricked phones or temper-tantrums.
Requirements:
-Rooted Evo Shift
-Odex Rom
-Windows (I used Windows 7. If you are using another os, I'm sure you can figure it out. If not, ask)
-sdk properly set up
-smali\baksmali
-dexopt-wrapper
-knowledge of the above things (at least have the ability to google for info)
-a nandroid backup of your phone (for obvious reasons)
-patience
-/system mounted as r/w (I did this in terminal emulator from my phone: type:
"su" then hit enter. type: "mount -o rw,remount -t ext3 /dev/block/mmcblk0p26 /system" then hit enter)
First thing you need to do is pull services.jar from /system/framework;
-"adb pull /system/framework/services.jar"
Next you need to open up services.jar with 7zip or winrar or something similar
Pull classes.dex out into a working folder with smali\baksmali
(I just did everything in my platform-tools folder in sdk so I didnt have to switch back and forth. You can do it however you want.)
Open command prompt as administrator
Cd to your work folder
Type this line:
java -jar baksmali.jar classes.dex
This will will create a folder named out in your work folder
Navigate to \com\android\server\status and look for StatusBarPolicy.smali
Open StatusBarPolicy.smali with Notepad or something similar
Search for:
.line 593
invoke-direct {p0}, Lcom/android/server/status/StatusBarPolicy;->updateClock()V
Add the following line two spaces under that to look like this:
invoke-virtual {p2, v3, v6}, Lcom/android/server/status/StatusBarService;->setinvisibilty(Landroid/os/IBinder;Z)V
It should look like this now:
.line 593
invoke-direct {p0}, Lcom/android/server/status/StatusBarPolicy;->updateClock()V
invoke-virtual {p2, v3, v6}, Lcom/android/server/status/StatusBarService;->setinvisibilty(Landroid/os/IBinder;Z)V
Now click file then save as. Be sure to change the file type or youll save it as a text file that is useless to you.
Now head back to your command prompt.
still being cd'd to your work folder, type this:
java -jar smali.jar out
This will create a new .dex file named out.dex. Rename it to classes.dex and replace the classes.dex from services.jar with the new one you just made.
Now place the modified services.jar and dexopt-wrapper on your sdcard and plug your phone into your computer. (charge only)
Back to command prompt in your platform-tools directory
Type these commands in the order they appear, hitting enter after each one:
-adb shell
-cd /system/bin
-busybox cp /sdcard/dexopt-wrapper /system/bin
-busybox chmod 755 dexopt-wrapper
-cd /sdcard
-dexopt-wrapper services.jar new.odex /system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/com.htc.framework.jar:/system/framework/com.htc.android.pimlib.jar:/system/framework/com.htc.android.easopen.jar:/system/framework/com.scalado.util.ScaladoUtil.jar:/system/framework/com.orange.authentication.simcard.jar
- busybox dd if=/system/framework/services.odex of=new.odex bs=1 count=20 skip=52 seek=52 conv=notrunc
-cd /system/framework
-busybox cp /sdcard/new.odex services.odex
-busybox chmod 644 services.odex
-sync
-reboot
Your phone will reboot and, viola! NO Clock!!!!
bobtsunam said:
Was searching the forums looking for a way to remove the clock from my status bar and have come to the conclusion it may be a little over my head at this point. Can make me a flashable zip to remove the clock? Or maybe some step by step instructions on how I would accomplish this? Thanks in advance.
<Blaze One>
Click to expand...
Click to collapse
on page 2 of this forum.
http://forum.xda-developers.com/showthread.php?t=966190
riggsandroid said:
on page 2 of this forum.
http://forum.xda-developers.com/showthread.php?t=966190
Click to expand...
Click to collapse
Saw that one but I havent done anything to that extent before. Was really hoping someone had a zip out there I could flash. Oh well. Maybe in the future. Until then ill try my hand at compiling....
<Blaze One>
bobtsunam said:
Saw that one but I havent done anything to that extent before. Was really hoping someone had a zip out there I could flash. Oh well. Maybe in the future. Until then ill try my hand at compiling....
<Blaze One>
Click to expand...
Click to collapse
what rom are you on?
riggsandroid said:
what rom are you on?
Click to expand...
Click to collapse
Currently on infinite's 2.0.
<Blaze One>
So I'm still trying to figure this out. From what I read I need to edit system/framework/services/classes? How would I go about editing this?
<Blaze One>
bobtsunam said:
So I'm still trying to figure this out. From what I read I need to edit system/framework/services/classes? How would I go about editing this?
<Blaze One>
Click to expand...
Click to collapse
Download apktool - http://code.google.com/p/android-apktool/
Follow instructions to setup your machine (installing framework, etc)
Decompile the services.jar in the /system/framework folder
Edit the lines indicated in teh smali files and recompile.
Push updated services.jar to your phone, reboot (takes a while, has to rebuild dalvik cache) and you should be good to go.
Thanks. I'll attempt this when I get home. If/when I get this completed, is it possible to make a general .zip file for others to flash if they are interested in doing the same thing? I've seen the question posed on many forums but haven't found a file that can be flashed. Would be nice to have something everyone can benefit from...
Edit: I'm guessing its gonna be Rom specific?
bobtsunam said:
Thanks. I'll attempt this when I get home. If/when I get this completed, is it possible to make a general .zip file for others to flash if they are interested in doing the same thing? I've seen the question posed on many forums but haven't found a file that can be flashed. Would be nice to have something everyone can benefit from...
Edit: I'm guessing its gonna be Rom specific?
Click to expand...
Click to collapse
Definitely rom specific. Unique for themes as well, I believe.
Sent from my MikShift.
smoothtaste said:
Definitely rom specific. Unique for themes as well, I believe.
Sent from my MikShift.
Click to expand...
Click to collapse
Figured as much. Hopefully I will be able to pull this off. I have not done any programming related stuff on Android yet. Most I've done is change an icon or two but that was pretty simple using ninjamorph. I literally know nothing about the file structure or coding. Might he time to start learning java at least if I'm gonna get into modding to this extent. We shall see how all this goes later tonight.
<Blaze One>
I have been trying to rebuild services.jar after editing StatusBarPolicy.smali and for some reason it doesn't work. I get something to this extent:
Exception in thread "main" java.lang.NullPointerException
(and then a bunch of other lines...)
Any idea what's goin on?
By the way, I'm replacing this:
.line 593
invoke-direct {p0}, Lcom/android/server/status/StatusBarPolicy;->updateClock()V
With this:
.line 593
invoke-direct {p0}, Lcom/android/server/status/StatusBarPolicy;->updateClock()V
invoke-virtual {p2, v3, v6}, Lcom/android/server/status/StatusBarService;->setIconVisibility(Landroid/os/IBinder;Z)V
Does this look right?
Thanks for any help...
Ok....I noob'd it. When a saved the changes to the StatusBarPolicy file I saved it as a text file somehow. Was able to build services.jar and push it back but the changes didn't take or something. Clock is still there. Am I editing the right line with right changes?
bobtsunam said:
Ok....I noob'd it. When a saved the changes to the StatusBarPolicy file I saved it as a text file somehow. Was able to build services.jar and push it back but the changes didn't take or something. Clock is still there. Am I editing the right line with right changes?
Click to expand...
Click to collapse
Just want to make sure - you restarted? It will take a little while because it has to rebuild the Dalvik Cache cause you modified the .jar file.
Yeah I actually mounted /system from recovery and pushed back in from there. I even tried it a second time, formatting dalvik cache. Do I need to restart an additional time?
<Blaze One>
bobtsunam said:
Yeah I actually mounted /system from recovery and pushed back in from there. I even tried it a second time, formatting dalvik cache. Do I need to restart an additional time?
<Blaze One>
Click to expand...
Click to collapse
No that should work the way you're doing it. Not sure...
riggsandroid said:
No that should work the way you're doing it. Not sure...
Click to expand...
Click to collapse
Just remembered something I saw as services.jar was rebuilding. Right before it finished it said sources not found. Don't know if this gives a clue. Also I'm running dreads blue honeycomb theme. Would that have something to do with it?
<Blaze One>
Figured I would post the steps I took in case I'm messing it up somehow. I'm using Windows 7.
First thing I did was adb pull services.jar from /system/framework using: adb pull /system/framework/services.jar
Moved services.jar to a folder I created on the root of my c: drive called test.
Opened cmd as an administrator.
Decoded services.jar using : apktool d services.jar which created services.jar.out in my test folder.
Navigated to StatusBarPolicy.smali @ c:\test\services.jar.out\smali\com\Android\server\status
Edited the lines as stated previously.
Opened cmd back up and rebuilt with: apktool b -f -d services.jar.out which put the new services.jar in a new folder called build located in services.jar.out
Noticed at this point that the meta file wasn't in services.jar so I copied from the original to the new.
Then pushed back to phone while in recovery using: adb push services.jar /system/framework and booted.
See anything I'm doing wrong?
<Blaze One>
You don't need apktool to do that. Use smali.jar and baksmali.jar to decompile and recompile.
http://code.google.com/p/smali/
Download the two jar files under featured downloads. For ease of typing, rename them baksmali.jar and smali.jar, respectively, and put them in c:\. Open as archive with 7zip to pull the classes.dex file out. Move classes.dex to c:\. Open admin cmd prompt and type:
java -jar -Xmx512M baksmali.jar c:\classes.dex
This will dump classes.dex into a folder c:\out. Make your smali edit then to recompile the dex file type:
java -jar -Xmx512M smali.jar c:\out
This will produce c:\out.dex. Move the file to your Desktop, rename it classes.dex and put it back in your services.jar. Push the file in recovery, no need to clear dalvik cache and it should work. If it's still not working, link me your original services.jar and I'll try to get it working for you.
EDIT: btw, kudos to you for taking the initiative to learn this. I have much respect for that.
EDIT 2: Are you on 2.0 odexed or deodexed?
Sent from my PG06100 using Tapatalk
tambourineman86 said:
You don't need apktool to do that. Use smali.jar and baksmali.jar to decompile and recompile.
http://code.google.com/p/smali/
Download the two jar files under featured downloads. For ease of typing, rename them baksmali.jar and smali.jar, respectively, and put them in c:\. Open as archive with 7zip to pull the classes.dex file out. Move classes.dex to c:\. Open admin cmd prompt and type:
java -jar -Xmx512M baksmali.jar c:\classes.dex
This will dump classes.dex into a folder c:\out. Make your smali edit then to recompile the dex file type:
java -jar -Xmx512M smali.jar c:\out
This will produce c:\out.dex. Move the file to your Desktop, rename it classes.dex and put it back in your services.jar. Push the file in recovery, no need to clear dalvik cache and it should work. If it's still not working, link me your original services.jar and I'll try to get it working for you.
EDIT: btw, kudos to you for taking the initiative to learn this. I have much respect for that.
EDIT 2: Are you on 2.0 odexed or deodexed?
Sent from my PG06100 using Tapatalk
Click to expand...
Click to collapse
Its mikshift lol we've been tryin to figure it out together..so odexed
Sent from my PG06100 using XDA App
You know apktool uses small baksmali right?
i find it easier to use the same program for stuff - its nice that apktool does both .jar and .apk files.
tambourineman86 said:
You don't need apktool to do that. Use smali.jar and baksmali.jar to decompile and recompile.
http://code.google.com/p/smali/
Download the two jar files under featured downloads. For ease of typing, rename them baksmali.jar and smali.jar, respectively, and put them in c:\. Open as archive with 7zip to pull the classes.dex file out. Move classes.dex to c:\. Open admin cmd prompt and type:
java -jar -Xmx512M baksmali.jar c:\classes.dex
This will dump classes.dex into a folder c:\out. Make your smali edit then to recompile the dex file type:
java -jar -Xmx512M smali.jar c:\out
This will produce c:\out.dex. Move the file to your Desktop, rename it classes.dex and put it back in your services.jar. Push the file in recovery, no need to clear dalvik cache and it should work. If it's still not working, link me your original services.jar and I'll try to get it working for you.
EDIT: btw, kudos to you for taking the initiative to learn this. I have much respect for that.
EDIT 2: Are you on 2.0 odexed or deodexed?
Sent from my PG06100 using Tapatalk
Click to expand...
Click to collapse
Sent from my PG06100 using XDA App
With the number of ICS ROMs that are popping out, I imagine the majority of people are spending their time on ICS rather than Gingerbread or Froyo. With that in mind, here's a little guide on how to decompile ICS .apk and .jar files (such as the troublesome SystemUI.apk) with ease so that you can mod them to your heart's content. I assume this method will work for other versions of Android as well. Just so we understand each other, this just helps you decompile the classes.dex. If you want to decompile an entire app or jar file there are other guides for that.
NOTE: We will NOT be using ApkTool, Apk Manager, or StudioAndroid to do this. Mainly because I have had trouble in the past using those applications to decompile certain files. So, here is an ALL MANUAL way.
What you need:
Deodexed .apk/.jar file
smali.jar
baksmali.jar
7zip or Betterzip (whether you are on Mac, Linux, or Windows)
terminal/cmd (depending on what you're running)
You can get the smali.jar and baksmali.jar files from here: http://code.google.com/p/smali/downloads/list
Download these files:
Code:
baksmali-1.3.3.jar
smali-1.3.3.jar
and rename them to:
Code:
baksmali.jar
smali.jar
Now that you have both files, place them somewhere you'll remember (like a folder on your Desktop). For the purposes of this guide, my files will be in .../Desktop/ICS
Ready? Okay, here we go.
Open up your desired ICS .apk or .jar file with 7zip or Betterzip and extract the classes.dex and move it into the directory where you have baksmali.jar and smali.jar (For example, I move the classes.dex file to .../Desktop/ICS)
Open up terminal or cmd
cd to your directory
Example:
Code:
cd .../Desktop/ICS
Type the following:
Code:
java -jar baksmali.jar -o classout/ classes.dex
This will decompile the classes.dex file and create a folder inside .../Desktop/ICS called classout where all of your smali files will be located.
Go into the classout folder and make your smali edits
Compile your classout folder into new-classes.dex by typing this into terminal:
Code:
java -Xmx512M -jar smali.jar classout/ -o new-classes.dex
Rename new-classes.dex to classes.dex
Take your newly compiled classes.dex and put it into your ICS .apk or .jar using 7zip or Betterzip
Profit
Have fun :highfive:
Nice to have a write up on this in the Inc forums instead of having to hunt it down all the time. I've found it best to use smali and baksmali too, the apk aps were just too flaky for me.
kzoodroid said:
Nice to have a write up on this in the Inc forums instead of having to hunt it down all the time. I've found it best to use smali and baksmali too, the apk aps were just too flaky for me.
Click to expand...
Click to collapse
Yeah I've had similar experiences as well. This method was the only one that worked flawlessly for me. Hopefully it works for you and everyone else who needs to modify ICS files.
I've used it in GB to do some of the modifications to the status bar, like hide the clock. Took the better part of a day googling to actually find a write up on how to use baksmali and smali as I couldn't get apkTool or apkManager to decompile or compile classes.dex properly. Now I know where to find the instructions when I need them again.
thank you for this nice write up. It did really help me
Man you are just awesome for posting this, I have been googling how to decompile and recompile .apk's and .jar's for a couple of days and nothing has worked. This worked great the first time around and was very simple to follow. I just hope that once I am done making my editsI do not have any troubles re compiling the .jar I am working with lol.
You know it is so ironic that I found your guide here on XDA. It seems like everytime i want to learn how to do something like this I can google all day without much success on finding something that works. But when I do find something that works around 90% to 95% of the time it is here on XDA. You have got to love XDA...
T-Macgnolia said:
Man you are just awesome for posting this, I have been googling how to decompile and recompile .apk's and .jar's for a couple of days and nothing has worked. This worked great the first time around and was very simple to follow. I just hope that once I am done making my editsI do not have any troubles re compiling the .jar I am working with lol.
You know it is so ironic that I found your guide here on XDA. It seems like everytime i want to learn how to do something like this I can google all day without much success on finding something that works. But when I do find something that works around 90% to 95% of the time it is here on XDA. You have got to love XDA...
Click to expand...
Click to collapse
Yeah XDA does seem to be the go-to place for everything lol. Glad to know it worked for you
Note that you still need apktool in order to decompile/recompile XMLs and PNGs in apk files.
kong said:
Note that you still need apktool in order to decompile/recompile XMLs and PNGs in apk files.
Click to expand...
Click to collapse
Are there no other standalone command line tools for those tasks?
SifJar said:
Are there no other standalone command line tools for those tasks?
Click to expand...
Click to collapse
I would like to know that as well...
Wow, thank you very much. I'm going to have fun with this.
Sent from my Desire HD using xda premium
Thanks for the tutorial, I have successfully extracted the classes.dex but i cant seem to find where to add this code:http://forum.xda-developers.com/showpost.php?p=16485374&postcount=15 in the NotificationManagerService.smali file. I have even opened up a file that supposedly has the patch in it but could not locate it. A point in the right direction would be appreciated.
Great tutorial awesome work
Sent from my Galaxy Nexus using Tapatalk 2
i wan to edit samsungcamera.apk...
i can not find classes.dex inside this apk....
only got META_INF,res,AndroidManifes.xml and resources.arsc....
Have you decompiled it first?
Sent from my Galaxy Nexus using Tapatalk 2
Hey I made some changes in the AssetManager.smali and now I can't recompile. Getting this error Error: Unable to access jarfile smali.jar
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.RuntimeException: Cannot find file or directory "classout/"
at org.jf.smali.main.main(main.java:184)
didi1985 said:
i wan to edit samsungcamera.apk...
i can not find classes.dex inside this apk....
only got META_INF,res,AndroidManifes.xml and resources.arsc....
Click to expand...
Click to collapse
Is your rom deodexed?
Sent from my PantechP9070 using xda premium
Great guide easy to understand.
Thank you.
Reply To Thread
This is one of the best tutorial... Keep it up bro!
Help me, i can't edit .smali, because i don't understand smali,.
have any help?
like convet to java or any langgue ?
If you are not having problems compiling SystemUI.apk with no problems then this is not for you
WARNING:
You should not attempt to do this on a device that does not have a recovery, because if something goes wrong you may have to reinstall your rom (not very likely though). You should probably back up SystemUI.apk You should also have some experience modding and some experience using Apktool and Linux.
INTRO:
If your having problems modding SystemUI.apk on JB then this thread is just for you. I recently found out how to mod the Jelly Bean SystemUI. Jelly Bean has made it very difficult to mod. Yes it is still easy to replace images, but if you want to do some major changes to the UI such as a 100 percent battery mod or changing the status bar color then you will need to know exactly how to do it. For example, if you get the UI decompiled without errors and you recompile it without errors YOUR RECOMPILED SystemUI.apk WILL NOT WORK and your status bar will disappear etc... There is a special way to get everything working and I will show you how.
STEP 1:
LINUX>>
Before we start I recommend that you have File Roller: one of the most popular archive managers for Linux (Ubuntu comes with it). If your distribution uses a Debian package manager (most popular ones do) then all you have to do is go into the terminal and type:
Code:
sudo apt-get install file-roller
Now you will have File Roller. You also will need java installed. Check if you have java by typing:
Code:
java
in the terminal. If you dont have java and your using a Debian package manager then type:
Code:
sudo apt-get install openjdk-6-jre
or download from the java website and install it.
WINDOWS>>
Before we start, you will need 7zip and java. Just search and you will find the programs to install
STEP 2:
Now we will install APKTOOL. You may already have it installed BUT your version will probably not work. I have ran around the internet for a modified apktool that wont give you errors (If you follow my directions). I came across a great thread. check it out and download all the tools their (dont forget aapt) http://forum.xda-developers.com/showthread.php?t=1755243. If you are in Linux rename the jar file to apktool.jar and move the the jar plus aapt to /usr/local/bin. You will need root. If you are in Windows rename the jar to apktool.jar and move it and aapt to your WINDOWS directory. You also need zipalign http://powerpoint45.webs.com/android/zipalign(<Linux)( zipalign for windows:- ZIPALIGN )move it to your WINDOWS dir/bin dir. You need one more thing. It is from the apktool websitehttp://code.google.com/p/android-apktool/. According to your os download either apktool-install-linux-r04-brut1.tar.bz2 or apktool-install-windows-r04-brut1.tar.bz2. Extract the contents. You only need one file from the archive. In linux move apktool (not apktool.jar) to /usr/local/bin. In Windows move apktool.bat to your WINDOWS directory. Dont jump ahead and say "Now that I got apktool set up, I know what to do", because it gets a lot more difficult than you are used to using apktool.
STEP 3:
Now that you have apktool set up, you need to know how to mod SystemUI.apk. Get SystemUI.apk from /system/app within your device onto the computer. Now make a backup of SystemUI.apk on your computer because we will NEED it later. So you need two SystemUI.apk files on your computer. You could name one “backup” if you'd like. So now now we need to decompile the apk. Go into the terminal/cmd and cd/chdir into the directory you have SystemUI.apk. Now type
Code:
apktool if SystemUI.apk
It will then install frameworkneeded.Then type:
Code:
apktool d SystemUI.apk
It will decompile the apk. It will take a bit of time for it to fully decompile. The decompiled code will be in a folder in your current directory called SystemUI. If It had errors decompiling, (IT WILL FOR MOST NEXTUS 7 ROMS) you will need to install framework manually. Download framework here:http://db.tt/Rpc6zskQ and place the two APK files into apktool framework folder (replace the old framework files). In Linux it is located at /home/yourusername/apktool/framework and in windows it is something like C:\\Documents And Settings\yourusername\apktool\framework. After that delete the SystemUI folder that was made by the bad decompiling proccess and repeat the decompile command.
STEP 4:
This is the part where you start modding. You can make many customizations to the UI this way as you probably know. I will just show you how to make a 100 percent battery mod. You need to go into the decompile folder (SystemUI) using a file manager, Then from SystemUI, go delete res/drawable/stat_sys_battery.xml and replace it with http://powerpoint45.webs.com/android/stat_sys_battery.xml (to download that file right click on link and click something like "save link as"). Now you need to move to a new directory: /res. In that folder you need to look through all the directories that start with the word drawable. For example drawable-mdpi. There is one directory that your device uses for images but you may not know which one. Your device might be MDPI but use drawable-sw600dp from the UI instead of drawable-mdpi. So if you dont know or you want to be safe then search through the drawable folders and if their are any battery icons then remember you will need to add 100 battery icons to each one of the folders with battery icons. The battery icons are the ones named something like stat_sys_battery_0.png. So if you need to add 100 icons they need to be named in numerical order from stat_sys_battery_0.png to stat_sys_battery_100.png. Dont worry though, you wont need to rename 100 icons. Their ar many battery mods online that you can get them from, but I have some images you can download: http://powerpoint45.webs.com/android/BATTERY_BLUE.tar.gz. Download it, extract it and copy all the images into all the drawable folders that contain battery icons. Now your ready for compiling; The step that is different than how we have always done it before Jelly Bean existed. keep in mind that some images can not be changed or edited at all durring this step because it will result with many errors durring compiling. You would have to add images to the archive after its compiled
STEP 5:
Like I said at the end of step 4, this step will be different than you have seen before. This is also the step where you will be using File Roller/7zip. To build the apk make sure you are in the terminal in the directory where SystemUI exists and type:
Code:
apktool b SystemUI almostdone.apk
almostdone.apk is the output file. Once it is done building you need to open the backup apk you made at the beginning with File Roller /7zip. Also open almostdone.apk with File Roller/7zip. From inside the backup.apk drag meta-inf folder & androidmanifest.xml to allmostdone.apk. Now all you need to do is zipalign the apk. Lets say your backup apk is named backup.apk. Go into the terminal at the directory you are working
in and type
Code:
zipalign -v 4 allmostdone.apk done.apk
This will optimize the apk. The output is done.apk.
STEP6:
Now you install the apk. Their are many meathods of installing the apk, here are a couple. Transfer done.apk to your device and rename it to SystemUI.apk. Now use a root browser or terminal app to replace the other SystemUI.apk on your system at /system/app. And make sure you give it the same permissions as all the other apk's in the system/app directory. Then reboot. Or you could make a flashable zip to install it.
Here is something I did:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Nice guide OP! Thanks!
Josepho1997 said:
Thanks. Even though I've known this for weeks because of you(thanks for helping me, btw). Just one thing. Why is it
Code:
sudo apt-get install openjdk-6-jre
Instead of
Code:
sudo apt-get install openjdk-7-jre
Click to expand...
Click to collapse
Just because a lot of distros including debian do not have jdk7 in their repository. But if its in your repository you can get jdk 7
Sent from my Amazon Kindle Fire using xda app-developers app
powerpoint45 said:
Just because a lot of distros including debian do not have jdk7 in their repository. But if its in your repository you can get jdk 7
Sent from my Amazon Kindle Fire using xda app-developers app
Click to expand...
Click to collapse
ok.
Thanks. Will try it.
midi_1996 said:
Thanks. Will try it.
Click to expand...
Click to collapse
Cool, tell me how it goes
Sent from my Amazon Kindle Fire using xda app-developers app
Updated op to work with nextus 7 roms
Sent from my Amazon Kindle Fire using xda app-developers app
Hi,
I tried doing exactly as you said, but when I copy the apk to system/app, the the is no jelly bean icon as on the stock systemui.apk, and my system ui crashed.
I followed your guide exactly.
Can someone please tell me what I have done wrong.
I was making a circle battery mod for the first n7.
I will upload the apk I made in a second when I go on my pc.
Thanks in advance
Cheers
Corey
Sent from my Nexus 7 using xda premium
fishingfon said:
Hi,
I tried doing exactly as you said, but when I copy the apk to system/app, the the is no jelly bean icon as on the stock systemui.apk, and my system ui crashed.
I followed your guide exactly.
Can someone please tell me what I have done wrong.
I was making a circle battery mod for the first n7.
I will upload the apk I made in a second when I go on my pc.
Thanks in advance
Cheers
Corey
Sent from my Nexus 7 using xda premium
Click to expand...
Click to collapse
here is the apk
fishingfon said:
Hi,
I tried doing exactly as you said, but when I copy the apk to system/app, the the is no jelly bean icon as on the stock systemui.apk, and my system ui crashed.
I followed your guide exactly.
Can someone please tell me what I have done wrong.
I was making a circle battery mod for the first n7.
I will upload the apk I made in a second when I go on my pc.
Thanks in advance
Cheers
Corey
Sent from my Nexus 7 using xda premium
Click to expand...
Click to collapse
Ok, did you change permissions of SystemUI.apk after you moved it to system/app. Also, sometimes it crashes due to a small misteak. Sometimes that happens to me, and when I completely redo it it works. Another thing, are you making a battery mod?
Sent from my Amazon Kindle Fire using xda app-developers app
powerpoint45 said:
Ok, did you change permissions of SystemUI.apk after you moved it to system/app. Also, sometimes it crashes due to a small misteak. Sometimes that happens to me, and when I completely redo it it works. Another thing, are you making a battery mod?
Sent from my Amazon Kindle Fire using xda app-developers app
Click to expand...
Click to collapse
Hi,
I had forgotten to reset the permissions.
The system ui now does not crash anymore.
But now I have a new problem.
The battery icons no longer appear in the status bar, the is no battery icon there at all now.
Do the icons have to be a certain resolution to work? If so, do u know what res the have to be?
I hav, attached a screen, as you can see, the icons no longer show.
Thanks again
Cheers
Corey
Sent from my Nexus 7 using xda premium
fishingfon said:
Hi,
I had forgotten to reset the permissions.
The system ui now does not crash anymore.
But now I have a new problem.
The battery icons no longer appear in the status bar, the is no battery icon there at all now.
Do the icons have to be a certain resolution to work? If so, do u know what res the have to be?
I hav, attached a screen, as you can see, the icons no longer show.
Thanks again
Cheers
Corey
Sent from my Nexus 7 using xda premium
Click to expand...
Click to collapse
Did u drag resources.arsc classes.dex and res/drawable/stat_sys_battery.xml to the origional apk after it compiled. No it doesnt realy need to be a certain resolution. Oh also did u zipalign
Sent from my Amazon Kindle Fire using xda app-developers app
powerpoint45 said:
Did u drag resources.arsc classes.dex and res/drawable/stat_sys_battery.xml to the origional apk after it compiled. No it doesnt realy need to be a certain resolution. Oh also did u zipalign
Sent from my Amazon Kindle Fire using xda app-developers app
Click to expand...
Click to collapse
Hi,
i managed to get it working.
i think you made a small mistake in your guide lol.
you said this:
almostdone.apk is the output file. Once it is done building you need to open the backup apk you made at the beginning with File Roller /7zip. Also open almostdone.apk with File Roller/7zip. From inside the backup apk drag resources.arsc and classes.dex to the root of almostdone.apk and it will replace resources.arsc that is in the apk. You are almost done. From inside almostdone.apk drag the res folder into the backup apk(file roller sometimes has problems moving a whole folder so make sure that the size is updated and the edited images are moved). Now all you need to do is zipalign the apk. Lets say your backup apk is named backup.apk. Go into the terminal at the directory you are working in and type
Where as it should have been:
almostdone.apk is the output file. Once it is done building you need to open the backup apk you made at the beginning with File Roller /7zip. Also open almostdone.apk with File Roller/7zip. From inside the almostdone.apk drag resources.arsc and classes.dex to the root of backup.apk and it will replace resources.arsc that is in the apk. You are almost done. From inside almostdone.apk drag the res folder into the backup apk(file roller sometimes has problems moving a whole folder so make sure that the size is updated and the edited images are moved). Now all you need to do is zipalign the apk. Lets say your backup apk is named backup.apk. Go into the terminal at the directory you are working
in and type
Sorry for all my noobish qustions
Cheers
Corey
fishingfon said:
Hi,
i managed to get it working.
i think you made a small mistake in your guide lol.
you said this:
almostdone.apk is the output file. Once it is done building you need to open the backup apk you made at the beginning with File Roller /7zip. Also open almostdone.apk with File Roller/7zip. From inside the backup apk drag resources.arsc and classes.dex to the root of almostdone.apk and it will replace resources.arsc that is in the apk. You are almost done. From inside almostdone.apk drag the res folder into the backup apk(file roller sometimes has problems moving a whole folder so make sure that the size is updated and the edited images are moved). Now all you need to do is zipalign the apk. Lets say your backup apk is named backup.apk. Go into the terminal at the directory you are working in and type
Where as it should have been:
almostdone.apk is the output file. Once it is done building you need to open the backup apk you made at the beginning with File Roller /7zip. Also open almostdone.apk with File Roller/7zip. From inside the almostdone.apk drag resources.arsc and classes.dex to the root of backup.apk and it will replace resources.arsc that is in the apk. You are almost done. From inside almostdone.apk drag the res folder into the backup apk(file roller sometimes has problems moving a whole folder so make sure that the size is updated and the edited images are moved). Now all you need to do is zipalign the apk. Lets say your backup apk is named backup.apk. Go into the terminal at the directory you are working
in and type
Sorry for all my noobish qustions
Cheers
Corey
Click to expand...
Click to collapse
Oh. God Thank you for pointing that out. Fixed op.Appreciate it. I just got mixed up wich is wich lol
Sent from my Amazon Kindle Fire using xda app-developers app
you do know you kinda have this backwards and to be fair rather confusing
i dont know why you mess around copying all classes&resources&res from your almostdone.apk
the way i used to do it when theming for the htc hero system apps was
do your mods
apktool b SystemUI almostdone.apk
then open your SystemUIbackup.apk & copy the meta-inf folder & androidmanifest.xml
inject them into your almostdone.apk
zipalign -v 4 almostdone.apk SystemUI.apk
adb remount
adb push SystemUI.apk /system/app/
adb reboot
has always worked for me
seems miles easier than copying the hundreds of files in all the other folders
bagofcrap24 said:
you do know you kinda have this backwards and to be fair rather confusing
i dont know why you mess around copying all classes&resources&res from your almostdone.apk
the way i used to do it when theming for the htc hero system apps was
do your mods
apktool b SystemUI almostdone.apk
then open your SystemUIbackup.apk & copy the meta-inf folder & androidmanifest.xml
inject them into your almostdone.apk
zipalign -v 4 almostdone.apk SystemUI.apk
adb remount
adb push SystemUI.apk /system/app/
adb reboot
has always worked for me
seems miles easier than copying the hundreds of files in all the other folders
Click to expand...
Click to collapse
I'll look into it once im back from vacation.That will probably work and make it less confusing
Sent from my Galaxy Nexus using xda app-developers app
powerpoint45 said:
I'll look into it once im back from vacation.That will probably work and make it less confusing
Sent from my Galaxy Nexus using xda app-developers app
Click to expand...
Click to collapse
The link for framework is broken. Any new link?
vaibhav palande said:
The link for framework is broken. Any new link?
Click to expand...
Click to collapse
Ok thanks. Ill fix it. Here is a link. http://db.tt/Rpc6zskQ
Sent from my Galaxy Nexus using xda app-developers app
I am getting error while recompiling theme chooser theme.. Here is the log:
PHP:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
c:\4nec2>apktool b 12345 done.apk
I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
c:\4nec2\12345\res\values\styles.xml:98: error: Error retrieving parent for item
: No resource found that matches the given name '@android:style/TextAppearance.S
tatusBar'.
c:\4nec2\12345\res\values\styles.xml:99: error: Error retrieving parent for item
: No resource found that matches the given name '@android:style/TextAppearance.S
tatusBar'.
c:\4nec2\12345\res\values\styles.xml:119: error: Error retrieving parent for ite
m: No resource found that matches the given name '@android:style/TextAppearance.
StatusBar.Ticker'.
c:\4nec2\12345\res\values\styles.xml:123: error: Error retrieving parent for ite
m: No resource found that matches the given name '@android:style/TextAppearance.
StatusBar'.
Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutExce
ption: could not exec command: [aapt, p, -F, C:\Users\Vaibhav\AppData\Local\Temp
\APKTOOL7356544712132047658.tmp, -x, -I, C:\Users\Vaibhav\apktool\framework\1.ap
k, -S, c:\4nec2\12345\res, -M, c:\4nec2\12345\AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav
a:251)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:325)
at brut.androlib.Androlib.buildResources(Androlib.java:270)
at brut.androlib.Androlib.build(Androlib.java:193)
at brut.androlib.Androlib.build(Androlib.java:175)
at brut.apktool.Main.cmdBuild(Main.java:182)
at brut.apktool.Main.main(Main.java:67)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\U
sers\Vaibhav\AppData\Local\Temp\APKTOOL7356544712132047658.tmp, -x, -I, C:\Users
\Vaibhav\apktool\framework\1.apk, -S, c:\4nec2\12345\res, -M, c:\4nec2\12345\And
roidManifest.xml]
at brut.util.OS.exec(OS.java:83)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.jav
a:249)
... 6 more
c:\4nec2>
While decompiling it worked perfectly but recompiling got stuck. Any solution?
---------- Post added at 11:53 PM ---------- Previous post was at 11:38 PM ----------
EDIT: IT WORKED WITH NEW FRAMEWORK FILES. THANX FOR THE NEW LINK:good::good::good: