468x60 Ads

<>
HI all, Here is a guide
  How to add TABS to Settings with swipe gesture



So I am starting with
               How to modify settings.apk to have tabs


File to be modified is Settings.apk
This may work with ICS, JB ,Cyanogenmods settings.apk also

1.Decompile your settings.apk

2. Download the Settings.zip from attachments.

3. Extract downloaded zip it to the decompiled folder.

4. Now open res/values/strings.xml and add these lines at the end..

Quote
<string name="personal_settings_tab">Actions</string>
<string name="settings_ics_actions">APPLICATIONS</string>
<string name="program_settings_tab">Google</string>
<string name="settings_ics_google">GOOGLE APPS</string>

5. Now open res/values/ids.xml and add these lines at the end..

Quote
<item type="id" name="tabHost">false</item>
<item type="id" name="tabsLayout">false</item>
<item type="id" name="tabsText">false</item>

6. Now compile Settings.apk.... Wait Its not done yet you have to decompile it again. So decompile the settings.apk you just compiled

7. Now the part where you have to modify some smali files. Its not hard you just have to change some values in smali files I added. These are Ids of layouts and xml files.

8. Open smali/com/android/settings/TabbedSettings.smali and also open res/values/public.xml. Now you have to find the Ids given below and change them according to your public.xml. You will find lines like this in public.xml <public type="anim" name="slide_out_left" id="0x7f0c0002" /> underlined part is the ID for the name ("slide out left" here..) given. So find the ids below and replace them with the ids of names given below..

Quote
Find -------------------  Replace with ID of name 

IN smali/com/android/settings/TabbedSettings.smali

0x7f0c0002 -------------------  slide_out_left (anim)
0x7f0c0003 -------------------  slide_out_right (anim)
0x7f03005c -------------------  type="layout" name="tab_indicator"
0x7f0b011b -------------------  type="id" name="tabsText"
0x7f03005b -------------------  type="layout" name="tab_content"
0x7f0b0119 -------------------  type="id" name="tabHost"

IN smali/com/android/settings/TabbedSettings$1.smali

0x7f0c0001 -------------------  type="anim" name="slide_in_right"
0x7f0c     -------------------  type="anim" name="slide_in_left" (Only first 4 digits)

IN smali/com/android/settings/PersonalSettings.smali

0x7f040039 -------------------  type="xml" name="personal_settings"
0x7f03005a -------------------  type="layout" name="speed_container"

IN smali/com/android/settings/ProgramSettings.smali

0x7f04003a -------------------  type="xml" name="program_settings"
0x7f03005a -------------------  type="layout" name="speed_container"

9. Now open AndroidManifest.xml and under these lines

Quote
<application android:label="@string/settings_label" android:icon="@drawable/ic_launcher_settings" android:taskAffinity="">

add these lines(do not replace anything of this just add this line)

Quote
<activity android:theme="@android:style/Theme.NoTitleBar" android:label="@string/settings_label_launcher" android:name="TabbedSettings" android:taskAffinity="com.android.settings" android:clearTaskOnLaunch="true" android:launchMode="singleTop">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.settings.SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="PersonalSettings" />
        <activity android:name="ProgramSettings" />

Now find these lines

Quote
<activity android:label="@string/settings_label_launcher" android:name="Settings" android:taskAffinity="com.android.settings" android:clearTaskOnLaunch="true" android:launchMode="singleTop">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.settings.SETTINGS" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

and replace with

Quote
<activity android:label="@string/settings_label_launcher" android:name="Settings">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
10. Now you are done with modifications. Recompile and sign the settings.apk  with kitchen


Here is the last step
you have to disable signature check otherwise settings will not work

Here is My Guide

Decompile /system/framework/services.jar, open com/android/server/packagemanagerservice.smali, look for

Quote
.method checkSignaturesLP([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
    .registers 10
    .parameter "s1"
    .parameter "s2"

    .prologue
    .line 1921

and add the red part

Quote
method checkSignaturesLP([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
    .registers 10
    .parameter "s1"

    .parameter "s2"

    .prologue
    .line 1921
    const/4 v6, 0x0
    return v6

That's it, now you can resign system apps
That's it.

credit goes  to Mr. CoD.<D.J.>
   His Original thread [GUIDE] How to add TABS to Settings with swipe gesture... \m

And


Mr.loSconosciuto
   His Original thread [HOW-TO] Disable signature check

Also Suraj Kumar For Writing this guide. 

4 comments:

karan said...

I install ur rom on 27 bolt.my start again.help bro.

karan said...

Hi mayank my phone start again n againm micromax a27 bolt

Mayank Choudhary said...

which rom

Unknown said...

my settings have tabs already I want swipr how to do that?

Post a Comment