Hallo @ all
I want to write a special App just for me for my custom ROM. For this I have to put new values in the settings.db so my app is able to call and set the value of the new settings. I wan't something like this:
Settings.System.getInt(resolver, Settings.System.MYVALUE, 0);
But I have two problems: How can I add a new entry to the settings.db? Do I have to do this with an update.zip and flash this from the recovery? And if I develop my App in Eclipse my app does not know that these values in the settings.db are available and it comes to an compiler error. How can I tell my App (or Eclipse) that these values are available?
Is it even possible to change the settings.db? If not are there any good alternatives? I want to create something like the "quite hours" from CyanogenMod for my custom ROM.
Related
Ok, got a bit of a problem here... I need to change the default homepage of the browser in a Rom I'm cooking... that means the homepage you get after a full factory reset, not that you set in the menu.... Please don't tell me how to set it in the browser menu....
A bit of background... I'm using a leaked Rom to build from. It was leaked from a Tracfone "LG-L95G" which is identical in every way to the LG-P999 aka T-Mobile G2X. Everything is working 100%. The only problem left from the "porting" is removing Tracfone as the default browser homepage.
This has turned out to be harder than I expected.
What I have done:
Browser.apk - the xml lists Google as the homepage. The word "tracfone" appears NOWHERE in the entire structure of the decompiled xml or values or even in the smali code.
SystemUI & framework-res - I've seen suggestions the homepage hides here. Can't find anything suggesting a setting to "tracfone"
flexdb - I really thought I had it kicked here. /system/etc/flex.db listed m.tracfone.com as the homepage for T-Mobile US. I changed all occurrences here to about:blank. I have also tried simply copying the flex.db from a P999 itself. Ie, removed ALL references to tracfone service and made it identical to a P999 in every way.
Ran grep -R tracfone * on the entire ROM.
Dug through tons of files by hand looking for any clue.
Unfortunately, even with all of that, do a wipe, open the browser, and you GET M.TRACFONE.COM again!
The word "tracfone" does not appear in build.prop, it does not appear in any init scripts, not even in the kernel scripts! Yet it comes back like Christine...
Does anyone have a clue where I could look next? Or failing that, even some way from an init.d script that I can overwrite the setting myself?
EDIT
Okay, I hate giving myself clues like this, but maybe this will help others (if I'm on the right track)...
Instead of doing a grep on the ROM from my PC, pre-install, I decided to actually hit up the RUNNING copy... so from adb into a Bash prompt on the phone itself, I ran a grep -r tracfone * and got the following result:
Code:
data/data/com.android.browser/databases/browser.db:Web page not availablehttp://m.tracfone.com/
data/data/com.android.browser/shared_prefs/com.android.browser_preferences.xml:<string name="homepage">http://m.tracfone.com</string>
data/data/com.lge.providers.flex/databases/flex.db:M77BRW_SETTINGDB_CURRENT_HOME_URL_Ihttp://m.tracfone.comhttp://m.tracfone.comI#
data/data/com.lge.providers.flex/databases/flex.db:=77BRW_SETTINGDB_HOME_URL_Ihttp://m.tracfone.comhttp://m.tracfone.como"
data/data/com.lge.providers.flex/databases/flex.db:=;;DATACOM_ACCOUNT_MMSC_0_Ihttp://mms.tracfone.comhttp://[email protected]
data/data/com.lge.providers.flex/databases/flex.db:;%%DATACOM_ACCOUNT_APN_0_Iwap.tracfonewap.tracfone:?
data/data/com.lge.providers.flex/databases/flex.db:M77BRW_SETTINGDB_CURRENT_HOME_URL_Ihttp://m.tracfone.comhttp://m.tracfone.comI
data/data/com.lge.providers.flex/databases/flex.db:=77BRW_SETTINGDB_HOME_URL_Ihttp://m.tracfone.comhttp://m.tracfone.como
data/data/com.lge.providers.flex/databases/flex.db:=;;DATACOM_ACCOUNT_MMSC_0_Ihttp://mms.tracfone.comhttp://mms.tracfone.com6%
data/data/com.lge.providers.flex/databases/flex.db:;%%DATACOM_ACCOUNT_APN_0_Iwap.tracfonewap.tracfone:$
Which is very odd.... considering that is NOT the content of the actual flex.db that was flashed to the phone. That leads to 1 question: Why isn't the phone respecting the flex.db? I've noticed other edits to the file (such as bookmarks) do not apply either. So it is being ignored at somepoint. FlexProvider.apk maybe? Or is something in the ROM still identifying the phone to T-Mobile as an MVNO device and they're pushing out an OTA flex update?
EDIT 2:
AHA! There's a flex.db *INSIDE* the FlexProvider.apk file! So it *IS* ignoring the one placed in /system/etc/flex/! Editing this should solve it - but I'm going to test test test to make sure.
lotherius said:
Ok, got a bit of a problem here... I need to change the default homepage of the browser in a Rom I'm cooking... that means the homepage you get after a full factory reset, not that you set in the menu.... Please don't tell me how to set it in the browser menu....
Click to expand...
Click to collapse
firstly to say interesting question!!
but I think it it not possible to change programmatically default homepage
this is a system app so will be signed by your provider let us suppose you find homepage location in code (could by result of a script parsing) by modifying source of that apk package how to solve signature problem ?!
if in .db file ...this file is created after flashing as a result of script parsing
not framework-res.apk better browser-res.apk if you have one
ruscan.calin said:
firstly to say interesting question!!
but I think it it not possible to change programmatically default homepage
this is a system app so will be signed by your provider let us suppose you find homepage location in code (could by result of a script parsing) by modifying source of that apk package how to solve signature problem ?!
if in .db file ...this file is created after flashing as a result of script parsing
not framework-res.apk better browser-res.apk if you have one
Click to expand...
Click to collapse
man use a ... editor...I can show you for fifty bucks
I was just curious about this tricky change (from your post) so thinking about Google motto don't be bad finally I have found but should recognize that I am bad at this time
here is solution
Actually, you can use an sqlite editor to change the values in the flex.db file... the problem I was having in the OP is that on an LG phone (maybe others?) the flex.db file is ignored and the one inside FlexProvider is used instead, so you have to edit both. You can add new locales the same way. No need to use a hex editor, as that would be much more difficult.
lotherius said:
Actually, you can use an sqlite editor to change the values in the flex.db file... the problem I was having in the OP is that on an LG phone (maybe others?) the flex.db file is ignored and the one inside FlexProvider is used instead, so you have to edit both. You can add new locales the same way. No need to use a hex editor, as that would be much more difficult.
Click to expand...
Click to collapse
maybe you are right regarding your phone... but also I prepare a custom rom for Alcatel ot-908 also to change default homepage was a problem for me but I did and simply works !
Hi! I want to know how can i change the phone info, in the system settings.
I want to change them for my own rom, so i want to include, for example, a different build date, build number, kernel version, etc..
Help!?
You have to edit build.prop located in /system. You can edit it on the phone itself with a root file explorer or copy it to a computer, edit in a text editor and copy it back to the phone (don't forget to set permissions to the way they were before copying). Once you open build.prop you'll easily find the lines you want to change.
Sent from my Desire HD using xda premium
Does anybody know what everything is related to screen orientation if I want to build custom ROM with locked portrait mode?
I saw one row in settings.db named user_rotation.
Also there is "ro.sf.hwrotation" in build.prop
In framework-res.apk is "config_AllowAllRotation".
Is this needed to be changed at all? Where I can look android platform files details, explanations etc?
I'm running a Galaxy Nexus, and the ROM I'm currently on has a Perfomance option in the Settings Menu, which gives control of the kernel and stuff. However, I'd rather use TricksterMod, and I would like to be able to launch TricksterMod from Settings instead of the Performance app.
So far, I've decompiled my Settings.apk, and looked through the files, and I'm not sure what to change.
I have to change \settings\res\xml\settings_headers.xml, correct? Specifically,
Code:
header android:icon="@drawable/ic_settings_performance" android:id="@id/performance_settings" android:title="@string/performance_settings_title" android:fragment="com.android.settings.performance.PerformanceSettings" />
I would also have to change \settings\res\values\strings.xml, specifically, the string referenced by "@string/performance_settings_title" so that I can have the correct name, correct?
And similarly, settings\res\drawable, for the icon.
The big question is, what do I replace with for "com.android.settings.performance.PerformanceSettings"? Do I need to move TricksterMod somewhere specific, or what would I reference? \data\app\com.bigeyes0x0.trickstermod-1.apk?
After making all these changes, I'd simply recompile and push the Settings.apk back without signing, correct? Have I missed any steps?
Firnagzen said:
The big question is, what do I replace with for "com.android.settings.performance.PerformanceSettings"? Do I need to move TricksterMod somewhere specific, or what would I reference? \data\app\com.bigeyes0x0.trickstermod-1.apk?
Click to expand...
Click to collapse
That's what I would try BUT would just be that, to try, seems like you have everything else covered.
Hm. Well, that didn't work.
I successfully made the edits, recompiled, and pushed the file in place of the old Settings.apk.
The Settings app immediately disappeared, and trying to install it (selecting the .apk with a file manager) didn't work; it simply gave me an 'App failed to install'.
Any suggestions as to what I might have done wrongly?
Anyone?
I want to remove some apps from Cyanogenmod and replace some others.
I also want to set some defaults in the settings and change the default theme.
Building this from source seems over the top.
Is ArchiKitchen the way to go with this?
Or is it possible to do all this via an update.zip?