[GUIDE] ICS Style 'Settings.apk' - Make it yourself !! !!

Search This thread

CoD.<D.J.>

Senior Member
Nov 24, 2011
148
576
jaipur
Thanks

Awesome tutorial..... thanks
Screenshot


SC20120407-182905.png
 
Last edited:

balamu96m

Senior Member
May 2, 2011
1,216
1,304
Chennai
yeah, i can compile and decompile, without error on apktool. So, what must I do with styles.xml ?

Then you should not get any error while compiling after modding only Settings.xml...........looks interesting......if you haven't touched styles.xml, then from where is that error comming ??:eek:

try starting from the first n reply dude.........
 

saldymhmd

Senior Member
Oct 17, 2011
941
581
30
Bekasi (Indonesia)
Then you should not get any error while compiling after modding only Settings.xml...........looks interesting......if you haven't touched styles.xml, then from where is that error comming ??:eek:

try starting from the first n reply dude.........

yeah believe me, yesterday i only edited the strings.xml and settings.xml. Then i build the settings.apk without any error, but it forced close when i opened :D is that styles.xml need to edited too ?

---------- Post added at 06:41 PM ---------- Previous post was at 06:31 PM ----------

Awesome tutorial..... thanks
Screenshot


SC20120407-182905.png

damn, i'm envy with other people that successful with the tutorial :(
 

varun.chitre15

Inactive Recognized Developer
Oct 23, 2011
3,153
15,403
Sangli
@balamu96m
Yep....but those icons are idpi and I need mdpi:D:D

@saldymhmd
Can u upload ur purely stock settings.apk?
Maybe I can give it a hit.

Burned from my laser torch using pencil cells
 

SpaceCaker

Senior Member
Mar 26, 2011
13,545
10,904
netherlands
www.youtube.com
This is my settings.xml

this one was very diffrent then yours :(



HTML:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/settings_label" android:key="parent"
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
    <com.android.settings.IconPreferenceScreen android:title="@string/radio_controls_title" settings:icon="@drawable/ic_settings_wireless">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.WirelessSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/call_settings_title" android:key="call_settings" settings:icon="@drawable/ic_settings_call">
        <intent android:targetPackage="com.android.phone" android:action="android.intent.action.MAIN" android:targetClass="com.android.phone.CallFeaturesSetting" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/sound_settings_title" settings:icon="@drawable/ic_settings_sound">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.SoundSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/display_settings_title" settings:icon="@drawable/ic_settings_display">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.DisplaySettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/security_settings_title" android:key="security_settings" settings:icon="@drawable/ic_settings_security">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.SecuritySettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/applications_settings" android:key="applications_settings" settings:icon="@drawable/ic_settings_applications">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.ApplicationSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/sync_settings" android:key="sync_settings" settings:icon="@drawable/ic_settings_sync">
        <intent android:action="android.settings.SYNC_SETTINGS" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/privacy_settings" android:key="privacy_settings" settings:icon="@drawable/ic_settings_privacy">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.PrivacySettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/storage_settings" settings:icon="@drawable/ic_settings_storage">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.deviceinfo.Memory" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/language_settings" settings:icon="@drawable/ic_settings_language">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.LanguageSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/voice_input_output_settings" settings:icon="@drawable/ic_settings_speech">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.VoiceInputOutputSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/accessibility_settings" settings:icon="@drawable/ic_settings_accessibility">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.AccessibilitySettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/dock_settings" android:key="dock_settings" settings:icon="@drawable/ic_settings_dock">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.DockSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/date_and_time_settings_title" settings:icon="@drawable/ic_settings_date_time">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.DateTimeSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/about_settings" settings:icon="@drawable/ic_settings_about">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.DeviceInfoSettings" />
    </com.android.settings.IconPreferenceScreen>
</PreferenceScreen>


---------- Post added at 08:30 PM ---------- Previous post was at 08:29 PM ----------

and this is my Styles.xml

HTML:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="info_label">
        <item name="android:textAppearance">@style/TextAppearance.info_label</item>
        <item name="android:paddingRight">4.0dip</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>
    <style name="info_value">
        <item name="android:textAppearance">@style/TextAppearance.info_value</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>
    <style name="info_small">
        <item name="android:textAppearance">@style/TextAppearance.info_small</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>
    <style name="info_layout">
        <item name="android:orientation">vertical</item>
        <item name="android:paddingLeft">10.0dip</item>
        <item name="android:paddingTop">10.0dip</item>
        <item name="android:paddingRight">10.0dip</item>
        <item name="android:paddingBottom">10.0dip</item>
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">fill_parent</item>
    </style>
    <style name="entry_layout">
        <item name="android:orientation">horizontal</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>
    <style name="form_value">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
    </style>
    <style name="TextAppearance" parent="@android:style/TextAppearance" />
    <style name="TextAppearance.info_label" parent="@style/TextAppearance">
        <item name="android:textSize">14.0sp</item>
        <item name="android:textStyle">bold</item>
    </style>
    <style name="TextAppearance.info_small" parent="@style/TextAppearance">
        <item name="android:textSize">12.0sp</item>
        <item name="android:textStyle">normal</item>
    </style>
    <style name="TextAppearance.info_value" parent="@style/TextAppearance">
        <item name="android:textSize">14.0sp</item>
        <item name="android:textStyle">normal</item>
    </style>
    <style name="TallTitleBarTheme" parent="@android:style/Theme.NoTitleBar">
        <item name="android:windowContentOverlay">@null</item>
    </style>
    <style name="Theme.CustomDialog" parent="@android:style/Theme.Dialog">
        <item name="android:windowBackground">@drawable/filled_box</item>
    </style>
    <style name="WhiteStyle" parent="@android:style/Theme.Light">
        <item name="android:listViewStyle">@android:style/Widget.ListView.White</item>
    </style>
    <style name="WifiProgressCategory" parent="@android:style/Widget.TextView.ListSeparator">
        <item name="android:textColor">?android:textColorPrimaryInverse</item>
    </style>
    <style name="WifiTheme" parent="@android:style/Theme.Light.NoTitleBar">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
        <item name="android:listSeparatorTextViewStyle">@style/WifiProgressCategory</item>
        <item name="android:windowSoftInputMode">adjustPan</item>
    </style>
</resources>
 

alzbac

Senior Member
Feb 7, 2011
902
1,915
I don't understand second part.
Here are my xml's.
I would be gratefull if anyone can help me.
 

Attachments

  • desktop.rar
    1.8 MB · Views: 12
Last edited:

CoD.<D.J.>

Senior Member
Nov 24, 2011
148
576
jaipur
This is my settings.xml

this one was very diffrent then yours :(



HTML:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/settings_label" android:key="parent"
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
    <com.android.settings.IconPreferenceScreen android:title="@string/radio_controls_title" settings:icon="@drawable/ic_settings_wireless">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.WirelessSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/call_settings_title" android:key="call_settings" settings:icon="@drawable/ic_settings_call">
        <intent android:targetPackage="com.android.phone" android:action="android.intent.action.MAIN" android:targetClass="com.android.phone.CallFeaturesSetting" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/sound_settings_title" settings:icon="@drawable/ic_settings_sound">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.SoundSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/display_settings_title" settings:icon="@drawable/ic_settings_display">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.DisplaySettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/security_settings_title" android:key="security_settings" settings:icon="@drawable/ic_settings_security">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.SecuritySettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/applications_settings" android:key="applications_settings" settings:icon="@drawable/ic_settings_applications">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.ApplicationSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/sync_settings" android:key="sync_settings" settings:icon="@drawable/ic_settings_sync">
        <intent android:action="android.settings.SYNC_SETTINGS" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/privacy_settings" android:key="privacy_settings" settings:icon="@drawable/ic_settings_privacy">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.PrivacySettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/storage_settings" settings:icon="@drawable/ic_settings_storage">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.deviceinfo.Memory" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/language_settings" settings:icon="@drawable/ic_settings_language">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.LanguageSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/voice_input_output_settings" settings:icon="@drawable/ic_settings_speech">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.VoiceInputOutputSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/accessibility_settings" settings:icon="@drawable/ic_settings_accessibility">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.AccessibilitySettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/dock_settings" android:key="dock_settings" settings:icon="@drawable/ic_settings_dock">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.DockSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/date_and_time_settings_title" settings:icon="@drawable/ic_settings_date_time">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.DateTimeSettings" />
    </com.android.settings.IconPreferenceScreen>
    <com.android.settings.IconPreferenceScreen android:title="@string/about_settings" settings:icon="@drawable/ic_settings_about">
        <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.DeviceInfoSettings" />
    </com.android.settings.IconPreferenceScreen>
</PreferenceScreen>





samsung touchwiz users can use my working mod as refrence

here
 

SpaceCaker

Senior Member
Mar 26, 2011
13,545
10,904
netherlands
www.youtube.com
Yours was same as mine I modified the one u attached at 1st page
here it is .

And this wont work on stock rom. But I suppose you are already on custom rom
just try it.

Hmm i am at custom rom based on stock
And tried this settings apk

But not worked unfortunantly

I am on mdpi and gb rom

Thats maybe the problem?

Anyway thanks for trying

unwritten sentance
 

MarioXD

Member
Mar 26, 2012
24
13
Barcelona
Hi I can not make it work, and try with this but not work brignes and volume controls.

sorry my bad english XD

mi crom is cm7 on galaxy ace

anyone can help me?

thanksss
 

Attachments

  • originalSettings.apk
    2 MB · Views: 6
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 252
    android_tutorial.jpg

    Hi all !! This is a guide on how to mod your Settings.apk to make it like an ICS's one !!

    My sincere credits to iiandskater. He is the one who FIRST made MODS like this. I learnt these by comparing his MOD !!
    He hasn't come up with a guide because he doesn't have time . (I think so!)

    If you have completed modding and posting it ( on any website/forum), then please give credits and give a link to this thread !! This helps it reaching more people !! Thanks.


    Pre-requisites:
    -7zip
    -Notepad++

    This guide helps you to mod your settings' main screen only. If you want mod even other screens, then you need to read - why this/that step is done.
    If you want to know 'Why is this/that step done?' , then read the post completely !!:D

    I'll start from the basics.


    Starting with basics:

    1. Decompile your Settings.apk with 'apktool' (or) Apk Multi-tool (or) anything like that of your comfort !
    Why is this/that step done?: It is done in order to decode .xml files the apk.
    I decompiled with apktool.
    00.png



    2. Now navigate to Decompiled_Folder\res\values

    3. There, open 'strings.xml' with notepad++
    1.png


    4. Go to the very end of the file, there above </resources>, add the following:
    Code:
     <string name="location_settings_title">Location service</string>
        <string name="settings_ics_system">SYSTEM</string>
        <string name="settings_ics_radio">WIRELESS & NETWORKS</string>
        <string name="settings_radio_more">More...</string>
        <string name="settings_ics_device">DEVICE</string>
        <string name="settings_ics_personal">PERSONAL</string>
        <string name="settings_ics_system_cap">SYSTEM</string>
        <string name="power_usage_summary_text">Battery</string>

    It should look like this:
    2.png


    Now save the file and close it.

    Why is this/that step done?: This is for the 'text' that appear at different places. For example:
    txt1.png



    5. Now navigate to decompiled_folder\res\xml\

    6. There open 'settings.xml' with notepad++
    4.png


    Any phone's user can follow upto this blindly, but from here you should do similar things for your phone.

    HTC users, read this


    7. Your 'settings.xml' will look like this (may not be exact)(this is my modded settings.xml - i'll explain what i have modded):
    4a.png


    Now i have separated different 'things'/tags with an empty line between them, so that you won't get confused:

    5aaa.png


    Here, i will explain every different 'things'/tags with only one example, other things, you yourself will have try because others will be similar to what i explain.

    Preference screen:
    From the above picture, i am taking only the circled (can't 'define' its radius lol :D).
    mod2.png


    Now lets zoom it:
    mod1.png


    On reading it, you yourself can understand that:

    ---android:title="@string/wifi_quick_toggle_tittle" refers to a TEXT registered under the string name "wifi_quick_toggle_tittle" in the 'strings.xml'.
    Now check in your 'strings.xml', which is located at res/values/, by searching for "wifi_quick_toggle_tittle". There you will find this line/line similar to this:
    Code:
     <string name="wifi_quick_toggle_title">Wi-Fi</string>
    You can very well understand that the TEXT between the tags here(in strings.xml) will appear on the screen :D:D !!

    ---settings:icon="@drawable/ic_settings_wireless"> refers to the icon located at res/drawable-ldpi (or) res/drawable-xxxx(that of your phone).

    You can leave other things as it is but except for android:targetClass="com.android.settings.wifi.WifiSettings". This is because according to this only, you are directed to another screen on selecting it !!

    Here, i need to go to Wi-Fi settings on selecting it directly from the main screen. So i need to change it.
    To change, i opened res/xml/wireless_settings.xml

    There, like what we have seen earlier, many preference screens will be defined. There i found the preference screen of Wi-Fi settings
    I copied the android:targetClass="xxxxxxxxxxxx"(something given there) to Settings.xml file.

    If you want to do it for Bluetooth, then copy any of the preference screen completely [from <com.android.settings...... to </com.android.settings.IconPreferenceScreen>
    Then make changes in the title , icon, and target classs.

    Not yet over, last thing:
    Adding custom categories like Device, Personal, System etc.
    It is this line that makes it:
    Place it anywhere above (or) in-between any two preference screens !!
    Code:
    <PreferenceCategory android:title="@string/settings_ics_radio" />

    6aaa.png


    About icons, I'll tell after re-compiling.


    8. Re-Compiling it:

    After making all necessary changes and saving the 'xml' files, re-compile (or) build the apk. You should not get any error.

    9. After building it, you'll find the new 'Settings.apk' in decompiled_folder/dist. Do NOT use it.

    Now Go the folder where you have ORIGINAL/STOCK Settings.apk. Now simply extract it to any folder, say "settings-new", using 7zip.

    8. Now go to decompiled_folder/build/apk
    From there copy the 'resources.arsc' file and paste it in "Settings-new" folder. Replace it.

    9. Now again, go to decompiled_folder/build/apk/res/xml. There copy 'settings.xml'
    Paste it in Settings-new/res/xml folder. Replace if asked.

    10. ICONS:
    After downloading the icons.zip, you'll find the icons in 'drawable-ldpi' folder. Copy everything and paste it in Settings-new/res/drawable-xxxx (that of your phone). [If you do not know what is that 'xxxx' for your phone, then paste it in every 'drawable-ldpi/mdpi' folder]
    Replace if asked.

    11. Now come back and open "Settings-new" folder. You'll find 6 objects there, including folders. Now select them all --> "7zip" --> "Add to archive...". There, select 'Archive format as 'zip'and 'compression level' as 'Store' and then select 'ok'.

    12.Now rename the newly formed 'xxxx.zip' file to 'xxxx.apk'.
    Before copying to system/app rename it to Settings.apk instead some xxxx.apk !!

    Now your apk is ready to be put in system/app !!


    If you have completed everything and would like to distribute it, then download the 'Pre-scripted-update.zip' from attachments.
    Open the archive with 7zip (no need to extract) go to system/app. Just drag and drop your modded 'Settings.apk'.
    Thats all !! Close it and flash it via recovery !!

    Thats all....i believe........still can refine it.......!
    Icons-uploaded........!!

    If you have completed modding and posting it ( on any website/forum), then please give credits and give a link to this thread !! This helps it reaching more people !! Thanks.

    If you like this thread, the hit THANKS !!
    10
    You're welcome !!
    6
    thanks for this guide i'm searching from 5 days to but i can't find.
    6
    EDIT :::: saw what i did wrong XD

    now working correctly
    5
    great guide!

    balamu96m great guide man, thanks a lot!