Define Widgets in Custom ROMS - Android Q&A, Help & Troubleshooting

Hi guys,
how can i define which widgets are placed on the screen after flash with a new custom rom directly in the rom without manual work after flash ?
Greats Hawkeye

I have been wondering the same thing. I intentionally removed everything except a couple of widgets from my home screen and dug around /data to see what I could come up with.
"/data/system/appwidgets.xml" looks promising:
Code:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<gs>
<p pkg="com.android.protips" cl="com.android.protips.ProtipWidget" />
<p pkg="com.android.settings" cl="com.android.settings.widget.SettingsAppWidgetProvider" />
<h pkg="com.android.launcher" id="400" />
<g id="5" h="0" p="1" />
<g id="6" h="0" p="0" />
</gs>
"id=5" and "id=6" may be the order of when the widgets were added to my home screen. I did this just after a wipe and restore, so these very well could have been the 5th and 6th widgets I added.
"h=0" could be my main home screen.
"p=0" and "p=1" could be the order of how the widgets are displayed. power is above protips.
Can anybody verify what I'm reading in this XML file is correct?
Could it be as simple as including this file? I'll have to give it a try in a little while. I'm about to do some remodeling in my kitchen. I'm going to install the latest nightly of ubuntu 10.10 to see if it works better with my wifi card.

Were you able to figure it out yet? I have not had any time lately to mess around with my phone at all. I'll try to see what I can do out over the weekend.

I have been wondering this since I started cooking! I have searched high and low and not found nada..
One side note: if you open your rom and look in /system/customize/cid, you can look through those xml files, and depending on your carrier/rom setup, you can set things like what footprints shows, and define the stock flashed home background, lock background, and browser favorites

Awesome info. I'll have to take a look at those files.
I added "/data/system/appwidgets.xml" to a rom and it just made my boot animatin go on forever. Maybe I did something wrong, I'm not sure. I was modifying a CM6 rom, so I altered my updater-script to copy the file to /data. I dig up my code and paste it later, but if anyone has the best way to include files in /data for update-script or updater-script, feel free to post it.

I have not been customizing any roms in awhile, did anybody successfully set the default widgets yet?

Look here:
1) /system/customize/MNS/default.xml (Sense ROMs)
2) inside Launcher.apk - res/xml/default_workspace.xml (AOSP ROMs)
Launcher2.apk seems to be setup the same. You might want to use something like APK Manager to decompile the apk, so you can edit the xml. Or, I believe you can use a hex editor although I have not tried that yet. TinyHexer is a good one for Windows.

Awesome, thanks for the info. I'll have to give it a try soon.

DieHappy said:
Awesome, thanks for the info. I'll have to give it a try soon.
Click to expand...
Click to collapse
gnarlyc said:
Look here:
1) /system/customize/MNS/default.xml (Sense ROMs)
2) inside Launcher.apk - res/xml/default_workspace.xml (AOSP ROMs)
Launcher2.apk seems to be setup the same. You might want to use something like APK Manager to decompile the apk, so you can edit the xml. Or, I believe you can use a hex editor although I have not tried that yet. TinyHexer is a good one for Windows.
Click to expand...
Click to collapse
the default.xml is not compiled by default, so you can just use notepad to edit it.
I have tried editing it but without much success.

hexskrew said:
the default.xml is not compiled by default, so you can just use notepad to edit it.
I have tried editing it but without much success.
Click to expand...
Click to collapse
Hmm. Ok. Must be that some are and some aren't. I just opened up a Launcher2.apk from Froyo AOSP, and the default_workspace.xml is compiled. And I looked at a Launcher.apk from a mostly AOSP Eclair build. It's compiled too. If you find them that aren't, it should be easier to work with.

Interested to know we can make it work?
FYI, the various data in the appwidgets.xml are as follows:
The <p/> tags are for listing which widget is using which package/class already installed... Order is important as it is referenced from the <g /> tags.
The <h/> tags lists all launcher installed, its package name and id. It seems custom launchers loaded from market have all an id of 400!
The <g/> tags are the actual widgets already added to a launcher/home screen,
it's ID is the dev ID used by apps, unique on a single device
the h= attribute is the launcher reference (0, 1, ...) from the <h/> tags above.
the p= attribute is the package ref (0, 1, ...) from the <p/> tags above.
That file is updated when an launcher/home screen app calls many Android API methods, including those:
allocateAppWidgetId() to get a new dev ID as mentioned above and link future <g> tags to an existing <h> tag.
The h tag is ALWAYS a reference to the package having called this method! No way to get a widget ID from another app for a particular launcher!
bindAppWidgetId(int appWidgetId, ComponentName provider) to link the <g> tag along with the <p> tag
Even tried ADW Launcher and its home-screen backup/restore but it fails to restore anything!? What a crap!
I personnally use 'System Tuner' which actually restores home screens, except the widgets! Is Titanium Backup able to restore home screens widget?
I've been messing around with the appwidgets.xml file manually to restore a widget... Unfortunately nothing worked.
Did anyone found more info on the subject?

Titanium Backup not restore widget......
Any news editing xml????

Merry Xmas everyone! I finally got this to work with ADW.Launcher.
After setting up my widgets, icons, and ADW settings, I copied a couple of the files from "/data/data/org.adw.launcher" into a backup dir, and used an init.d script to replace the default files. The script deletes itself to make sure it only runs on the very first boot.
I had to experiment forever to get the right sleep time. This script needs to sleep for 45 seconds minimum in order to let ADW finish before it can swap the files. If you are using this with another launcher, you might need to change the sleep time.
Code:
#!/sbin/busybox sh
# THE SCRIPT MUST WAIT A MIN OF 45 SECONDS OR ELSE IT WILL NOT WORK
sleep 45
if [ -d "/data/data/org.adw.launcher-backup/" ]; then
# RESTORE WIDGETS AND ICONS
rm "/data/data/org.adw.launcher/databases/launcher.db-wal"
cp "/data/data/org.adw.launcher-backup/databases/launcher.db-wal" "/data/data/org.adw.launcher/databases/launcher.db-wal"
# RESTORE ADW SETTINGS
rm "/data/data/org.adw.launcher/shared_prefs/launcher.preferences.almostnexus.xml"
cp "/data/data/org.adw.launcher-backup/shared_prefs/launcher.preferences.almostnexus.xml" "/data/data/org.adw.launcher/shared_prefs/launcher.preferences.almostnexus.xml"
# RESTART LAUNCHER
killall android.process.acore
# DELETE THIS SCRIPT TO MAKE SURE IT DOESN'T RUN AGAIN
rm /system/etc/init.d/98adwreset
fi

DieHappy said:
Merry Xmas everyone! I finally got this to work with ADW.Launcher.
After setting up my widgets, icons, and ADW settings, I copied a couple of the files from "/data/data/org.adw.launcher" into a backup dir, and used an init.d script to replace the default files. The script deletes itself to make sure it only runs on the very first boot.
I had to experiment forever to get the right sleep time. This script needs to sleep for 45 seconds minimum in order to let ADW finish before it can swap the files. If you are using this with another launcher, you might need to change the sleep time.
Click to expand...
Click to collapse
Great finding! I'll try to integrate that into System Tuner asap! That would be awesome to have a way to restore launchers setup. All I managed so far is to restore a launcher's icons, without widget, but with that might be able to restore the widgets too

I have not tested this out yet, but I'm pretty sure you can rename "/sdcard/adw_settings.xml" to "/data/data/org.adw.launcher-backup/launcher.preferences.almostnexus.xml" if you are using the ADW.Launcher settings backup.restore.
Likewise with renaming "/sdcard/adw_launcher.db" to "/data/data/org.adw.launcher-backup/launcher.db-wal". This file has an extension of .db-wal, but it is most likely the exact same file. I will have to test this out sometime to make sure.
I also wanted to point out that you only want to copy "launcher.preferences.almostnexus.xml" and "launcher.db-wal". Don't just delete /data/data/org.adw.launcher and replace the entire directory with your backup. If you do this it will just force close and probably delete the directory and recreate it again.
Does anyone else know what files to backup and restore from other launchers?
---------- Post added at 12:16 AM ---------- Previous post was at 12:08 AM ----------
3c said:
Great finding! I'll try to integrate that into System Tuner asap! That would be awesome to have a way to restore launchers setup. All I managed so far is to restore a launcher's icons, without widget, but with that might be able to restore the widgets too
Click to expand...
Click to collapse
If the widgets didn't come with the rom, you would have your program backup and restore the .apk files too. Fancy Widgets didn't seem to work right on a custom rom I was messing around with, I think because when ADW reset it knew where to place Fancy Widgets which had not yet run so it wasn't functional yet. Perhaps backing up this widgets /data/dir might do the trick, but I'm not sure.
ADW appears to delete and re-create the "/data/data/org.adw.launcher" dir if it exists when the program runs for the first time. This is the reason why I had to sleep for 45 seconds before replacing the files and restarting the launcher. If this is how all programs/widgets work, then using my method probably won't work on the settings for those files because they won't run automatically like the launcher does.

scripts/check_binaries: line 12: clear: command not found
scripts/check_binaries: line 12: clear: command not found
why do i get this error please help me ...
i have been searchin about all post but i did not find any answer tenkss ...

Just decompile the launcher's APK and edit the default_homescreen.XML (it will have a different filename for different launchers). Recompile and sign. Done
Sent from my GT-I9100 using xda premium

Related

[GUIDE][HOWTO] theme for the Nook

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.

Theming Guide Help.. These are the things I dont see How-Tos for.. plus some thoughts

This guide will assume the basics (image editing, apk manager setup, adb, etc..) are understood. Minus 9png's, I will go over that. The point is to have a base here for discussion on how to edit things properly. If anyone has something to add, please do.
OK, lets start with something that caught me off guard when switching to a phone with blur... there are certain apps that have dependencies. You have to set those dependencies up. The easiest way to do this is, from whatever ROM you are running, open the zip up with 7zip. Also open up your APK Manager and go into the "other" folder. From your ROM grab framework-res.apk, blur-res.apk, moto-res.apk, settings.apk and systemUI.apk and copy them into the "other" folder. Once there, open up a command prompt. change directories until you are in the "other" folder. Once there do this for each item. apktool d framework-res.apk and hit enter. Then, apktool if framework-res.apk. Do that for the rest.
9pngs.. Everyones afraid... they are a walk in the park. 1 extra step and its done. Decompile your apk, Edit it to your liking and save it. Open it up with draw9patch and add the guides back in and save it. The right and the bottom just make a big ass black line from one side of the image to the other (most of the time). The left and top side require a little fine tuning. Basic rule is to stick a dot in "the middle". Over on the right, see if it looks right. If it doesn't, adjust it. Once done, save it. Recompile and you are done. If using apk manager 4.9 or newer, make sure you delete the images you edited in the keep folder.
Editing xmls....
You are going to be editing xmls to either change background color or text color. Heres a general rule that will help... open the xml in notepad++ and hit ctrl +f. search for android:background .... you can change whatevers there to a hex color. like, if you wanted a dark red.. #ffbc1010. if changing text colors, do a search for android:textColor. Do the same thing with searching and changing.
Some edits will be found in the values folder... this would either take place in Colors.xml, drawables.xml or styles.xml
As I have found, some xmls just dont have a call to a bacground or text color so.. you just have to make one yourself. I always stick those in right after the androidrientation stuff. For example, you want a red background and nowhere in the xml can you find a spot to change it. No worries.. add this... android:background="#ffbc1010" . Good to go.
Some apks wont decompile with apk manager 5.01. You get an out of bounds error. Use apk manager 4.9 for those.. it will open them.
If you try to install an app and something doesnt work.. 1 minor thing, even though the rest does work.. do not try to install another re-edit until you have gone back to a fully functional version. Otherwise, none of your new edits will take hold even if they are correct. (Learned that one the hard way)
Remember, trial and error siis the Android Way!!!
Lastly, I leave you with this... each app has its own "fun-ness" to it. If you are ever stuck and need help, please feel free to ask. I can't do magic.. like looking at Sense... cause I dont have it.. but if you are running GB stock, Blur or its just an app for any phone.. please ask. I will answer, even if I dont know the answer and we have to work together to figure it out.
This is my contribution to XDA. Let's keep progression moving forward. I want to see more themers and more options!!!!
EDIT:
NEW INOFRMATION
I copied this over from my how to on DF... The links are probably still good (I just updated them) but just make sure you are getting the latest version... I wrote the how-to in January.
Since I see a lot of people trying to figure out how to get into theming and such, might as well share my knowledge...
I would also like to thank Devildog8791 and say that he went thru and added a lot to this via PM (which I then pasted here). He also made it a lot more detailed and easier to follow along for everyone.
Things you will need:
-APK Manager located here. It is the one from post #226. It uses apktool version 1.3.1 instead of the newest one, 1.3.2. The new version has some bugs that have not been worked out yet.
-Android SDK located here. There are two different files for Windows: a zip file and an .exe file. I downloaded the zip file, but you can try the .exe file.
-7zip located here. Make sure you pick the right installation for your setup (32-bit or 64-bit)
-Java JDK located here. Make sure you pick the right installation for your setup (32-bit or 64-bit)
Before I begin, please keep in mind that this is just how I did it. Maybe it's perfect, maybe its wrong, BUT... it worked for me.
NOTE: PLEASE READ THIS
Unless you are going to be pushing apks to your phone or pulling them directly from the phone, you do NOT need to bother with steps 3-6 and 9-11. You also only need to add the Java stuff to your Environment Variables.
OK here is how I set all this up and in the order that I did it.
1) Install the Java JDK. You probably don't need to, but I rebooted after the installation was complete.
2) Install 7zip.
3) Extract the android SDK file and move the extracted folder to the root of the C: drive. I renamed the folder "androidsdk", but you can rename it whatever you want. On my computer, the SDK is at C:/androidsdk (whatever you name this and anything in its filepath, make sure there are NO SPACES).
4) Go into your sdk folder and run "SDK Manager".
5) When the "Android SDK and AVD Manager" screen opens up, select "Available packages". Select the packages you want to install and click on "Install Selected". If the "Choose Packages to Install" screen comes up automatically, then select "Accept All" and click "Install". This will take a few minutes. Go ahead and get a drink and stretch your legs.
6) When your packages get done downloading and installing, close the "Installing Archives" and the "Android SDK and AVD Manager" screens.
7) Extract the APK Manager zip file and move the extracted folder to your user file. Mine is located at C:\Users\Tim\apk_manager_4.9.
8) Now you need to set your environment variables. To do this, click on "Start" and then right click on "Computer". Left Click "Properties" and in the left pane you will see "Advanced system settings". Click on that and it will open up a new window called "System Properties". Click on "Environment Variables" at the bottom of the screen.
9) Now that you are in the Environment Variables screen, you want to look at the top part of the screen first. Under "User variables for <your name here>", click on "New...".
10) In the "Variable name" section, type in ADB.
11) In the "Variable Value" section, type in C:\androidsdk\platform-tools\adb.
12) Now go to the bottom part of the screen and find "Path" on the left side under "Variable".
13) Double-click that "Path" section and it will bring up the edit screen.
14) Go to the end of the "Variable value" section and add the following: ;C:\Program Files\Java\jre6\bin;C:\Program Files\Java\jdk1.6.0_23\bin;C:\androidsdk;C:\androi dsdk\platform-tools;C:\androidsdk\tools. Verify that the bin file locations for java are in the same place as indicated here. They should be the same, but check it to be safe. Also, don't forget to change the name to whatever you named your sdk folder. One last thing is to make sure you have a semi-colon in between each path as indicated.
15) Click "OK" when done and close all the windows.
16) Reboot your computer.
Now that you have your environment variables set, you should be good to go to use APK Manager. One thing that you might have to do is set up your adb drivers for your phone. I have a Droid Incredible and I went to this site to get mine set up. If you have a Motorola Droid 1 (which most on this site do), then it should set up with the proper drivers when you plug it in the computer. My wife has a Droid 1 and that is what happened for me.
So, now you have 7zip, SDK, Java and APK Manager installed, setup and ready to use. Fantasmagorical!
Great, now, what the hell do you do with it...lol
1) You decide on an apk file (let's choose phone.apk) to use. You can grab it from the stock ROM your using, pull it off your phone, whatever...
2) Now that it is on your computer, move it into the APK Manager's "place-apk-here-for-modding" folder.
3) Run the script.bat and select option 22. Then choose the apk (project) you want to work with.
4) Now select option 9 to decompile the apk.
5) Once that's done select option 11 to recompile the apk. If it asks you if it's a system app (y/n) then you are in business. If it says there is an error, it is most likely that the apk has some .9.png images without guides. If this occurs, grab the stock images and stick them in by using 7zip and choose "open archive".
6) OK, so it works fine, now what? Just choose "N" and when it's done, go to the "place-apk-here-for-modding" folder and delete the "unsignedphone.apk" file.
7) Now go back to the script and choose option 9 to decompile again.
8) Once it's decompiled, navigate to the "projects" folder and go into the phone.apk folder.
9) Make all your xml edits.
10) Now, go back to the script and choose option 11. Choose "Y" and then choose "Y" again.
11) Now, go into the "KEEP" folder and delete the resources.arsc file and also delete every single xml you edited. Then go back to the script and "press any button to continue".
12) Once that is done, you are done. Go into the "place-apk-here-for-modding" folder and you will see an unsignedphone.apk file.
13) Put it in an update.zip that you can install to your phone and then rename it to phone.apk.
14) If you are wanting to now stick your own images in, use 7zip and select "open archive" and then drag your images into the proper folders.
15) Close 7zip and select "yes" to the box that pops up.
16) Now you are ready. Move the zip file to your phone, reboot into recovery and install it.
Going to add something blur related here. AK Manager 4.9 will give you errors recompiling phone, contacts and dialer. To fix it, go into the decompiled apk and open apktool.yml with notepad++ or similar. You will see 3 lines.. -1, -3 and -2. Put them in order.. -1, -2 and -3. Good to go.
Very nice thanks for this
Sent from my DROID X2 using Tapatalk
No problem. Get out there and make some good stuff!!
Hey thanks for the guide. I have a lot of programming experience but I am fairly new to android.
With that said, you state that: "This guide will assume the basics (image editing, apk manager setup, adb, etc..) are understood."
Is there a page were this things are explained, I have the image editing down, but have no idea about the apk manager,adb,etc...
I found this and I was wondering if this is the apk manager:
http://forum.xda-developers.com/showthread.php?t=1227179
Thanks, and sorry if this sounds too noobish.
Yes, that is apk manager. I would use 4.9 though because 5.01 will give you a lot of "out of bounds" errors when decompiling. 4.9 wont. And the apps work.
There is also another thread here on XDA .. So you want to make a theme.. or something like that.
I also wrote a How-To on installing java, apk, adb and setting all of your environment variables. That is in the "Team Inversion Conversion" area on droidforums.net.
Edit: Added the how to to the original post.
Question
So i wanted to theme and started reading guides on xda and came to the conclusion that it was a lengthy process requiring knowledge of may different programs, most of which was over my head. Just recently i started digging into roms wanting to change the lockscreen background and incall backgrounds. using 7z i located the lockscreen background file at system\framework\framework-res.apk\res\drawable-hdpi\zz_moto_gradient_bg2.png I then copied the file out and opened it and using paint, changed the image to a different one and then pushed the modified file back into the zip and then flashed the rom. I was very happy to end up with this
.
My question is, not using apk manager or apktool or a command prompt or any of the methods that ive read, am i doing something wrong? Will editing roms in this method run me into problems? Or is it just a noobish approach that actually works?
afm1118... There is absolutely nothing wrong with the way you are doing things. Just make sure you don't mess with any 9pngs. if you edit those with your method, it will break the signature. The image would still work but the guides would be gone. When I first started learning to theme, I didn't understand what a guide was. So, heres my explanation... look at your keyboard... in landscape mode, the buttons are bigger than they are in normal view. guided 9s will make the images stretch perfectly to fit the required dimensions. unguided 9pngs will just take the actual image and make it bigger. Kind of like if you went into an image editor and re scaled a 40x40 pixel image to 100x100 pixels. It would still be there but it would be a little distorted.
Yeah i just stay away from the 9pngs because i dont understand them and just know not to touch. You definitely helped me understand them better tho. What i dont understand is the need to use apk manager, or what recompiling/decompiling is. Like just using 7z i modified phone.apk in the same fashion i did the lockscreen, changing the incall background. Im guessing apk manager is necessary for editing xml. I really want to understand all this.
afm1118 said:
Yeah i just stay away from the 9pngs because i dont understand them and just know not to touch. You definitely helped me understand them better tho. What i dont understand is the need to use apk manager, or what recompiling/decompiling is. Like just using 7z i modified phone.apk in the same fashion i did the lockscreen, changing the incall background. Im guessing apk manager is necessary for editing xml. I really want to understand all this.
Click to expand...
Click to collapse
I dont do .9 pngs and I still create alot of themes, dont be scared to theme cuz u cant do .9.
TheMuffStuff said:
I dont do .9 pngs and I still create alot of themes, dont be scared to theme cuz u cant do .9.
Click to expand...
Click to collapse
Im not scared of um, i just thought i would figure them out when i wanted to change one. but so far,with nitros rom and with muffstuff xkape and funkencools themes along with uot kitchen ive been very happy. The themes are great, im looking forward to whats next.
afm1118 said:
Yeah i just stay away from the 9pngs because i dont understand them and just know not to touch. You definitely helped me understand them better tho. What i dont understand is the need to use apk manager, or what recompiling/decompiling is. Like just using 7z i modified phone.apk in the same fashion i did the lockscreen, changing the incall background. Im guessing apk manager is necessary for editing xml. I really want to understand all this.
Click to expand...
Click to collapse
TheMuffStuff said:
I dont do .9 pngs and I still create alot of themes, dont be scared to theme cuz u cant do .9.
Click to expand...
Click to collapse
.9s are integral to theming....cheating them and not doing them arent an execuse
Nitsuj. Instead of bringing negativity into the thread, try being useful. This is a help section not a your doing it wrong thread. If you would like to discuss it further pm me.
Sent from my Nexus S using XDA App
Nexus S.. Ha.. Editing the build.prop har further reaches than I thought.
Anyway, yes, editing an xml requires decompiling and recompiling... or does it? Not so fast. You can use a Hex editor to edit those colors but, I have no clue. I never went that route.
I guess the easiest way to think about apks that are compiled or decompiled is like this... lets say you have a game.. Football.exe on your computer. you click it, it opens. Now, to save space, you zip it up and its now in a zip file called Football.zip. You click it, it does NOT open. The OS cant read a zip file as an executable file.
You open a compiled xml, can't read it. you open a decompiled xml.. its all right there in plain English. Why would you want to edit an xml? Many reasons. I am going to give you an example right here...
This is the decompiled progress-horizontal.xml from the framework. It controls the color of the bar when you are dwnlading an ap, adjusting the ringer or media volume, etc..
<?xml version="1.0" encoding="UTF-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@id/background">
<shape>
<corners android:radius="0.0dip" />
<gradient android:startColor="#ffdfdfdf" android:endColor="#ffdfdfdf" android:angle="270.0" android:centerY="0.75" android:centerColor="#ff000000" />
</shape>
</item>
<item android:id="@id/secondaryProgress">
<clip>
<shape>
<corners android:radius="0.0dip" />
<gradient android:startColor="#ff000000" android:endColor="#ffbf0d0d" android:angle="270.0" android:centerY="0.75" android:centerColor="#ffbf0d0d" />
</shape>
</clip>
</item>
<item android:id="@id/progress">
<clip>
<shape>
<corners android:radius="0.0dip" />
<gradient android:startColor="#ffbf0d0d" android:endColor="#ffbf0d0d" android:angle="270.0" android:centerY="0.75" android:centerColor="#ff000000" />
</shape>
</clip>
</item>
</layer-list>
Im not going to go look at a hex chart but I think this is from when I was making an orange theme the other day. You can see there are 9 hex codes for color. You can edit those and make the progress bar have a different background and color. If I remember correctly, the first 3 control the background and the other 6 control the color of the bar. Play around and experiment til you see one you like. you can also add in transparencies and such to get fading and whatnot. like #80dfdfdf instead of #ffdfdfdf.
Some xmls wont be as clear cut.. it mught say something like android:background="@drawable/status_bar_bg"
This still can be changed. You can actually add something to a folder..image, color, etc.. but you also need to make an xml for it too. (I think, never done it).
You can make it point at a different item or, you can just give it a hex color.
ok so with the lockscreen i did, i could have done it two different ways. i could have changed the xml to target a different file or what i did, modify the image file itself. its just like html or any programing, its been a while.
correct man. Deciding which way to go is key. some of those images show up all over the place. In each instance just have to decide if its better to point it something else or just change what its pointing to looks like.
When I first themed ShapeWriter(back when I hadn't even heard of a .9) I got into a whole new mess with .smali, turns out that's where the tracer color was defined. You could never edit smali without decompiling first, although for theming its rare to have to.
Once you start theming you start learning little things here and there. And usually if your theming, it's cause your trying to do what no ones done yet; so most of what your going to learn is from a LOT of trial and error.
I'm not good at writing guides or anything but anyone can feel free to ask in my thread or pm me if you have some specific questions, etc..
Sent from my DROID X2 using XDA App
Also just thought I'd add: things may seem confusing sometimes but so would basic algebra if it hadn't been etched into your brain already.
Sent from my DROID X2 using XDA App
I was wondering is someone could explain to me a little better as to how to make a flashable zip.
I wanted to change the background image of the dialer, but when I have a finished apk I dont know hot to make it flashable.
Thanks
Electroniko said:
I was wondering is someone could explain to me a little better as to how to make a flashable zip.
I wanted to change the background image of the dialer, but when I have a finished apk I dont know hot to make it flashable.
Thanks
Click to expand...
Click to collapse
Well I could get pretty indepth but if you just want one that works you could borrow mine or probably anyone else's and change it for your needs(deleting my files adding yours).
without getting into the actually scripting the basics are:
A script that tells you what files/dir go where(among other things) and the files.
Usually it will just unpack everything in the zip to the "root" of your system partition. So if you were to use my zip i would keep my dir's and just delete the actual files.
basically if you want to put a file in "/system/framework/" on your phone you would put the file in "/system/framework/" in the zip.
also a note if you use mine; it will only copy to the system partition and not sd or sd-ext. even with that it should fit your needs.
Hope that all helps

[Dev]Files of interest in the system

Alright, just got my hands on a system dump courtesy of loglud so I will be posting files (text files will include content that peaked my interest) here so me and other devs can see what we are able to toy with.
systemdump download link: http://dl.dropbox.com/u/15069134/SystemDump.zip
Current list:
/system/media/bnapps_icons\ <-- we can mod the app icons that come with the device so we can make it less-sucky.
/system/etc/bluetooth/blacklist.conf <-- referencing the bluetooth chip meaning we just have to find a way to activate it
/system/app/settings.apk <-- anyone think they can actually replace this with another gingerbread apk or decompile and discover if there is a custom intent? Warning: It does NOT work at all. I suggest against swapping the apk's out as it causes a force close.
/system/bin/bootanimation *Was told where it searches for bootanimations first so goto this thread for a new bootanimation: http://forum.xda-developers.com/showthread.php?t=1361735
Indirect said:
Alright, just got my hands on a system dump courtesy of loglud so I will be posting files (text files will include content that peaked my interest) here so me and other devs can see what we are able to toy with.
Current list:
/system/media/bnapps_icons\ <-- we can mod the app icons that come with the device so we can make it less-sucky.
/system/etc/bluetooth/blacklist.conf <-- referencing the bluetooth chip meaning we just have to find a way to activate it
/system/app/settings.apk <-- anyone think they can actually replace this with another gingerbread apk or decompile and discover if there is a custom intent?
Click to expand...
Click to collapse
Nice finds. Bluetooth will be intesting to test (about to do it right now).
As you know the Nook has a heavily modified framework, so I don't know if the stock settings app will work (but I'm about to find out and probably fark up my tablet).
Let me know how it goes anlog.
Indirect said:
/system/app/settings.apk <-- anyone think they can actually replace this with another gingerbread apk or decompile and discover if there is a custom intent?
Click to expand...
Click to collapse
Hmm . . . let me get a hold of it and I'll look at it tomorrow, I've already taken the rest of the week off (Diablo III beta key came in tonight).
You may not need to change out the settings.apk but just add another one to it.
I decided to hold off on swapping the settings.apk. Losing access to the real settings app with all of the Nook options might not be a good idea.
The main reason I wanted a full settings menu was to be able to get into the accounts sync settings, but I found an app to launch it.
Warning: It does NOT work at all. I suggest against swapping the apk's out as it causes a force close.
Indirect said:
A
/system/bin/bootanimation <-- It's not a .zip or anything, just a file...anyone know how we can edit this?
Click to expand...
Click to collapse
It's a binary file. This app executes bootanimation resources.
Example: on T-Mobile MyTouch 4G resources are in /system/customize//resource/htc_bootanimation.zip
You should search for bootanimation.zip and you can edit this archive
Indirect said:
Warning: It does NOT work at all. I suggest against swapping the apk's out as it causes a force close.
Click to expand...
Click to collapse
I read note, if you want edit system apps like Settings.apk you should sign them by personal keys only...
I was looking through and couldnt find a bootanimation.zip in the system so I'm checking the data folders now.
edit: What the hell, still can't find it.
Indirect said:
I was looking through and couldnt find a bootanimation.zip in the system so I'm checking the data folders now.
edit: What the hell, still can't find it.
Click to expand...
Click to collapse
I was using Absolite system to see if I could replace the bootanimation because I couldn't find it either. I did manage to make it go away and just had the splash screen. I'll look into this further today as well. I'm starting to get ideas as to which files you can and can't replace right now. Some will force an immediate reboot and get stuck in a boot loop. I also am trying to find what triggers and handles the home button menu, I am sure it is in the framework. I have framework.jar and services.jar decompiled and going through those as well. Reviewing logcats to see what I can track down. I have some other interesting stuff going as well
romified said:
I was using Absolite system to see if I could replace the bootanimation because I couldn't find it either.
Click to expand...
Click to collapse
Hmmm... Usually bootanimation is in /data/local/ or /system/media. May be it has different name?
/system/bin/bootanimation is the program that actually displays the bootanimation.
Normally it plays the contents of /system/media/bootanimation.zip, but it can also be hardcoded to play a fixed animation or designed to play a completely different format. (Such as on Samsung devices, where it only plays Samsung's QMG format until you replace the program.)
conundrum768 said:
I've already taken the rest of the week off (Diablo III beta key came in tonight).
Click to expand...
Click to collapse
conundrum768
Don't take this the wrong way, but I really hate you right now!
I tried getting in on the Diablo III beta, no luck!
Here is a file of some interest, it it looks to be encrypted because it would be of interest.
/system/recovery-from-boot.p
.p files are encrypted .m files. Not sure if anything exists out there to crack into that one, but I am sure it would tell some very interesting information and possibly allow hi-jacking the factory restore process?
Anyone familiar with .p files (pcode files) ?
---------- Post added at 12:20 PM ---------- Previous post was at 12:08 PM ----------
Also of interest are some .xem3 files under /system/lib/ducati
base_image_app_m3.xem3 --- 57 mb
base_image_sys_m3.xem3 --- 1.5 mb
I think could be system image files possibly from the little bit of research I have done. Due to the size of one of these (57 mb) and the name of the file, I was thinking maybe this is where the restore was getting it's base image from, but until I dig further I am not sure of that. The size of the file is what got my attention, much larger than other files in lib. That's half the size of CM7 in just one file.
Edit: These now look to be possibly drivers/firmware/images for Ducati and/or Pandaboard ? That's a large driver file....
The .p file is very much of interest I would think.
conundrum768 said:
Hmm . . . let me get a hold of it and I'll look at it tomorrow, I've already taken the rest of the week off (Diablo III beta key came in tonight).
Click to expand...
Click to collapse
It looks like the normal XML files are not controlling the layout and it is done through the smali files to get the custom actions and layout. A separate app to access development may be best for now, as we have been doing.
Unless someone edits the smali files of course, that's possible but will prove tedious and time consuming unless you have a lot of experience with these.
If you review the logcats from going into settings, you will see which smali files are involved.
I have almost a full system dump on an ftp so ill see about letting it be accessed.
Sent by breaking the sound barrier
Please upload full system dump from Nook Tablet
Please upload full system dump from Nook Tablet
How-to
1. Get root
2. Run terminal (enter su if symbol $ -> it will be changed to #)
3. Execute command mount
4. From list of partitions search for /system
Code:
Example: /dev/block/mmcblk0p27 /system ext4 ro,relatime
5. Dump it to sdcard with command dd
Code:
Example: dd if=/dev/block/mmcblk0p27 of=/sdcard/system.img
It dumps only system image not personal data...
I'll just upload a .zip to dropbox.
Is there a sanim.zip anywhere? If so, that's the bootani. If not, ill sink back to silence lol
Sent from my Samsung Legendary 4G, a Universe UTES phone, running "two.three.five"
I looked through and there are only a few .zip files but none of them actually contained a bootanimation. It really is annoying lol. This device is such a bastardized version of android, I can't wait to get past the bootloader. lol.

[Q] How do you change the wallpaper on settings submenus in CM7?

I currently use a HTC HD Mini (Photon) running the SCREAM ROM by Ling Gan. It has a few bugs for most of which there is either a workaround or fix but there is the one problem which has remained unsolved: the default wallpaper on everything BUT the home and lockscreens cannot be changed. It is of a tree in a meadow under a blue sky and when rotated to landscape changes to some smiling chinese lady in the "settings" submenu. Doesn't hamper use much but it is quite annoying.
I have tried a number of solutions some of which resulted in my having to reflash and others did nothing. I post this here because I think it is a CM7 issue. The ROM developers have so far been unable to post a solution within the thread and I am aware that a fix for similar problems on CM9 ROMs exists using ADB to edit framework-res.apk. I felt it was time the problem was tackled by the wider XDA fam. Used google translate to look on the chinese site where the ROM is native to (mobile-kon) but found no help as well. Any help would be greatly appreciated.
i think ur problem lays in the framework-res.apk it contains the look of the rom and the transition effects
you can mod apk with the apkmanager tool for ur computer in the frameworkresapk you should find the images u want to change replace them witch a black picture or something like that
if never done this befoure exept from changing some transition effects and i had a couple of errors among this
the easier way seems to search for the rom on another page cus the images ure stating are not standart in the cm7
SOLVED!
jiffer1991 said:
i think ur problem lays in the framework-res.apk it contains the look of the rom and the transition effects
you can mod apk with the apkmanager tool for ur computer in the frameworkresapk you should find the images u want to change replace them witch a black picture or something like that
if never done this befoure exept from changing some transition effects and i had a couple of errors among this
the easier way seems to search for the rom on another page cus the images ure stating are not standart in the cm7
Click to expand...
Click to collapse
Many thanks!
I started off looking through the "res" folder in framwork-res.apk using Root Explorer to identify the images for the wallpaper. They were
Res/drawable-land-mdpi/screen-background-dark-transparent.png
And
Res/drawable-mdpi/screen-background-dark-transparent.png
I then created a copy of framework-res.apk on my SD card and copied it onto my pc. I created new wallpapers to replace the ones I just mentioned, one in portrait, the other in landscape. They were 320x480 and 480x320 respectively. Using 7zip on the pc, I placed them in the corresponding folders (/drawable-mdpi for protrait and /drawable-land-mdpi for landscape).
I copied framework-res.apk back to my sdcard and then fired up terminal emulator to run the following commands
su
sys -rw
busybox cp /sdcard/framework-res.apk /system/framework
sys -rw
You might get error messages from running apps after this but ignore them and reboot. The idea is to replace the framework-res.apk in system/framework with the one you just edited.
After the reboot, you should have your newly created wallpaper showing up in settings in both landscape and portrait modes.
Please hit "thanks" for both jiffer1991 and I if this was helpful. Big ups to jiffer1991for pushing me in the right direction.
Hi,
i did something wrong.
So my Phone didn´t run.
He show me the Bootsceen and the Animation.
But the he will run again and again and again.
Can i handle my Phone via USB so i can restore the framework.resp.apk on my System? Or i have to reinstall Android again?
I have no backup and i don´t want to erase my system settings.
Thanks
Felix
obstgarten said:
Hi,
i did something wrong.
So my Phone didn´t run.
He show me the Bootsceen and the Animation.
But the he will run again and again and again.
Can i handle my Phone via USB so i can restore the framework.resp.apk on my System? Or i have to reinstall Android again?
I have no backup and i don´t want to erase my system settings.
Thanks
Felix
Click to expand...
Click to collapse
hm u got stuck in a bootloop thats what i meant when i mentioned errors =)
you could make a zip with the old framework res apk or reflash the cm rom
if u dont whipe data/cash ure setting will be safed
read some tutorials how to mod the framework res apk
I have an .zip file on the sd card.
Can i copy it to the Android system somehow?
Felix
P.S. can i zip the framework and remove the ".zip" to ".apk"?
It is most likely that the zip file you have is the ROM image from which you flashed in the first place. Changing the extension to apk is NOT what you want to do. I suggest you create a backup in CWM of you present configuration and after reflashing, you can then do a partial restore of your user data. But its like Jiffer1991 said, read up on CWM, theres an exhaustive guide on xda somewhere.
Thanks,
i installed my modified cm rom without wipe caches data or something.
And now i have my old datas back, with the new Background.

[Q] Changing Settings menu options

I'm running a Galaxy Nexus, and the ROM I'm currently on has a Perfomance option in the Settings Menu, which gives control of the kernel and stuff. However, I'd rather use TricksterMod, and I would like to be able to launch TricksterMod from Settings instead of the Performance app.
So far, I've decompiled my Settings.apk, and looked through the files, and I'm not sure what to change.
I have to change \settings\res\xml\settings_headers.xml, correct? Specifically,
Code:
header android:icon="@drawable/ic_settings_performance" android:id="@id/performance_settings" android:title="@string/performance_settings_title" android:fragment="com.android.settings.performance.PerformanceSettings" />
I would also have to change \settings\res\values\strings.xml, specifically, the string referenced by "@string/performance_settings_title" so that I can have the correct name, correct?
And similarly, settings\res\drawable, for the icon.
The big question is, what do I replace with for "com.android.settings.performance.PerformanceSettings"? Do I need to move TricksterMod somewhere specific, or what would I reference? \data\app\com.bigeyes0x0.trickstermod-1.apk?
After making all these changes, I'd simply recompile and push the Settings.apk back without signing, correct? Have I missed any steps?
Firnagzen said:
The big question is, what do I replace with for "com.android.settings.performance.PerformanceSettings"? Do I need to move TricksterMod somewhere specific, or what would I reference? \data\app\com.bigeyes0x0.trickstermod-1.apk?
Click to expand...
Click to collapse
That's what I would try BUT would just be that, to try, seems like you have everything else covered.
Hm. Well, that didn't work.
I successfully made the edits, recompiled, and pushed the file in place of the old Settings.apk.
The Settings app immediately disappeared, and trying to install it (selecting the .apk with a file manager) didn't work; it simply gave me an 'App failed to install'.
Any suggestions as to what I might have done wrongly?
Anyone?

Categories

Resources