[GUIDE](INTERACTIVE) HOW-TO Get Started Themeing/Modding [rev. 8/26/12]

Search This thread

hankbizzo5

Senior Member
Nov 13, 2008
536
221
Ct,Eastern
1341638407437.png



Like the textured background.....
 

chrisn91

Senior Member
Feb 8, 2012
257
74
washington
Ill take a look at those tomorrow I kinda got the time to move but it cut off the am/pm its in res/values/dimens.xml
a6935993-d080-53ac.jpg


Sent from my MB865 using xda premium
 
  • Like
Reactions: A2Trip

alteredlikeness

Senior Member
Mar 2, 2012
2,454
5,472
reflecting on Indra's net
Ill take a look at those tomorrow I kinda got the time to move but it cut off the am/pm its in res/values/dimens.xml

Cool.. I may have to ask you about that if I don't figure i out for myself first.

But, in other news... BAM! Got the AOSP clock, date, and charging text...
1341642244897.png

I just changed all text colors in the keyguard_screen_tab_unlock.xml, so my "emergency calls only" text will be green too, I guess..
 
  • Like
Reactions: A2Trip

A2Trip

Senior Member
Mar 2, 2012
1,584
404
Silver Lake, WI.
The red reminds me of the AtrixBlaze Red Dawn theme. Nice little extras you added man...wish I could figure this out as easy as yall lol. But I'm giving it a go again today. Wish me luck. Hopefully jr stays out of my way...he LOVES trying to get on my laptop when I'm on it. Hahaha.

Edit: OH ****!!!
a6936897-6bc0-9ea0.jpg


Sent From My DROID That DOES Not My APPLE That DIDN'T.
 
Last edited:

A2Trip

Senior Member
Mar 2, 2012
1,584
404
Silver Lake, WI.
Now if I can somehow port over the touchwiz blue battery icon with 1% stats that'd put my blue theme all together!
a6936897-6e23-2e95.jpg
a6936897-6e0a-3fdc.jpg


Sent From My DROID That DOES Not My APPLE That DIDN'T.
 
  • Like
Reactions: chrisn91

chrisn91

Senior Member
Feb 8, 2012
257
74
washington
so after changing the lockscreen clock color and installing i got hit with tons of force closures damm it gotta start over and see where i went wrong lol
 

A2Trip

Senior Member
Mar 2, 2012
1,584
404
Silver Lake, WI.
Got my numbers on lockscreen kinda blue...odd lol. Wonder what I missed. Do you add a whole android line for the color to stick or just replace the color codes that were already in the lines? Cuz thats what I did...looked logical to me but probably did somthing wrong here, lol.
a6936897-9b35-9738.jpg


Sent From My DROID That DOES Not My APPLE That DIDN'T.
 

alteredlikeness

Senior Member
Mar 2, 2012
2,454
5,472
reflecting on Indra's net
so after changing the lockscreen clock color and installing i got hit with tons of force closures damm it gotta start over and see where i went wrong lol

You think it was bad edits or a bad install? I wanted to put together a guide on making zip packages - I think the root explorer push method can mess things up if you don't wipe cache and dalvik... not sure though.


Got my numbers on lockscreen kinda blue...odd lol. Wonder what I missed. Do you add a whole android line for the color to stick or just replace the color codes that were already in the lines? Cuz thats what I did...looked logical to me but probably did somthing wrong here, lol.
a6936897-9b35-9738.jpg


Sent From My DROID That DOES Not My APPLE That DIDN'T.

Looks kinda cool like that, but I think you changed the shadow color only...
And, yes, in that file you can just change the android:textColor parts to #ff------, for your hex code.. no need to add new entries.


Sent from my phone's mind
 

A2Trip

Senior Member
Mar 2, 2012
1,584
404
Silver Lake, WI.
Looks kinda cool like that, but I think you changed the shadow color only...
And, yes, in that file you can just change the android:textColor parts to #ff------, for your hex code.. no need to add new entries.


Sent from my phone's mind

Yeah I did that the first time. Where it says color and white, deleted those and replaced with #ff whatever for ics blue. Deleted all the ones saying color and white with the hex code. Not seeing the android shadow at first. So I did, rebooted and nothing changed...was weird so I tried again only this time replacing the hex color code in android shadow only and left the whites. Hmmm...guess I'll have to try one more time...unless I'm still thinking wrong?

Sent From My DROID That DOES Not My APPLE That DIDN'T.
 
Last edited:

chrisn91

Senior Member
Feb 8, 2012
257
74
washington
You think it was bad edits or a bad install? I wanted to put together a guide on making zip packages - I think the root explorer push method can mess things up if you don't wipe cache and dalvik... not sure though

Sent from my phone's mind

I think it was bad edits I forgot to put the # in front of the color code got it working now but its still a little of center how did u move yours to the center
a6935996-c2cd-f111.jpg


Sent from my MB865 using xda premium
 

alteredlikeness

Senior Member
Mar 2, 2012
2,454
5,472
reflecting on Indra's net
I think it was bad edits I forgot to put the # in front of the color code got it working now but its still a little of center how did u move yours to the center

Sent from my MB865 using xda premium

It's two different lockscreens, controlled by two diff xmls... see the "Edit" note at the bottom of this post: http://xdaforums.com/showpost.php?p=28399251&postcount=20

Or, to switch between the two lockscreens, one could edit the bools.xml in framework-res.apk/values folder.. look for the line like config_sliding_door_lockscreen (or something like that), and switch the value to false for the AOSP lock, and true for the Moto door... I think. Sorry, not at my computer to confirm...

Note: I think the original AOSP jog tab images are messed up a little in the res folder - they didn't line up right, so I re-did the 9patch files to straighten things out...

Sent from my phone's mind
 
Last edited:

alteredlikeness

Senior Member
Mar 2, 2012
2,454
5,472
reflecting on Indra's net
Another text color edit... The date and clear all button in the pulldown menu..
uploadfromtaptalk1341721718951.jpg
These are in the status_bar_expanded.xml in SystemUI.apk/res/layout, just edit the existing textColor line..

Sent from my phone's mind

Edit: and the notifications text..
44f8e88f-10a2-55e7.jpg

That's further down in the file.. and you need to add the "android:textColor=" line in 4 of the TextView lines.
 
Last edited:
  • Like
Reactions: chrisn91

A2Trip

Senior Member
Mar 2, 2012
1,584
404
Silver Lake, WI.
Damn, I'm having a major issue. Idk if its from messing with the framework or system but when I connect my phone USB mass storage it doesnt mount anymore...man...looks like a backup is in order again. Unless its my laptop...my girls inc2 hasnt been able to mount either but my X2 does no problem...very odd. And I been messing with the X2's framework and system the last two dayd as well...so I wanna lean more towards my laptop...hope not though...

EDIT: Cache Wipe and Dav wipe took care of it.

Sent From MY DROID That DOES Not YOUR APPLE That DIDN'T.

---------- Post added at 03:12 PM ---------- Previous post was at 02:36 PM ----------

That's further down in the file.. and you need to add the "android:textColor=" line in 4 of the TextView lines.


is this the LAST 4 Textview lines? And where in the lines do you add it? I tried and it didnt work. Maybe pasted in wrong spots? Got everything else though, man this is AWESOME!
 
Last edited:

chrisn91

Senior Member
Feb 8, 2012
257
74
washington
Damn, I'm having a major issue. Idk if its from messing with the framework or system but when I connect my phone USB mass storage it doesnt mount anymore...man...looks like a backup is in order again. Unless its my laptop...my girls inc2 hasnt been able to mount either but my X2 does no problem...very odd. And I been messing with the X2's framework and system the last two dayd as well...so I wanna lean more towards my laptop...hope not though...

EDIT: Cache Wipe and Dav wipe took care of it.

Sent From MY DROID That DOES Not YOUR APPLE That DIDN'T.

---------- Post added at 03:12 PM ---------- Previous post was at 02:36 PM ----------




is this the LAST 4 Textview lines? And where in the lines do you add it? I tried and it didnt work. Maybe pasted in wrong spots? Got everything else though, man this is AWESOME!


a693599e-fdde-c902.jpg



thats where i added it at everything worked for me except the clear button
 
Last edited:

alteredlikeness

Senior Member
Mar 2, 2012
2,454
5,472
reflecting on Indra's net
Got them toggles working at the bottom:
44f8e88f-fa41-6a1b.jpg

Did it this time with Taine0's method. Kinda..
But, it is a bit sloppy because the toggles icons appear before the drop down screen is pulled all the way down. Also, I need to stretch and center the Clear button..
TheGrammarFreak posted an alternative method, which I used in my earlier post - it looks cleaner since you attach the toggles to the statusbar close image in status_bar_tracking.xml - but I could not get the toggles to work that way... yet.
Here's a copy of my status_bar_expanded.xml with Taine0's method if anyone wants to give it a go (still a work in progress):
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.ExpandedView android:orientation="vertical" android:focusable="true" android:descendantFocusability="afterDescendants"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout android:orientation="horizontal" android:background="@drawable/title_bar_portrait" android:paddingTop="3.0dip" android:paddingRight="3.0dip" android:paddingBottom="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content">
        <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
            <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">
                <com.android.systemui.statusbar.DateView android:textAppearance="?android:textAppearanceLarge" android:textColor="#ff99cc00" android:layout_gravity="center_vertical" android:id="@id/dateLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" />
                <com.android.systemui.statusbar.CarrierLabel android:textAppearance="?android:textAppearanceLarge" android:textColor="#ffdfdfdf" android:layout_gravity="center_vertical" android:id="@id/carrierLabel" android:paddingLeft="4.0dip" android:paddingBottom="1.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginTop="1.0dip" android:layout_weight="1.0" />
            </LinearLayout>
            <TextView android:textAppearance="?android:textAppearanceLarge" android:textColor="#ffdfdfdf" android:ellipsize="marquee" android:layout_gravity="center_vertical" android:id="@id/cellbroadcastLabel" android:paddingLeft="8.0dip" android:focusable="true" android:focusableInTouchMode="true" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:marqueeRepeatLimit="marquee_forever" />
        </LinearLayout>
    </LinearLayout>
    <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
        <ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:overScrollMode="ifContentScrolls">
            <com.android.systemui.statusbar.NotificationLinearLayout android:orientation="vertical" android:id="@id/notificationLinearLayout" android:layout_width="fill_parent" android:layout_height="wrap_content">
                <TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:textColor="#ff99cc00" android:id="@id/noNotificationsTitle" android:background="@drawable/shade_bgcolor" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_no_notifications_title" />
                <TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:textColor="#ff99cc00" android:id="@id/ongoingTitle" android:background="@drawable/shade_bgcolor" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_ongoing_events_title" />
                <LinearLayout android:orientation="vertical" android:id="@id/ongoingItems" android:layout_width="fill_parent" android:layout_height="wrap_content" />
                <TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:textColor="#ff99cc00" android:id="@id/priorityTitle" android:background="@drawable/shade_bgcolor" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_priority_events_title" />
                <LinearLayout android:orientation="vertical" android:id="@id/priorityItems" android:layout_width="fill_parent" android:layout_height="wrap_content" />
                <TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:textColor="#ff99cc00" android:id="@id/latestTitle" android:background="@drawable/shade_bgcolor" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_latest_events_title" />
                <LinearLayout android:orientation="vertical" android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" />
            </com.android.systemui.statusbar.NotificationLinearLayout>
        </ScrollView>
    </FrameLayout>
    <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">
        <TextView android:textSize="14.0sp" android:textColor="#ff99cc00" android:layout_gravity="center_vertical" android:id="@id/clear_all_button" android:background="@drawable/zz_moto_btn_small_curtain" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4.0dip" android:layout_marginBottom="1.0dip" android:text="@string/status_bar_clear_all_button" android:shadowColor="@android:color/transparent" android:shadowDx="0.0" android:shadowDy="0.0" android:shadowRadius="0.0" style="?android:attr/buttonStyle" />
    </LinearLayout>
    <com.android.systemui.statusbar.quickpanel.QuickSettingsView android:orientation="horizontal" android:id="@id/quickpanel_quick_settings" android:background="@android:color/transparent" android:layout_width="fill_parent" android:layout_height="wrap_content">
        <FrameLayout android:layout_width="wrap_content" android:layout_height="65.32999dip" android:layout_weight="1.0">
            <ImageView android:layout_gravity="center_horizontal" android:id="@id/quickpanel_wifi_btn_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:src="@drawable/quickpanel_icon_wifi_off" />
            <com.android.systemui.statusbar.quickpanel.WifiSettingButton android:textSize="0.0dip" android:textStyle="bold" android:textColor="#ffdfdfdf" android:gravity="center_horizontal" android:id="@id/quickpanel_wifi_btn_text" android:paddingTop="35.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/quickpanel_wifi_text" android:shadowDx="1.0" android:shadowDy="1.0" />
            <ImageView android:layout_gravity="bottom|center" android:id="@id/quickpanel_wifi_btn_status_icon" android:paddingLeft="2.2999878dip" android:paddingRight="2.2999878dip" android:layout_width="fill_parent" android:layout_height="5.299988dip" android:layout_marginBottom="4.0dip" android:src="@drawable/quickpanel_icon_off" android:scaleType="fitXY" />
        </FrameLayout>
        <FrameLayout android:layout_width="wrap_content" android:layout_height="65.32999dip" android:layout_weight="1.0">
            <ImageView android:layout_gravity="center_horizontal" android:id="@id/quickpanel_bt_btn_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:src="@drawable/quickpanel_icon_bluetooth_off" />
            <com.android.systemui.statusbar.quickpanel.BluetoothSettingButton android:textSize="0.0dip" android:textStyle="bold" android:textColor="#ffdfdfdf" android:gravity="center_horizontal" android:id="@id/quickpanel_bt_btn_text" android:paddingTop="35.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/quickpanel_bluetooth_text" android:shadowDx="1.0" android:shadowDy="1.0" />
            <ImageView android:layout_gravity="bottom|center" android:id="@id/quickpanel_bt_btn_status_icon" android:paddingLeft="2.2999878dip" android:paddingRight="2.2999878dip" android:layout_width="fill_parent" android:layout_height="5.299988dip" android:layout_marginBottom="4.0dip" android:src="@drawable/quickpanel_icon_off" android:scaleType="fitXY" />
        </FrameLayout>
        <FrameLayout android:layout_width="wrap_content" android:layout_height="65.32999dip" android:layout_weight="1.0">
            <ImageView android:layout_gravity="center_horizontal" android:id="@id/quickpanel_gps_btn_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:src="@drawable/quickpanel_icon_gps_off" />
            <com.android.systemui.statusbar.quickpanel.GpsSettingButton android:textSize="0.0dip" android:textStyle="bold" android:textColor="#ffdfdfdf" android:gravity="center_horizontal" android:id="@id/quickpanel_gps_btn_text" android:paddingTop="35.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/quickpanel_gps_text" android:shadowDx="1.0" android:shadowDy="1.0" />
            <ImageView android:layout_gravity="bottom|center" android:id="@id/quickpanel_gps_btn_status_icon" android:paddingLeft="2.2999878dip" android:paddingRight="2.2999878dip" android:layout_width="fill_parent" android:layout_height="5.299988dip" android:layout_marginBottom="4.0dip" android:src="@drawable/quickpanel_icon_off" android:scaleType="fitXY" />
        </FrameLayout>
        <FrameLayout android:layout_width="wrap_content" android:layout_height="65.32999dip" android:layout_weight="1.0">
            <ImageView android:layout_gravity="center_horizontal" android:id="@id/quickpanel_sound_btn_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:src="@drawable/quickpanel_icon_sound_on_on" />
            <com.android.systemui.statusbar.quickpanel.SoundSettingButton android:textSize="0.0dip" android:textStyle="bold" android:textColor="#ffdfdfdf" android:gravity="center_horizontal" android:id="@id/quickpanel_sound_btn_text" android:paddingTop="35.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/quickpanel_sound_text" android:shadowDx="1.0" android:shadowDy="1.0" />
            <ImageView android:layout_gravity="bottom|center" android:id="@id/quickpanel_sound_btn_status_icon" android:paddingLeft="2.2999878dip" android:paddingRight="2.2999878dip" android:layout_width="fill_parent" android:layout_height="5.299988dip" android:layout_marginBottom="4.0dip" android:src="@drawable/quickpanel_icon_on" android:scaleType="fitXY" />
        </FrameLayout>
        <FrameLayout android:layout_width="wrap_content" android:layout_height="65.32999dip" android:layout_weight="1.0">
            <ImageView android:layout_gravity="center_horizontal" android:id="@id/quickpanel_brightness_btn_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:src="@drawable/quickpanel_icon_brightness_off" />
            <com.android.systemui.statusbar.quickpanel.BrightnessSettingButton android:textSize="0.0dip" android:textStyle="bold" android:textColor="#ffdfdfdf" android:gravity="center_horizontal" android:id="@id/quickpanel_brightness_btn_text" android:paddingTop="35.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/quickpanel_brightness_text" android:shadowDx="1.0" android:shadowDy="1.0" />
            <ImageView android:layout_gravity="bottom|center" android:id="@id/quickpanel_brightness_btn_status_icon" android:paddingLeft="2.2999878dip" android:paddingRight="2.2999878dip" android:layout_width="fill_parent" android:layout_height="5.299988dip" android:layout_marginBottom="4.0dip" android:src="@drawable/quickpanel_icon_off" android:scaleType="fitXY" />
        </FrameLayout>
        <FrameLayout android:layout_width="wrap_content" android:layout_height="65.32999dip" android:layout_weight="1.0">
            <ImageView android:layout_gravity="center_horizontal" android:id="@id/quickpanel_mobiledata_btn_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:src="@drawable/quickpanel_icon_mobile_data_off" />
            <com.android.systemui.statusbar.quickpanel.MobileDataSettingButton android:textSize="0.0dip" android:textStyle="bold" android:textColor="#ffdfdfdf" android:gravity="center_horizontal" android:id="@id/quickpanel_mobiledata_btn_text" android:paddingTop="35.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/quickpanel_mobiledata_text" android:shadowDx="1.0" android:shadowDy="1.0" />
            <ImageView android:layout_gravity="bottom|center" android:id="@id/quickpanel_mobiledata_btn_status_icon" android:paddingLeft="2.2999878dip" android:paddingRight="2.2999878dip" android:layout_width="fill_parent" android:layout_height="5.299988dip" android:layout_marginBottom="4.0dip" android:src="@drawable/quickpanel_icon_off" android:scaleType="fitXY" />
        </FrameLayout>
        <FrameLayout android:layout_width="wrap_content" android:layout_height="65.32999dip" android:layout_weight="1.0">
            <ImageView android:layout_gravity="center_horizontal" android:id="@id/quickpanel_rotation_btn_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="3.0dip" android:src="@drawable/quickpanel_icon_rotation_off" />
            <com.android.systemui.statusbar.quickpanel.AutoRotationSettingButton android:textSize="0.0dip" android:textStyle="bold" android:textColor="#ffdfdfdf" android:gravity="center_horizontal" android:id="@id/quickpanel_rotation_btn_text" android:paddingTop="35.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/quickpanel_rotation_text" android:shadowDx="1.0" android:shadowDy="1.0" />
            <ImageView android:layout_gravity="bottom|center" android:id="@id/quickpanel_rotation_btn_status_icon" android:paddingLeft="2.2999878dip" android:paddingRight="2.2999878dip" android:layout_width="fill_parent" android:layout_height="5.299988dip" android:layout_marginBottom="4.0dip" android:src="@drawable/quickpanel_icon_off" android:scaleType="fitXY" />
        </FrameLayout>
    </com.android.systemui.statusbar.quickpanel.QuickSettingsView>
</com.android.systemui.statusbar.ExpandedView>
^Remember to leave an extra space at the end of the .xml if you just copy and paste!

Note: I also removed the
Code:
android:paddingLeft="4.0dip"
code in the line starting <com.android.systemui.statusbar.DateView in an attempt to center the date, but that didn't work.. compare with an unedited one to fix that line... or just throw it in there..
 
Last edited:
  • Like
Reactions: chrisn91

Top Liked Posts

  • There are no posts matching your filters.
  • 20
    *THIS HOPES TO SERVE AS A SLIPPERY STEPPING STONE FOR THOSE VENTURING INTO THE MODDING SCENE - AND FOR ANYONE TO POST THEIR QUESTIONS, ANSWERS, REQUESTS, AND COMMENTS ABOUT THEMES/MODS*

    NOTE: This is still a WIP... I will clean it up, add/remove/replace as I, and others, see fit. Trying to make this a good resource for those wanting to journey into the rabbit hole..

    I will try to make this as general as possible, but it is still mostly based off of Windows 7 OS. I will attempt to incorporate Linux (Ubuntu) as I can. Also, I urge other devs and users to please offer your advice or comments on how to make this thread as useful as possible, "I accept opinions, phone numbers, and the fact that not everyone wants smiles and eye contact" (sorry, homage to doseone - couldn't resist;)) - but PM's or posts are fine...

    Finally, I have said it before about Android, and will say it again.. “there is more than one way to skin a cat...” meaning, that there are many, many ways to achieve the same outcome with different methods (but, I’m not sure who would want to skin a cat, and what for… but I guess I don’t even want to know where that phrase came from) - so, PLEASE SEARCH for more information, methods, tricks, and techniques - I can't fit everything under the sun into two posts - plus, I still got a lot to learn myself ;)...

    Tools
    Java JDK
    Android SDK
    7-zip (or similar file manager)
    Notepad++ (or similar text editor – do not use windows notepad!)
    GIMP (or similar image editor)
    Sign+ (or similar zip-signing program)

    Getting files from your phone
    -Root browser: copy from original file location to sdcard

    -adb pull (I will not go into an adb tutorial, but here’s an example):
    Code:
    adb pull /system/app/SystemUI.apk C:\Pulled
    (I have two folders (“Pulled” and “Push”) in the root of my C:\ drive, where I do all my pulling and pushing)

    -Take from a cwm backup (nandroid)

    -Make a System Dump through adb (this is just something kind of fun, but not so necessary):
    Code:
    adb shell
    su
    busybox tar czvf /sdcard/systemdump.tgz /system
    exit
    exit
    adb pull /sdcard/systemdump.tgz
    You can delete it from your sdcard once it’s on your computer.
    (for a Data Dump, just change the location to /data, and rename the tar file output..)

    Edit png/jpeg images
    -use 7-zip, winzip, (or stock File Roller on Ubuntu)

    -GIMP or Photoshop (work best – but there are many other “tools” out there)

    -open the apk (archive) with one of the above mentioned file managers and navigate to the appropriate /res/drawable folder (usually drawable-hdpi, but not only..). And, either copy the files you want to edit directly from there to your desktop or working folder, and make edits and/or drop your replacement files in the appropriate drawable folder in the apk with your file manager. Then move to your system to try it out.

    GIMP Notes (it’s what I’m most familiar with, so, Photoshop users use your similar methods):
    -Many times the images are in “Indexed” color mode. Go to Image>Mode and change it to RGB mode to avoid editing troubles.
    -In GIMP 2.8.0, use the “Export..” feature to save your edited images (in older versions, use “Save as..”), and given quality options, I usually tend to the highest, and all boxes checked.

    Decompiling/editing apks
    Decompiling apks is necessary to edit .xml files and .9.png files.
    See here for more information on the original apktool by brut.all: http://code.google.com/p/android-apktool/ <-- for ICS framework-res.apk, you need to decompile with v1.4.2, and compile with v1.4.3
    See here for new version (v1.4.9) of apktool taken over by iBotPeaches: http://xdaforums.com/showthread.php?t=1755243 <-- USE THIS ONE (it works for decompiling AND recompiling framework-res.apk on ICS)
    More resources for decompiling/recompiling:
    http://xdaforums.com/showthread.php?t=1752201
    http://xdaforums.com/showthread.php?t=1466100
    Some Tools:
    APK Manager/APK Multi-Tool: http://apkmultitool.com/?q=node/5
    APK Changer: http://xdaforums.com/showthread.php?t=1189971
    Studio Android: http://xdaforums.com/showthread.php?t=1491689
    Tickle My Android: http://xdaforums.com/showthread.php?t=1633333

    -use apktool alone (see above links for details)

    -use an APK editing program (I still mostly use APK Manager v5.0.2 and switch out the apktool files)

    -set the proper framework for apktool by placing framework-res.apk, moto-res.apk, blur-res.apk, and SystemUI.apk in the same folder as apktool.jar. Then, open the command prompt or terminal on that folder (need to hold shift and right-click maybe), and type the following, one at a time for each of the four apks listed above, hitting Enter after each entry (note that not all 4 apks are needed for all files, but it doesn’t hurt):
    Code:
    apktool if framework-res.apk
    You should get a “Framework installed to:” message after each, showing you the location to which they were saved. Note on that: In all actuality, you could simply drop a copy of each in the \apktool\framework folder (my path is C:\Users\Owner\apktool\framework\), but rename them as following:
    framework-res.apk --> 1.apk
    moto-res.apk --> 2.apk
    blur-res.apk --> 3.apk
    SystemUI.apk --> 127.apk

    Re-compiling apks
    When compiling system apks, the trick is to save the original signatures (META-INF) folder, the AndroidManifest.xml (unless you are editing that but, that’s a whole different story depending on the apk), and not to compress the resources.arsc file (where all of the /values folders get hidden). Some apk tools do some of the work for you, but here’s few methods (they can be dependent on what was edited):
    -after re-compiling your apk, copy your edited and compiled files back over to the original apk to preserve signatures and everything else you did not edit (do this with two 7-zip windows open). For edits to any xml in the /values folders, you need to copy over the resources.arsc also (see next note).

    -after editing anything in the values folder, you need to re-insert the resources.arsc without compression. For example, rename your SystemUI.apk to SystemUI.zip, take out the newly compiled resources.arsc with your file manager and then “Add to archive..” that resources.arsc to the SystemUI.zip in “Store” mode (or “No compression”). Then rename the .zip back to .apk, and you should be good to go (you can check the compression directly in the 7-zip window – if the “Size” and “Packed size” values are different, then it’s compressed).

    -you can also do it vice-versa, and copy the original META-INF, AndroidManifest.xml, etc., to your edited apk with 7-zip

    -if you want to edit the AndroidManifest.xml, depending on the specific apk, be prepared to re-sign nearly all system and framework apps

    Edit 9patch (.9.png) images
    Do some research on what 9patch images are and how they work, but the most important point is to not disturb the 1-pixel black border around the image, unless you want to redraw it. You must decompile in order to edit 9patch images.

    -use GIMP or Photoshop

    -use draw9patch included in the android-sdk (fool-proof)

    -with GIMP you can select the inner area, leaving the 1-pixel border unselected, and edit colors and such that way

    -draw9patch is included in the /tools folder in the Android SDK, it only allows you to edit the 1-pixel border and only draws in #000000 (black) color. It will add one pixel to all sides if you are not careful, so you may need to resize it (down 2 pixels) with GIMP first

    Baksmali/smali classes.dex (jar/apk files)
    You need to have deodexed files to edit the classes.dex and the smali files within. See here for more info, downloads, and the definition of smali, baksmali, and dalvik: http://code.google.com/p/smali/

    -decompiling the apk or jar with apktool will also disassemble (for editing) the smali files

    -I used to use this baksmali/smali set with tutor (a good resource): http://xdaforums.com/showthread.php?t=1136625

    -or, as I typically do now, just remove the classes.dex from the apk/jar and just baksmali, edit, then smali that into a new-classes.dex. For example, I have a folder called smali_bak on my desktop containing baksmali.jar, smali.jar, and a .txt file with the commands shown below (I’m lazy to type it each time, so I copy and paste:)) – I put the classes.dex that I wish to edit in that same folder, then open the command prompt on that folder and type the following:
    To disassemble (baksmali):
    Code:
    java -jar baksmali.jar -o classout/ classes.dex
    To assemble (smali):
    Code:
    java -Xmx512M -jar smali.jar classout/ -o new-classes.dex
    Then, rename it to classes.dex and drop it in the original apk or jar file with a file manager (no need to worry about compression with the classes.dex, as far as I know)

    Deodex and create new odex files
    Deodexing is basically the process of converting your .odex files into classes.dex files, and inserting those into the apk/jar - basically. And, re-odexing is the opposite - basically.

    See cogeary's excellent guide on deodexing for an excellent guide on deodexing.

    -xUltimate v2.4+ works well for deodexing

    -see also dsixda's Android Kitchen, and there are many other tools for deodexing..

    -See here for manual deodex methods: http://xdaforums.com/showthread.php?t=1208320

    -See here for a tool/guide to create a new odex file: http://xdaforums.com/showthread.php?t=1853523

    This is the new bootclass path for us (and a bunch of other Motos) to use with ICS (taken from /init.rc, minus the jars that didn't exist in /system/framework):
    Code:
    /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework-ext.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/filterfw.jar:/system/framework/com.motorola.android.frameworks.jar:/system/framework/com.motorola.android.widget.jar:/system/framework/com.motorola.frameworks.core.addon.jar

    Methods to move your modded files to your phone
    -Create cwm recovery flash zips: Create a zip package (normal compression is fine) containing the proper folder structure (for example: /system/app/ and put your apk in the /app folder if that’s where it belongs). I have two folders on my desktop: /system and /META-INF, which I re-use basically for any flashable zip that I make (except ROM’s, of course). The /system folder has an /app folder or /framework folder usually, depending on what I was last working on (but it can obviously have different paths and many folders if need be), and in the /META-INF/com/google/android folder is an updater-script, and an update-binary file (just grab those from another update.zip mod package around here for now). The updater-script has the installation (or removal) info – meaning the location, permissions, and so on… After you create a zip package with those items and your modded files, then use a program like Sign+ to sign the package (or don’t but then you will need to toggle signature checks in recovery mode before installing). This will create three new files in the /META-INF folder (two CERT files and a MANIFEST).

    -Use adb to push the files (don’t forget to set proper permissions!):

    -Use Root Explorer (or similar) to move it (don’t forget to set proper permissions!):

    NOTE: When experimenting with system files, please have a backup accessible just in case. Or, as I often do, make two zip packages - one with the modded files, and one with the original files to restore if necessary. And, as always, you are responsible for what you do to your device.

    FURTHER READING:
    Since I am obviously not the first to put something like this together, here are a few other general themeing guides:
    Guide by theimpaler747: http://xdaforums.com/showthread.php?t=916814
    Guide by Nottach: http://xdaforums.com/showthread.php?t=1186819
    Interactive help thread by jeffsanace: http://xdaforums.com/showthread.php?t=1605509
    More (possibly out-dated) tips from Stericson: http://xdaforums.com/showthread.php?p=3175518
    See also this theming guide - did not read fully through it, but looks promising.
    9
    [HOW-TO] ADB/Change Moto Lockscreen to AOSP

    BRIEF GUIDE TO USING ADB:
    I will run through some example commands using adb - like pulling files from phone, pushing files to phone, deleting, setting permisisons, etc..
    If you have adb set up in your environmental variables or .bashrc, then you can simply open a command prompt on the folder you would like to use adb from (right-click, or hold shift and right-click on the folder). Just always keep in mind your paths and folder structures.. Also, see HERE for more on adb.

    Make sure you have adb and your device drivers installed and set up properly, then connect your usb..
    Code:
    #Terminates the adb server process (can help clear up adb issues):
    adb kill-server
    
    #Starts adb (or just use any adb command to start):
    adb start-server
    
    #List attached devices
    adb devices
    
    #Start logcat (Ctrl+C will terminate the current process)
    adb logcat
    
    #To pull files to the folder in your command prompt/terminal path
    adb pull /system/framework/framework-res.apk
    adb pull /system/etc/paranoid/preferences.conf
    adb pull /cache/recovery/last_log
    
    #To push files to our phone we need to first push them to the sdcard (also making a new directory on the sdcard called "newfolder")
    adb push framework-res.apk /sdcard/
    adb push SystemUI.apk /sdcard/
    adb shell mkdir /sdcard/newfolder
    adb push dexopt-wrapper /sdcard/newfolder
    
    #To start a remote shell in the attached device and get superuser access
    adb shell
    su
    
    #The following commands need to be run from shell..
    #Mount /system re-writable
    mount -o rw,remount -t ext3 /dev/block/system /system
    
    #Copy files from sdcard to system
    cp /sdcard/framework-res.apk /system/framework
    cp /sdcard/SystemUI.apk /system/app
    cp /sdcard/newfolder/dexopt-wrapper /system/bin
    
    #Set proper permissions
    chmod 0644 /system/framework/framework-res.apk
    chmod 0644 /system/app/SystemUI.apk
    chmod 0755 /system/bin/dexopt-wrapper
    
    #Remove dalvik-cache and/or other files (note: on some ROMs, dalvik-cache is in /cache/dalvik-cache)
    rm /data/dalvik-cache/system@app@SystemUI.apk@classes.dex
    rmdir /sdcard/newfolder
    
    #Mount /system read-only (not necessary if rebooting right away)
    mount -o ro,remount -t ext3 /dev/block/system /system
    
    #Exit shell
    exit
    exit
    
    #Reboot the device
    adb reboot

    Change Moto Lockscreen to stock AOSP (MultiwaveView)
    (FYI - In GB it was a simple bools.xml edit to switch the Moto lock off.. and there's probably another way to do this - like by bypassing the zz_moto stuff entirely, but..)
    If you have a custom locksceen already, then this probably doesn't apply or has already been done...
    -decompile framework-res.apk
    -open /res/layout/zz_moto_keyguard_unlock_widget.xml with Notepad++, Geany, or similar text editor
    -delete all text there, and replace with this:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <com.android.internal.widget.multiwaveview.MultiWaveView android:orientation="horizontal" android:id="@id/unlock_widget" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true" android:targetDescriptions="@array/lockscreen_target_descriptions_with_camera" android:directionDescriptions="@array/lockscreen_direction_descriptions" android:targetDrawables="@array/lockscreen_targets_with_camera" android:handleDrawable="@drawable/ic_lockscreen_handle" android:rightChevronDrawable="@drawable/ic_lockscreen_chevron_right" android:waveDrawable="@drawable/ic_lockscreen_outerring" android:outerRadius="@dimen/multiwaveview_target_placement_radius" android:hitRadius="@dimen/multiwaveview_hit_radius" android:vibrationDuration="20" android:snapMargin="@dimen/multiwaveview_snap_margin" android:feedbackCount="3" android:verticalOffset="0.0dip" android:horizontalOffset="0.0dip"
      xmlns:android="http://schemas.android.com/apk/res/android" />
    Stopping here and recompiling would give you something like this:
    Screenshot_2012-11-07-12-40-12.png

    The above just changes the "widget" to the aosp multiwaveview and uses resources/drawables that we already have, which Moto decided to overlay with theirs (adding more bulk to the apks/jars)...
    To edit the layout (remove/rearrange things in general), you need to edit keyguard_screentab_unlock.xml in the same folder - it's all there - the clock, date, sound toggle, horz. divider, charge (@id/status1) and alarm icons, unlock widget, music controls, etc... just play around with things.. ;)

    To add the phone and text msg icons to the unlock widget, we need to edit the android.policy.jar and other xmls in framework-res.
    More to come on that...

    For Honeycomb style ripple lockscren mod, see here: http://xdaforums.com/showpost.php?p=33854556&postcount=70


    Change Clock Color in Status Bar (OUTDATED: FOR GB)
    (This is a method I came up with myself)

    -First, find a color that you want for your status bar clock.
    -Now, find the hex code (combination of 6 letters and numbers) for that color --> see HERE, and/or HERE, and the Android Design guide for colors HERE. You may also use programs like GIMP and Photoshop to preview colors by hex code.
    *For reference, 000000 is the absence of color (completely black), on the other end is ffffff (full on, all blinding color - completely white). Also, 33b5e5 is for ICS blue, 99cc00 is for android green (used below in the example).

    -Decompile SystemUI.apk
    -Open /res/layout/status_bar.xml (with a proper text editor like Notepad++)
    -Look for the line that I highlighted in blue (from stock 2.3.6):
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <com.android.systemui.statusbar.StatusBarView android:orientation="vertical" android:background="@drawable/statusbar_background" android:focusable="true" android:descendantFocusability="afterDescendants"
      xmlns:android="http://schemas.android.com/apk/res/android">
        <LinearLayout android:orientation="horizontal" android:id="@id/icons" android:layout_width="fill_parent" android:layout_height="fill_parent">
            <TextView android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:textSize="16.0sp" android:textStyle="bold" android:gravity="left|center" android:id="@id/onsText" android:paddingLeft="6.0px" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:maxLength="18" />
            <com.android.systemui.statusbar.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:paddingLeft="6.0dip" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" android:layout_alignParentLeft="true" />
            <LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true" />
            [COLOR="Blue"]<com.android.systemui.statusbar.Clock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />[/COLOR]
        </LinearLayout>
        <LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">

    -Add the code android:textColor="#ff33b5e5" to the line that starts with <com.android.systemui.statusbar.Clock as shown highlighted red below (NOTE: Insert your choice of hex code here - the 33b5e5 is just used as an example):
    Code:
    <com.android.systemui.statusbar.Clock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" [COLOR="Red"]android:textColor="#ff99cc00"[/COLOR] android:gravity="left|center" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
    Again, insert your choice of color in the blanks> android:textColor="#ff------"

    -Make sure your spaces are uniform and then save the xml.

    -Compile the apk, and use your own method for copying signatures (I use APK Manager, it does it for you)

    -Move to your phone by your own means... Enjoy! Please don't blame me if you mess something up!



    Related:
    There are a lot more mods with partial direction in individual posts throughout this thread.. read on, if interested. I will hopefully compose a location list or something for some of these other mods in the near future.. until then, good luck, and godspeed...

    HOW-TO Remove Carrier Name from Status Bar

    Bools.xml mods list
    2
    Very nice! A while ago I figured out a different way to do it, having to do with editing framework-res/res/values/styles.xml and changing a color code in there. But your way is a bit simpler ;).
    I've learned that there are definitely multiple ways to skin a cat, in terms of themeing android - I went the long way with inverting some apks in Romulus (I did not touch the AndroidManifest), and that forced me to learn how to read and understand this "extensible markup language" a bit better - and to correct my text color issues, I learned that you can just add the text colors if you find the right xml...

    Thanks for the guide! :) It would be awesome if this thread turned into something like this (see the 2nd and 3rd posts).

    Oh boy, I should've reserved more posts for something like that! I would love to put something comprehensive together like Nottach did, but with ICS coming, I know a few things will change - so, I figure I'm better off waiting and learning that system first..
    2
    My bad lol, should have explained better. No errors decompiling, editing, compiling or signing. Just trying to install right from the root folder I placed it on in my SD. Don't know if its because it wont install over the OG SystemUI.akp or what. Yeah the OG was still intact while I tried installing the edited one. In fact I tried just moving the edited one into my system apps n it kept forceclosing to the point where I had to reboot and when it started back up I had no status bar at all! lol no worries though, had a nandroid and have still been trying to figure it out...maybe signatures have somthing to do with it. Idk...

    Sent From My DROID That DOES Not My APPLE That DIDN'T.

    Thank goodness for cwm on boot and fresh backups :)..

    Well, I can tell you right off the bat that your method of installation is giving you problems. Also, don't sign the SystemUI.apk, you want to retain the original signature.

    It is possible to move it on your phone with root explorer, but I know some people are against this method.. but, here it goes anyway..

    -First go and check the permissions of (and possibly make a copy of) the file that you want to replace. Go to the file location, mount R/W, and long-press the file and choose permissions - and remember them, or write it down. (Note: All apps and framework in /system are rw-r--r--)

    - Next, copy the new file that you want to put on your phone from your sdcard.

    - IMPORTANT: Paste it in another system folder besides the final destination and SET the proper PERMISSIONS and rename if necessary to match the file you are replacing (need to mount R/W first). For example, paste your edited SystemUI.apk in the /system folder (NOT directly in the app folder), and change the perms there..

    - IMPORTANT: Long-press on the file you are moving and select "MOVE".

    - Then paste it in the final destination folder (i.e. /system/app), and select ok to overwrite the existing.

    - Don't try to do anything else except reboot. And, it would be nice to wipe dalvik and cache partition while you are rebooting, if you have the chance.

    Please, if anyone tries this method, be cautious, use CWM on Boot, and have a fresh backup just in case.. also, I assume no responsibility for your actions.. I have done this multiple times with many different file types and locations..

    Sent from my phone's mind
    2
    It wouldn't let me add the updated screen shot to my last post:
    uploadfromtaptalk1368994267614.jpg

    Brought to you by time and relative dimensions in space.