[Q] Reading new settings - Android Q&A, Help & Troubleshooting

Hello!
I'm using a Galaxy Tab 2 (p5110) and building off CM 10.1.
I've successfully edited the settings app to display a bunch of menus. Reference: imgur.com/bsvM3RP
My XML file that holds the preferences looks like this:
Code:
<PreferenceScreen>
<PreferenceCategory
android:title="@string/sip_phone_setting">
<EditTextPreference
android:key="sip_extension_number"
android:title="@string/extension_number"
android:digits="0123456789"/>
<EditTextPreference
android:key="sip_server_host"
android:title="@string/server_host"
android:digits=".0123456789"/>
</PreferenceCategory>
<PreferenceCategory
android:title="@string/sip_credentials_setting">
<EditTextPreference
android:key="sip_credential_username"
android:title="@string/sip_username"/>
<EditTextPreference
android:key="sip_credentials_password"
android:title="@string/sip_password"/>
</PreferenceCategory>
</PreferenceScreen>
What I'd like to be able to do is access one of the keys from an outside application. Any ideas on how I may achieve that?

Related

[Q][DEV] Question about GingerBread code - Settings.apk

Hello everyone!
I recently started modfying Settings.apk to make it look like ICS following THIS GUIDE.
What I'm trying to do, though, is to add toggle buttons to the Wi-Fi and Bluetooth options, just like ICS.
This code:
Code:
<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">
<PreferenceCategory android:title="@string/settings_ics_radio" />
<CheckBoxPreference android:persistent="false" android:title="@string/wifi_quick_toggle_title" android:key="enable_wifi" android:summary="@string/wifi_quick_toggle_summary" />
Adds the button, but that said button does nothing.
What do I need to add in order to make it work?
Edit: I see from here that it might require smali editing, but I'm not too sure since that last guide was trying to add a toggle that didn't actually exist before, and I just want to add a button that already exists in another menu.
Thanks in advance.

Editing AndroidManifest.xml .. formatting / localized to Chinese(?), Go SMS Pro Theme

Hi everyone,
I've created a GO SMS Pro theme using their webtool,
but it appears to have yet to implement various common aspects of functionality. I want to be able to modify the AndroidManifest.xml file myself, primarily to add Airpush (the presence of which I let people know of from the beginning), but the formatting is quite garbled. I'm guessing this may be due to the localization to Chinese that the Google Play developer console reports. Does anyone have a functional, readily editable version in English with all the required information for a GO SMS Pro Theme? I want to be assured I have all the required information, rather than hacking together another xml file with Eclipse. I figured I'd install the Chinese language on my computer, but it appears Microsoft did not include such functionality in Windows 7 Premium (64-bit). I've download other GO SMS Pro themes with Airpush, figuring I could use their AndroidManifest.xml and mail.xml files as templates, but found the same formatting / editability issue. Thank you for your help!
I've since found kantbstopped519's post at the end of page 3 in the following thread: http://forum.xda-developers.com/showthread.php?t=1125626&page=3
and used what was posted:
<?xml version="1.0" encoding="UTF-8"?>
<manifest android:versionCode="5" android:versionName="1.0" android:installLocation="auto" package="com.jb.gosms.theme.kxnt.dark"
xmlns:android="http://schemas.android.com/apk/res/android">
<application android:label="@string/app_name" android:icon="@drawable/jb_smsmms">
<activity android:theme="@android:style/Theme.Dialog" android:label="@string/app_name_desc" android:name=".GoSmsInstallDialog" android:excludeFromRecents="true" android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.INFO" />
</intent-filter>
<intent-filter>
<action android:name="com.jb.mms.theme.others" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="4" />
</manifest>
Click to expand...
Click to collapse
It appears this functioned for kantbstopped519.
I used this as a template (made no additions of Airpush or anything such) and made the supposedly appropriate changes, also changing anything referencing @string to plain text directly in AndroidManifest.xml. Now I'm getting that informative "The server could not process your apk. Try again."
I've been making various changes, deletions, and resigning after each change, to repeatedly the same message. Only re-adding my original garbled-de-goop AndroidManifest.xml file and resigning has thus far resulted in a successful processing upon upload. Could this have something to do with the resources.arsc and/or classes.dex files in the root of the apk?
If the APK is already compiled then you will need to decompile it with apktool to get the XML readable.

[TUTORIAL] [MOD] How to add Extra Options in About Sections

Hello Today I am Showing How to add Extra Options in Settings CPU Info Screen Resolution Mem Info Swap Mem Info I will Update This Thread with New Options So Let"s Start
Requirement:
Apktool http://forum.xda-developers.com/show....php?t=1755243
Settings.apk From Your Phone
Nice Brain to Understand
Credits:
My Friends Aryne Neil Carlno Cabatan
Instructions:
Step 1 :- Pull Your Settings from Your Phone
Step 2 :- Decompile The Settings.apk
Step 3 :- Merged The Your Settings with My Zip
Step 4 :- Open Values/strings.xml
Step 5 :- Add This
Code:
<string name="cpu_info">CPU info</string>
<string name="mem_info">Mem info (avail/total)</string>
<string name="swap_mem_info">Swap mem info (avail/total)</string>
<string name="device_screen_resolution">Screen resolution</string>
Step 6 :- Open xml/device_info_settings
Step 7 :- Remove All lines
Step 8 :- Add This
Code:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/about_settings"
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceScreen android:title="@string/device_status" android:key="status_info" android:summary="@string/device_status_summary">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.deviceinfo.Status" />
</PreferenceScreen>
<Preference android:title="@string/model_number" android:key="device_model" android:summary="@string/device_info_default" style="?android:preferenceInformationStyle" />
<Preference android:title="@string/firmware_version" android:key="firmware_version" android:summary="@string/device_info_default" style="?android:preferenceInformationStyle" />
<Preference android:title="@string/baseband_version" android:key="baseband_version" android:summary="@string/device_info_default" style="?android:preferenceInformationStyle" />
<Preference android:title="@string/kernel_version" android:key="kernel_version" android:summary="@string/device_info_default" />
<Preference android:title="@string/cpu_info" android:key="device_cpu" android:summary="@string/device_info_default" style="?android:preferenceInformationStyle" />
<Preference android:title="@string/device_screen_resolution" android:key="device_screen_resolution" style="?android:preferenceInformationStyle" />
<Preference android:title="@string/mem_info" android:key="device_memory" android:summary="@string/device_info_default" style="?android:preferenceInformationStyle" />
<Preference android:title="@string/swap_mem_info" android:key="device_swap_memory" android:summary="@string/device_info_default" style="?android:preferenceInformationStyle" />
<Preference android:title="Guide by" android:key="android_fire_xda" android:summary="AndroidFire" style="?android:preferenceInformationStyle" />
</PreferenceScreen>
Step 9 :- Recompile and Decompile Again
Step 10 :- Go to values/public.xml
Step 11 :- search for device_info_settings Note the id code
Step 12 :- Search for 0x7f040010 Change This according to your public
Step 13 :- Recompile And Sign And Enjoy
My Work
My Work
Android
APP
AF-Root Checker
[APP][4.1+] AF Calendar Widget
[APP][2.3+] AF CPU Widget
GUIDE
[GUIDE][2.3+] How to add AF Volume Panel to Android Phone
AF-Battery Mod
ICS PlatLogo
[GUIDE] How to Disable Scrolling Cache for Smooth
[GUIDE] How to add Extra Options in About Sections
[GUIDE] How to add Colorey Platlogo
[GUIDE] How to add Android L Preview Platlogo
[GUIDE] [TUTORIAL] [GUIDE] How to Play with Screen Title
[GUIDE]How to Replace Checkbox with Switch
ROM
[ROM] AF Firey
TOOL
[TOOL] AF-Apk​[TOOL] AF-Signer​​
Reserved
AF Work
AF Work
Android
APP
[APP][4.1+] AF Calendar Widget
[APP][2.3+] AF CPU Widget
GUIDE
[GUIDE][2.3+] How to add AF Volume Panel to Android Phone
ROM
[ROM] AF Firey
TOOL
[TOOL] AF-Apk​[TOOL] AF-Signer​​
I have an error
Hello there
At first I apologize for my English.
I tried this method but I have a problem with steps 11 and 12
can you help me?
when I do research in device_info_settings .. / values ​​/ public.xml
I find 2 id's:
Line 451: <public type="xml" name="device_info_settings" id="0x7f050011" />
Line 2469: <public type="string" name="device_info_settings" id="0x7f0b04a8" />
And I tried with the two solution, I get an error ...
And id 0x7f040010, is:
Line 261: <public type="layout" name="auto_brightness_preview" id="0x7f040010" />
thank you in advance.
daemon1666 said:
Hello there
At first I apologize for my English.
I tried this method but I have a problem with steps 11 and 12
can you help me?
when I do research in device_info_settings .. / values ​​/ public.xml
I find 2 id's:
Line 451:
Line 2469:
And I tried with the two solution, I get an error ...
And id 0x7f040010, is:
Line 261:
thank you in advance.
Click to expand...
Click to collapse
First of Thing that What Android Version r using if Your Android Version 2.3 leave step 12 and 13 if are using 3.0+ then find for that ids change valuse according to ur public device_info_settings (xml one not strings) if u get error pls show me logcat logcat will easily to understand ur problem Recommended You to use AF-Apk to Decompile and Recompile Apk If Want it search on google ok
2nd Things No Need to Say Thanks Just Presss the button
AndroidFire said:
First of You What Android Version if Your Android Version 2.3 leave step 12 and 13 if are using 2.3+ then find for that ids change valuse according to ur public device_info_settings (xml one not layout)
2nd Things No Need to Say Thanks Just Presss the button
Click to expand...
Click to collapse
I have a nexus 5
in custom rom 4.4.4
I started in xml, so I don't know by what I must change the id
can you show me an example?
Sorry but I am a beginner.
daemon1666 said:
I have a nexus 5
in custom rom 4.4.4
I started in xml, so I don't know by what I must change the id
can you show me an example?
Sorry but I am a beginner.
Click to expand...
Click to collapse
First things.
can u attach ur public.xml and DeviceInfoSettings.smali I will Do for You
Second Things Thanks Button will more appericated then saying thanks
AndroidFire said:
First things.
can u attach ur public.xml and DeviceInfoSettings.smali I will Do for You
Second Things Thanks Button will more appericated then saying thanks
Click to expand...
Click to collapse
I joined the archive.
Ihave already made steps 1-9
And
I clicked on the button "thanks" and +1 on Google+
daemon1666 said:
I joined the archive.
Ihave already made steps 1-9
And
I clicked on the button "thanks" and +1 on Google+
Click to expand...
Click to collapse
done mind don't kang my work respect my work here is the link just replace the file
https://db.tt/ieOJqB3g
Thx... Again
If something has changed, I'm sorry, I had tried so many things by myself.
What was the problem?
I just tested ..
The first compilation, I have problems compiling
having replaced the device_info_settings.smali well.
I have attached the log
deleted sorry..

[DEV][GUIDE][MODDING][SETTINGS] Collection of mods and features [TOUCHWIZ]

Hello buddies..
From the concept SHARING IS CARING, I am going to share some mods specifically on SecSettings.apk that I stumbled across and share it with you in one thread
Keep in mind that most of them are not mine but from the community so actual credits are to be given to the owners. So please let me know if you have any modding that I didn't mention
So let's start!!
Needed tools:
1) Apktool or others that do the job
2) Notepad++ program from here
3) The patience and a willing partner! sorry no link for that
I am not going to teach you how to use these programs because I am assuming that you already know how to use them if not then check their respective documentations!
You must deodex SecSettings.apk before proceeding.
A lot of works are done by various xda members, some are from other sites, some are mine. If you found the guide of your mod here and you haven't been credited, please PM.
Click to expand...
Click to collapse
Adding Custom image + Onclick Functionality
Credits to @iamareebjamal
Decomplie SecSettings.apk using Apktool
Download the SettingsSource.zip
Extract contents of SettingsSource.zip to respective folders in SecSettings.apk
Open res/xml/device_info_settings.xml
Add this just a line above the first Preference tag
Code:
<PreferenceCategory android:layout="@layout/areebisawesome" android:key="blah" android:title="" />
Now go to res/drawable
There, you'll see cosmic.png Change it to any png of size 320x200 You can change this size description in res/layout/areebisawesome.xml
N.B: Also we can use android:layout_width="fill_parent"so that if we add small resolution picture then it will automatically fill whole width
Click to expand...
Click to collapse
Recompile
Onclick Functionality
Credits to @abhi922
Open res/layout/areebisawesome.xml
Add the blue code to the XML
Code:
<?xml version="1.0" encoding="utf-8"?>
<ImageView android:layout_gravity="center" android:paddingBottom="6.0dip" [COLOR="Blue"]android:clickable="true"[/COLOR] android:layout_width="fill_parent" android:layout_height="400.0px" [COLOR="blue"]android:src="@drawable/about"[/COLOR] android:scaleType="fitXY"
xmlns:android="http://schemas.android.com/apk/res/android" />
What I've Done ????
Added android:clickable="true" ------> to make our layout clickable
Added android:src="@drawable/about" ------> it is a xml not a picture/png...[it will replace our images on click ]
Create new file about.xml at drawable folder
Add this code to it
Code:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/about2" />
<item android:state_selected="true" android:drawable="@drawable/about2" />
<item android:drawable="@drawable/about1" />
</selector>
Now add about1.png as first unpressed picture
And about2.png as pressed picture...
Recomplie
Adding About ROM new information
Decompile SecSettings.apk
Open /res/xml/device_info_settings.xml
In device_info_settings.xml, go to the end and add these lines before </PreferenceScreen> line
Code:
<PreferenceCategory android:title="@string/rom_info" android:key="dummy_key">
<Preference android:title="@string/rom_name" android:key="rom_name" android:summary="@string/rom_name_details" style="?android:preferenceInformationStyle" />
<Preference android:title="@string/rom_ver" android:key="rom_ver" android:summary="@string/rom_ver_details" style="?android:preferenceInformationStyle" />
<Preference android:title="@string/rom_date" android:key="rom_date" android:summary="@string/rom_date_details" style="?android:preferenceInformationStyle" />
<Preference android:title="@string/rom_developer" android:key="rom_developer" android:summary="@string/rom_developer_name" style="?android:preferenceInformationStyle" />
<Preference android:title="@string/dev_thanks" android:key="dev_thanks" android:summary="@string/dev_thanks_name" style="?android:preferenceInformationStyle" />
</PreferenceCategory>
N.B: all referred android:key here are dummy ones they are only there just to prevent code fragmentation
Click to expand...
Click to collapse
Then open res/values/strings.xml & add the following lines
Code:
<string name="rom_info">[COLOR="Sienna"]About Rom[/COLOR]</string>
<string name="rom_name">[COLOR="Sienna"]Rom name[/COLOR]</string>
<string name="rom_name_details">[COLOR="Sienna"][ROM Name][/COLOR]</string>
<string name="rom_ver">[COLOR="Sienna"]Rom version[/COLOR]</string>
<string name="rom_ver_details">[COLOR="Sienna"]vx.x[/COLOR]</string>
<string name="rom_date">[COLOR="Sienna"]Release date[/COLOR]</string>
<string name="rom_date_details">[COLOR="Sienna"]month-year[/COLOR]</string>
<string name="rom_developer">[COLOR="Sienna"]Rom developer[/COLOR]</string>
<string name="rom_developer_name">[COLOR="Sienna"][your name] - xda.developers.com[/COLOR]</string>
<string name="dev_thanks">[COLOR="Sienna"]Thanks to[/COLOR]</string>
<string name="dev_thanks_name">[COLOR="Sienna"]Everyone for the support[/COLOR]</string>
You can change the green color text to whatever you want to display
Click to expand...
Click to collapse
You can add or remove fields in device_info_settings.xml and strings.xml as you like
Recompile
Integrating application
Decompile SecSettings.apk.
Decompile the program that you want to add to settings menu (in this example will take chainfire's SuperSU app)
Go to res\drawable-xhdpi folder and add icon for your program that you want to add (you can take it from decompiled program in res/mipmap-xhdpi.
Go to res\values folder and open strings.xml by NotePad++ and add these lines just before </resources> for your program
Code:
<string name="romaddons">ROM Addons</string>
<string name="superuser_text">Superuser</string>
Go to \res\xml folder and open settings_headers.xml by NotePad++ and add the blue lines
Code:
<header android:icon="@drawable/ic_settings_accessibility" android:id="@id/accessibility_settings" android:title="@string/accessibility_settings" android:fragment="com.android.settings.AccessibilitySettings" />
[COLOR="Blue"] <string name="romaddons">ROM Addons</string>
<header android:icon="@drawable/ic_settings_superuser" android:title="@string/superuser_text">
<intent android:targetPackage="eu.chainfire.supersu" android:action="android.intent.action.MAIN" android:targetClass="eu.chainfire.supersu.MainActivity" />
</header>[/COLOR]
<header android:icon="@drawable/ic_settings_development" android:id="@id/development_settings" android:title="@string/development_settings_title" android:fragment="com.android.settings.DevelopmentSettings" />
Then install the program you want to add on your phone
Extra step is to remove this line in AndroidManifest.xml in your decompiled SuperSU app so to disappear from the launcher
Code:
<category android:name="android.intent.category.LAUNCHER" />
Adding other apps
Sample down here for learning
Code:
<header android:icon="@drawable/ic_settings_xxxx" android:title="@string/xxxx_text">
<intent android:targetPackage="" android:action="" android:targetClass="" />
</header>
"android:icon="@drawable/ic_settings_xxxx"" : name of icon you put in drawable-xhdpi folder if you want it to be empty the add this to drawable and empty_icon as the name of the icon
"android:title="@string/xxxx_text"" : name of string put for added program in strings.xml
"android:targetPackage=""" : package of wanted program inside its own AndroidManifest.xml
"android:action=""" : first action of wanted program inside its own AndroidManifest.xml
"android:targetClass=""" : class of the wanted package inside its own AndroidManifest.xml to start with in this case its .MainActivity
Settings menu extra hidden options
Credits to @tkari4
Baksmali SecSettings.apk
Open com\android\settings\Settings.smali
Look for these lines and delete them:
Code:
invoke-interface {p1, v0}, Ljava/util/List;->remove(Ljava/lang/Object;)Z
goto/16 :goto_23
Note that some FC so head to the forum or download SettingsSmali.rar to see what works or not
Adding TorchLight Option
Credits to @Stavr0s91i
Decompile SecSettings.apk
Goto res/xml/display_settings.xml
Apply Changes Below (Blue)
Code:
<PreferenceCategory android:title="@string/tts_general_section_title" android:key="general" />
<PreferenceScreen android:title="@string/wallpaper" android:key="wallpaper" android:fragment="com.android.settings.WallpaperSettings" />
<PreferenceScreen android:title="@string/led_indicator_settings" android:key="led_indicator_settings" android:fragment="com.android.settings.LedIndicatorSettings" />
[COLOR="Blue"]<PreferenceScreen android:title="Torchlight" android:key="torchlight" android:fragment="com.android.settings.torchlight.TorchlightSettings" />[/COLOR]
<PreferenceScreen android:title="@string/notification_panel_title" android:key="notification_panel_edit" android:fragment="com.android.settings.NotificationPanelMenu" />
<CheckBoxPreference android:title="@string/multi_window_title" android:key="key_multi_window" android:summary="@string/multi_window_summary" android:widgetLayout="@touchwiz:layout/preference_widget_twcheckbox" />
<SwitchPreferenceScreen android:title="@string/page_buddy" android:key="contextualpage_settings" android:summary="@string/page_buddy_summary" android:fragment="com.android.settings.ContextualPageSettings" />
Compile SecSettings.apk!
Setting up a custom settings tab
Credits to @Didact74
Download Smali.zip
Place it in smali/com/android/settings
Navigate to res/xml/settings_headers.xml
Add this line of code anywhere you want it
Code:
<header android:icon="@drawable/ic_settings_romcontrol" android:id="@id/new_tab" android:title="@string/rom_control" android:fragment="com.android.settings.NewTab" />
android:icon="@drawable/ic_settings_romcontrol = The icon you see in the tab and the location that icon is stored
android:id="@id/new_tab" = Android ID thats stored in res/values/ids
android:title="@string/rom_control" = The title the new tab is given located in res/values/strings
android:fragment="com.android.settings.NewTab" = points to the smali that controls this tab
Create your own icon.png (size 50 x 50) and drop it in res/drawable-xhdpi
Navigate to res/values/strings.xml & add this line of code before </resources>
Code:
<string name="rom_control">Rom Control</string>
<string name="rom_addons">Rom Addons</string>
Create an XML file with the name "new_tab.xml"
Navigate to res/values/ids.xml & add this line of code before </resources>
Code:
<item type="id" name="new_tab">false</item>
Example:
Code:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/rom_addons"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<!-- Place your settings here -->
</PreferenceScreen>
You will need to add the necessary lines to res/strings found in the XML if would add any others
Do not worry about finding a unique ID for res/public just let the system generate one for you
Click to expand...
Click to collapse
Recompile the decompile to generate ids in public.xml
Find this line in res/values/public.xml
Code:
<public type="xml" name="new_tab" id="0x7fxxxxxx" />
Take your unique id and change it in NewTab.smali from
Code:
const v1, [COLOR="Red"]0x7f070082[/COLOR]
To
Code:
const v1, [COLOR="Blue"]0x7fxxxxxx[/COLOR]
Then change
Code:
invoke-virtual {p0, v1}, Lcom/android/settings/[COLOR="Red"]didact/RomSettings[/COLOR];->addPreferencesFromResource(I)V
To
Code:
invoke-virtual {p0, v1}, Lcom/android/settings/[COLOR="Blue"]NewTab[/COLOR];->addPreferencesFromResource(I)V
Done :good:
Switch to Light theme
Decompile the SecSettings.apk
Go to "res/values/" folder and open the file "styles.xml" with Notepad++
Click "Replace" or press "Ctrl+H"
In the "Find What :" box enter "DeviceDefault" and hit next
In the "Replace with: " box enter "DeviceDefault.Light"
Make sure only "wrap around" box is checked
Then press replace all
Compile SecSettings.apk
Permanent "Official" Device Status
This one is explained very well by @[email protected] in this post. Make sure to hit Thanks button for him
Owner Profile in About Device
Credits to @Deckoz2302, @b16h22 and @nightwalker
Download the zip and extract it Owner_Profile_Mod.zip
Decompile SecSettings.apk
Go to res/values/ids.xml... add these:
Code:
<item type="id" name="image">false</item>
<item type="id" name="owner">false</item>
<item type="id" name="linear_layout">false</item>
<item type="id" name="profile_pic">false</item>
<item type="id" name="layout1">false</item>
<item type="id" name="change_picture_text">false</item>
<item type="id" name="photo_picker">false</item>
<item type="id" name="linear_layout1">false</item>
<item type="id" name="layout2">false</item>
<item type="id" name="name_field">false</item>
<item type="id" name="name_edit">false</item>
<item type="id" name="profile">false</item>
<item type="id" name="profile_name">false</item>
<item type="id" name="ic_qs_default_user">false</item>
Next go to res/values/strings.xml.. add these:
Code:
<string name="change_pic">Change profile picture</string>
<string name="profile_pic">SET PROFILE PICTURE</string>
<string name="profile_name">CHANGE PROFILE NAME</string>
Now find the files you extracted and put the com folder in correct directory..
Code:
SecSetting/smali/com/blac
Now put the files from the res folder in correct directories..
Code:
res/layout/lacourb.xml
res/layout/profile_info.xml
res/drawable-hdpi/ (is where the png files go)
res/drawables/done.xml
res/drawable/pick_profile_picture.xml
Forgot to include it so add ic_qs_default_user to res/drawable/xhdpi
Now go to where you want to have the option of changing the Profile Picture and Name. Maybe display_settings.xml it doesn't matter so put it where you want it.
Code:
<PreferenceScreen android:title="Owner Profile Picture">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.blac.Profile" />
</PreferenceScreen>
XML's will vary too depending on which one you pick so you need adjust the tag in the beginning of the line and the end of line depending on what it is calling. Example: <PreferenceScreen></PreferenceScreen> OR <headers></headers> so visualize the layout of the xml
Now go to res/xml/device_info_settings.xml and add:
Code:
<PreferenceCategory android:title="Device Info" />
<PreferenceScreen android:fragment="[COLOR="Orange"]com.android.settings.deckoz.RomControl.General[/COLOR]" android:focusable="false" android:layout="@layout/lacourb" android:key="profile_pic" />
Pay special attention to the line in ORANGE. This line defines where it takes you when the image is clicked when in About Device. So you would NOT add the same directory as mine because you won't have it. But you DO need to define this because if DO NOT it will FC
So say you want it to be under Users in SecSettings/General/Users.. you would add it like this:
Code:
<PreferenceCategory android:title="Device Info" />
<PreferenceScreen android:fragment="[COLOR="Orange"]com.android.settings.UserSettings[/COLOR]" android:focusable="false" android:layout="@layout/lacourb" android:key="profile_pic" />
So now when you click the picture in About Device it will bring you to this directory in SecSettings. So you'll end up in SecSettings/General/Users
Now open your AndroidManifest.xml. At the bottom add these lines:
Code:
<activity android:label="@string/change_pic" android:name="com.blac.Profile">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
</activity>
Okay now compile your SecSettings..Then grab the newly compiled one and decompile it.. Make sure you keep the AndroidManifest.xml because you changed it..
Now go to the MY public.xml you downloaded and extracted and then open YOUR res/values/public.xml open it and keep it open..You need to have these open to compare ids..
Open your smali folder you added: com/blac/
You need to find all the ids in the smali and change them to match yours.. for example open com/blac/Profile.smali.. Search 0x7f0401ee
Under my public.xml this id: 0x7f0401ee is for "profile_info".. Yours will NOT be the same.. SO you need to search each id in the smali and then in MY public.xml, you downloaded, then search yours and changed the id's...
NOTE: Be free to changed whatever you want..directories, names of xml etc...
Adding 5 icons shortcut on lockscreen
Credits to @Mirko ddd
Decompile SecSettings.apk and navigate to:
smali\com\android\settings\lockscreenshortcut\LockScreenShortcutSettings.smali
Search for the method ".method static constructor <clinit>()V"
Add the blue code in change of the red code
Code:
.method static constructor <clinit>()V
.registers 2
.prologue
const/4 v1, 0x0
.line 79
[COLOR="Blue"] const/4 v0, 0x5[/COLOR]
[COLOR="Red"] const/4 v0, 0x3[/COLOR]
sput v0, Lcom/android/settings/lockscreenshortcut/LockScreenShortcutSettings;->MAX_SHORTCUT_ICON:I
.line 80
sput v1, Lcom/android/settings/lockscreenshortcut/LockScreenShortcutSettings;->DEFAULT_CURSOR_WIDTH:I
.line 81
sput v1, Lcom/android/settings/lockscreenshortcut/LockScreenShortcutSettings;->ICON_5_CURSOR_WIDTH:I
return-void
.end method
Now we need to set the right icon width for the icons, if not the fifth icon won t be showed
Decompile framework-res.apk
Navigate to res\values-hdpi\dimens.xml
Edit these 2 strings with following values
Code:
<dimen name="keyguard_lockscreen_application_shortcut_icon_width">52.0dip</dimen>
<dimen name="keyguard_lockscreen_application_shortcut_icon_height">50.0dip</dimen>
Recompile and push both apks with 0644 permissions
Theming
1. Go to res/drawable-[your device dpi]
2. In here you'll find all kind of images but I'm gonna give you about some of the main images and you figure out the others
ic_settings_* : These where you find all the icons on the settings menu, some of these are unused which are hidden
ic_sync_*_holo : These are sync animations that appear in the "Accounts and sync" menu
ic_wifi_lock_signal_* & ic_wifi_signal_ *: These are wifi signals that appear in the "Wi-Fi" menu
shortcut_ *: These icons in which we make shortcuts from the settings widget
lock_anim_* : These are the tutorial images to teach you how to use pattern (don't bother if its hidden)
motion_ *: Motion tutorial (don't bother if its hidden)
3. Navigate to res/mipmap-[your device dpi]
ic_launcher_settings : Launcher icon
Now im gonna share with you S6 SecSettings resource files mainly png files. Link
CSC Features
Navigate to system/csc/feature.xml or others.xml..
These are some of the features you can add so read the description and choose your preference
Code:
[COLOR="Green"]<!-- Most of them are universal but no guarantees given -->[/COLOR]
[COLOR="green"] <!-- Start Features -->[/COLOR]
[COLOR="green"] <!-- Hide Software Update from Settings -->[/COLOR]
[COLOR="blue"]<CscFeature_Setting_DisableMenuSoftwareUpdate>true</CscFeature_Setting_DisableMenuSoftwareUpdate>[/COLOR]
[COLOR="green"] <!-- Show your hardware revision in Settings->About (same as dialing *#12580*369#) -->[/COLOR]
[COLOR="blue"]<CscFeature_Setting_EnableHwVersionDisplay>true</CscFeature_Setting_EnableHwVersionDisplay>[/COLOR]
[COLOR="green"]<!-- Restore the hidden APN -->[/COLOR]
[COLOR="blue"] <CscFeature_Setting_HideApnList>pcweb.tmobile.com</CscFeature_Setting_HideApnList>[/COLOR]
[COLOR="green"]<!-- Find my mobile/Sim replacement alert -->[/COLOR]
[COLOR="blue"] <CscFeature_Setting_DisableMenuFindMyMobile>false</CscFeature_Setting_DisableMenuFindMyMobile>
<CscFeature_Settings_FindMyMobile>true</CscFeature_Settings_FindMyMobile>[/COLOR]
[COLOR="green"]<!-- Call and message block -->[/COLOR]
[COLOR="blue"]<CscFeature_Setting_EnableMenuBlockCallMsg>true</CscFeature_Setting_EnableMenuBlockCallMsg>[/COLOR]
[COLOR="green"]<!-- Factory data reset password -->[/COLOR]
[COLOR="blue"] <CscFeature_Setting_EnableFactoryResetPasswordWhenNoSIM>true</CscFeature_Setting_EnableFactoryResetPasswordWhenNoSIM>[/COLOR]
[COLOR="green"]<!-- Display installed variant -->[/COLOR]
[COLOR="blue"]<CscFeature_Common_EnableRegionalDevice>true</CscFeature_Common_EnableRegionalDevice>[/COLOR]
[COLOR="green"] <!-- End Features -->[/COLOR]
Push the xml & set permissions to 0644
Reserved
Additions:
- Added CSC Features
Awesome guide mate
Straight Outta Wcoast
wcoast said:
Awesome guide mate
Straight Outta Wcoast
Click to expand...
Click to collapse
Thanks its only the beginning
RainbowLaw said:
Thanks its only the beginning[emoji14]
Click to expand...
Click to collapse
Keep up the good work...
Straight Outta Wcoast
Wohoo thanks a lot mate, i am new learner will test your guides on my galaxy note 5 rom. Keep up the good work mate
nice mate
since i never want to search about sec bla bla bla .apk mod tutorial
thx for ur guide
keep it up
Really good guide, hope you continue to add to it. Should be on xda portal
Sent from my SM-N920C using Tapatalk
RainbowLaw said:
Theming
1. Go to res/drawable-[your device dpi]
2. In here you'll find all kind of images but I'm gonna give you about some of the main images and you figure out the others
ic_settings_* : These where you find all the icons on the settings menu, some of these are unused which are hidden
ic_sync_*_holo : These are sync animations that appear in the "Accounts and sync" menu
ic_wifi_lock_signal_* & ic_wifi_signal_ *: These are wifi signals that appear in the "Wi-Fi" menu
shortcut_ *: These icons in which we make shortcuts from the settings widget
lock_anim_* : These are the tutorial images to teach you how to use pattern (don't bother if its hidden)
motion_ *: Motion tutorial (don't bother if its hidden)
3. Navigate to res/mipmap-[your device dpi]
ic_launcher_settings : Launcher icon
Now im gonna share with you S6 SecSettings resource files mainly png files. Link
CSC Features
Navigate to system/csc/feature.xml or others.xml..
These are some of the features you can add so read the description and choose your preference
Code:
[COLOR="Green"]<!-- Most of them are universal but no guarantees given -->[/COLOR]
[COLOR="green"] <!-- Start Features -->[/COLOR]
[COLOR="green"] <!-- Hide Software Update from Settings -->[/COLOR]
[COLOR="blue"]<CscFeature_Setting_DisableMenuSoftwareUpdate>true</CscFeature_Setting_DisableMenuSoftwareUpdate>[/COLOR]
[COLOR="green"] <!-- Show your hardware revision in Settings->About (same as dialing *#12580*369#) -->[/COLOR]
[COLOR="blue"]<CscFeature_Setting_EnableHwVersionDisplay>true</CscFeature_Setting_EnableHwVersionDisplay>[/COLOR]
[COLOR="green"]<!-- Restore the hidden APN -->[/COLOR]
[COLOR="blue"] <CscFeature_Setting_HideApnList>pcweb.tmobile.com</CscFeature_Setting_HideApnList>[/COLOR]
[COLOR="green"]<!-- Find my mobile/Sim replacement alert -->[/COLOR]
[COLOR="blue"] <CscFeature_Setting_DisableMenuFindMyMobile>false</CscFeature_Setting_DisableMenuFindMyMobile>
<CscFeature_Settings_FindMyMobile>true</CscFeature_Settings_FindMyMobile>[/COLOR]
[COLOR="green"]<!-- Call and message block -->[/COLOR]
[COLOR="blue"]<CscFeature_Setting_EnableMenuBlockCallMsg>true</CscFeature_Setting_EnableMenuBlockCallMsg>[/COLOR]
[COLOR="green"]<!-- Factory data reset password -->[/COLOR]
[COLOR="blue"] <CscFeature_Setting_EnableFactoryResetPasswordWhenNoSIM>true</CscFeature_Setting_EnableFactoryResetPasswordWhenNoSIM>[/COLOR]
[COLOR="green"]<!-- Display installed variant -->[/COLOR]
[COLOR="blue"]<CscFeature_Common_EnableRegionalDevice>true</CscFeature_Common_EnableRegionalDevice>[/COLOR]
[COLOR="green"] <!-- End Features -->[/COLOR]
Push the xml & set permissions to 0644
Click to expand...
Click to collapse
Nice
Super helpful thread
Does anyone want to know how to change the default app on the home screen? I want to basically be able to change it where my app shows default on the home. So even if I factory reset it will still show on the homescreen.
asapmoola310 said:
Does anyone want to know how to change the default app on the home screen? I want to basically be able to change it where my app shows default on the home. So even if I factory reset it will still show on the homescreen.
Click to expand...
Click to collapse
Well its off-topic but you need to decompile your launcher if its samsung launcher then its SecLauncher2.apk or touchwiz30launcher.apk then go to res/xml here you will find the arrangements modify it then compile push it to your device and then clear data for the launcher
@RainbowLaw thanks for mentioning one of my tricks. Great thread, welldone.
Thanks for the guide really helpful
I was wondering if you can help me theming
How to change actionbar blue color ?
And settings text color ?
image hosting free no registration
I couldnt find those colors in color.xml !!!!
Thanks in advance

[GUIDE][GB]How to add jellybean like WiFi-BT switch in title bar

Add jellybean like Wi-Fi & Bluetooth ON/OFF switch in title_bar.
This is a cool guide to add Wi-Fi or Bluetooth switch in titlebar as you can see in jellybean.
This mod work will on any gingerbread running phone.
Things you need:-
Apktool/Apk-Multitool
Notepad++
Basic knowledge about compiling & decompiling.
Basic knowledge about xml editing & modding.
Settings.apk from your rom
Click to expand...
Click to collapse
Lets start:-
Step-1
First of all decompile your settings.apk
Step-2
Now download this
and extract it.
Open & copy the "res" and paste it in your decompiled "settings" folder
Step-3
Now goto settings/res/xml and open wifi_settings.xml
Here you will see a line like that:
Code:
<CheckBoxPreference android:persistent="false" android:title="@string/wifi_quick_toggle_title" android:key="enable_wifi" android:summary="@string/wifi_quick_toggle_summary" />
Step-4
Add this android:layout="@layout/sachin_wifi_switch" Now it will look like this:
Code:
<CheckBoxPreference android:persistent="false" [COLOR="red"]android:layout="@layout/sachin_wifi_switch"[/COLOR] android:title="@string/wifi_quick_toggle_title" android:key="enable_wifi" android:summary="@string/wifi_quick_toggle_summary" />
now save and close it.
Step-5
Now open bluetooth_settings.xml
and find this:
Code:
<CheckBoxPreference android:title="@string/bluetooth" android:key="bt_checkbox" android:summary="@string/bluetooth_quick_toggle_summary" />
Step-6
Here add this android:layout="@layout/sachin_bt_switch"
and now it will look like this:
Code:
<CheckBoxPreference [COLOR="red"]android:layout="@layout/sachin_bt_switch"[/COLOR] android:title="@string/bluetooth" android:key="bt_checkbox" android:summary="@string/bluetooth_quick_toggle_summary" />
save and close it.
Step-7
Now open AndroidManifest.xml in "Settings" folder.
Here find this:
Code:
<activity android:label="@string/wifi_settings" android:icon="@drawable/mainmenu_icon_wifi_settings" android:name=".wifi.WifiSettings" android:clearTaskOnLaunch="true" android:configChanges="keyboardHidden|orientation">
Step-8
After "activity" add this android:theme="@android:style/Theme.NoTitleBar"
like this:
Code:
<activity [COLOR="red"]android:theme="@android:style/Theme.NoTitleBar"[/COLOR] android:label="@string/wifi_settings" android:icon="@drawable/mainmenu_icon_wifi_settings" android:name=".wifi.WifiSettings" android:clearTaskOnLaunch="true" android:configChanges="keyboardHidden|orientation">
now find this:
Code:
<activity android:label="@string/bluetooth_settings_title" android:icon="@drawable/mainmenu_icon_bluetooth_settings" android:name=".bluetooth.BluetoothSettings" android:clearTaskOnLaunch="true" android:configChanges="keyboardHidden|orientation">
similarly do here, add android:theme="@android:style/Theme.NoTitleBar" after "activity".
like this:
Code:
<activity android:theme="@android:style/Theme.NoTitleBar" android:label="@string/bluetooth_settings_title" android:icon="@drawable/mainmenu_icon_bluetooth_settings" android:name=".bluetooth.BluetoothSettings" android:clearTaskOnLaunch="true" android:configChanges="keyboardHidden|orientation">
save and close it.
and you are done with modding.
Now compile & Sign the new Settings.apk
and push it to system/app and change the permission to rw-r-r
Enjoy! Press THANKS if you like it
HIT HARD
HIT OFTEN
#Roman Empire​
Regards:- Sachin Kumar53

Categories

Resources