Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

[Guide] demystifying build.prop [Valid entries]

OP LaraCraft304

26th November 2013, 08:02 PM   |  #1  
LaraCraft304's Avatar
OP Member
Flag São Paulo
Thanks Meter: 237
 
48 posts
Join Date:Joined: Dec 2012
More
Tired of see so many "tweaks" that do not work, I decided to dig deeper.
Scavenging the entire Android source, I checked entries which are actually valid.


Note 1: Ignored the build.prop entries created by buildinfo.sh (default entries)

Note 2: I'll update/upgrade the topic gradually.

I accept all help, suggestions, observations, comments and so on.

Entries that DO NOT exist in the source:
(Again: I scaveged all Android source code)
  • ro.ril.disable.power.collapse
  • ro.mot.eri.losalert.delay
  • ro.config.hw_fast_dormancy
  • ro.config.hw_power_saving
  • windowsmgr.max_events_per_sec
  • persist.cust.tel.eons
  • ro.max.fling_velocity
  • ro.min.fling_velocity
  • ro.kernel.checkjni
  • dalvik.vm.verify-bytecode
  • debug.performance.tuning
  • video.accelerate.hw
  • ro.media.dec.jpeg.memcap
  • ro.config.nocheckin
  • profiler.force_disable_ulog
  • profiler.force_disable_err_rpt
  • ersist.sys.shutdown.mode
  • ro.HOME_APP_ADJ

Notes:

dalvik.vm.verify-bytecode
  • Previous version of the runtime supported the boolean
    dalvik.vm.verify-bytecode property, but that has been
    superceded by dalvik.vm.dexopt-flags.

ro.kernel.checkjni
  • The correct entry is ro.kernel.android.checkjni

ro.HOME_APP_ADJ
  • The interaction with this is been removed.
  • From google:
    This is a process holding the home application -- we want to try
    avoiding killing it, even if it would normally be in the background,
    because the user interacts with it so much.

All ro.media.enc* entries
  • A more elegant alternative would be to edit /system/etc/media_profiles.xml

Valid entries on CyanogenMod and AOSP:

dalvik.vm.checkjni and ro.kernel.android.checkjni
platform_frameworks_base/core/jni/AndroidRuntime.cpp (480:489/466:475)

Code:
property_get("dalvik.vm.checkjni", propBuf, "");
    if (strcmp(propBuf, "true") == 0) {
        checkJni = true;
    } else if (strcmp(propBuf, "false") != 0) {
        /* property is neither true nor false; fall back on kernel parameter */
        property_get("ro.kernel.android.checkjni", propBuf, "");
        if (propBuf[0] == '1') {
            checkJni = true;
        }
    }
wifi.supplicant_scan_interval
android_external_wpa_supplicant/wpa_supplicant.c (2459:2460)

Code:
if (property_get("wifi.supplicant_scan_interval", scan_prop, "5") != 0) {
    wpa_s->scan_interval = (int)strtol(scan_prop, &endp, 0);
service.adb.tcp.port
platform_system_core/adb/adb.c (1366:1372/1350:1356)

Code:
// If one of these properties is set, also listen on that port
// If one of the properties isn't set and we couldn't listen on usb,
// listen on the default port.
property_get("service.adb.tcp.port", value, "");
if (!value[0]) {
    property_get("persist.adb.tcp.port", value, "");
}
ro.sf.lcd_density and qemu.sf.lcd_density
platform_frameworks_base/core/java/android/util/DisplayMetrics.java (286:294)

Code:
private static int getDeviceDensity() {
        // qemu.sf.lcd_density can be used to override ro.sf.lcd_density
        // when running in the emulator, allowing for dynamic configurations.
        // The reason for this is that ro.sf.lcd_density is write-once and is
        // set by the init process when it parses build.prop before anything else.
        return SystemProperties.getInt("qemu.sf.lcd_density",
                SystemProperties.getInt("ro.sf.lcd_density", DENSITY_DEFAULT));
    }
}
debug.sf.nobootanimation

platform_frameworks_base/cmds/bootanimation/bootanimation_main.cpp (45:49)
Code:
  char value[PROPERTY_VALUE_MAX];
    property_get("debug.sf.nobootanimation", value, "0");
    int noBootAnimation = atoi(value);
    ALOGI_IF(noBootAnimation, "boot animation disabled");
persist.adb.notify

Cyanogen: android_frameworks_base/services/java/com/android/server/usb/UsbDeviceManager.java (747:753)
Code:
 if (mAdbEnabled && mConnected) {
                if ("0".equals(SystemProperties.get("persist.adb.notify"))
                 || Settings.Secure.getInt(mContext.getContentResolver(),
                    Settings.Secure.ADB_NOTIFY, 1) == 0)
                    return;
AOSP: android_frameworks_base/services/java/com/android/server/usb/UsbDeviceManager.java (714:715)
Code:
            if (mAdbEnabled && mConnected) {
                if ("0".equals(SystemProperties.get("persist.adb.notify"))) return;
net.rmnet0.dns* and net.dns*

This is ok for Wifi and 2G/3G conection

wifi.supplicant_scan_interval

android_external_wpa_supplicant/wpa_supplicant.c (2459:2460)
Code:
if (property_get("wifi.supplicant_scan_interval", scan_prop, "5") != 0) {
wpa_s->scan_interval = (int)strtol(scan_prop, &endp, 0);
Valid entries only on CyanogenMod:

persist.sys.purgeable_assets
android_frameworks_base/core/jni/android/graphics/BitmapFactory.cpp (632:634)

Code:
char value[PROPERTY_VALUE_MAX];
    property_get("persist.sys.purgeable_assets", value, "0");
    mPurgeableAssets = atoi(value) == 1;
persist.sys.use_dithering
android_packages_app_CMParts/src/com/cyanogenmod/cmparts/activities/PerformancesettingsActivity.java (102)

Code:
String useDithering = SystemProperties.get(USE_DITHERING_PERSIST_PROP, USE_DITHERING_DEFAULT);
persist.sys.jit-mode (Only "fast" and "portable" modes)
android_packages_app_CMParts/src/com/cyanogenmod/cmparts/activities/PerformancesettingsActivity.java (96:99)

Code:
mJitPref = (CheckBoxPreference) prefSet.findPreference(JIT_PREF);
        String jitMode = SystemProperties.get(JIT_PERSIST_PROP,
                SystemProperties.get(JIT_PROP, JIT_ENABLED));
        mJitPref.setChecked(JIT_ENABLED.equals(jitMode));
pm.sleep_mode (Do not work on Non-MSM chipsets)
See sleep modes on device kernel in pm-data.c and pm.h



Some background info:

XLOUD, ClearAudio

If, and ONLY if your phone support xloud on stock ROM, is highly probable that this is ported for CyanogenMod and AOSP based roms, because these custom roms use proprietary drivers, firmwares, frameworks, app....

To enable, use this:

Code:
ro.semc.sound_effects_enabled=true
ro.semc.xloud.supported=true
persist.service.xloud.enable=1
The same is valid for ClearAudio. To enable use this:

Code:
ro.semc.sound_effects_enabled=true
ro.semc.clearaudio.supported=true
persist.service.clearaudio.enable=1
Last edited by LaraCraft304; 14th August 2014 at 07:39 PM.
The Following 146 Users Say Thank You to LaraCraft304 For This Useful Post: [ View ]
26th November 2013, 08:12 PM   |  #2  
Ranisblogru's Avatar
Member
Flag Kazan
Thanks Meter: 3
 
55 posts
Join Date:Joined: Aug 2012
More
For ics 4.0 .4 ?

Sent from my MegaFon_SP-AI using xda premium
26th November 2013, 09:40 PM   |  #3  
LaraCraft304's Avatar
OP Member
Flag São Paulo
Thanks Meter: 237
 
48 posts
Join Date:Joined: Dec 2012
More
Quote:
Originally Posted by Ranisblogru

For ics 4.0 .4 ?

Sent from my MegaFon_SP-AI using xda premium

I'm looking at latest GIT tree of Android source code and latest CyanogenMod source code, so this topic is valid for latests releases (KK, JB, CM10.X, CM11), but may not be the same for earlier versions (to be sure I'm would have to look old commits...).
Last edited by LaraCraft304; 27th November 2013 at 03:37 PM.
The Following User Says Thank You to LaraCraft304 For This Useful Post: [ View ]
29th November 2013, 04:40 PM   |  #4  
Crostantin's Avatar
Senior Member
Flag Rome
Thanks Meter: 838
 
523 posts
Join Date:Joined: Dec 2012
Donate to Me
More
wow...I ve always wanted to do this resarch...but nerver had time

so all the "famous" build.prop tweaks are useless ????[
The Following User Says Thank You to Crostantin For This Useful Post: [ View ]
29th November 2013, 05:42 PM   |  #5  
broodplank1337's Avatar
Recognized Contributor / Recognized Developer
Flag Nijmegen
Thanks Meter: 10,100
 
4,943 posts
Join Date:Joined: Nov 2011
Donate to Me
More
Quote:
Originally Posted by Crostantin

wow...I ve always wanted to do this resarch...but nerver had time

so all the "famous" build.prop tweaks are useless ????[

Yes they have been fake all the time, you might even get surprised when I tell you battery calibration is also totally bogus (it's for emulator only)
The Following 10 Users Say Thank You to broodplank1337 For This Useful Post: [ View ]
29th November 2013, 06:01 PM   |  #6  
Crostantin's Avatar
Senior Member
Flag Rome
Thanks Meter: 838
 
523 posts
Join Date:Joined: Dec 2012
Donate to Me
More
really?? I am surprise !!!!
You mean that i haven't to charge one for month from 0% to 100% and etc.......

If it's true a lot stuff I red about Lithium batteries make sense.....maybe
1st December 2013, 08:35 AM   |  #7  
Senior Member
Thanks Meter: 120
 
133 posts
Join Date:Joined: May 2012
Info 2
Most of the tweaks are useless, i totally agree!

Funny to see people "copy & paste" everything they see on the internet, just to "magically" make their phones faster...

Some interesting links regarding the topic:

First one...
Second one...


Take care
Last edited by Wooaarr; 8th December 2013 at 10:52 AM.
The Following 2 Users Say Thank You to Wooaarr For This Useful Post: [ View ]
15th December 2013, 11:48 AM   |  #8  
Crostantin's Avatar
Senior Member
Flag Rome
Thanks Meter: 838
 
523 posts
Join Date:Joined: Dec 2012
Donate to Me
More
Quote:
Originally Posted by Wooaarr

Most of the tweaks are useless, i totally agree!

Funny to see people "copy & paste" everything they see on the internet, just to "magically" make their phones faster...

Some interesting links regarding the topic:

First one...
Second one...


Take care

what about 3G fast dormancy??
the tweak should be:
ro.rill.fast.dormancy.rule=0

...your opinion??
15th December 2013, 07:01 PM   |  #9  
HTCDreamOn's Avatar
Recognized Contributor
Thanks Meter: 929
 
858 posts
Join Date:Joined: Jun 2012
Donate to Me
More
@LaraCraft304 great guide, might want to mention the fact that those cyanogenmod specific changes can be found in performance settings anyway so although the build.prop lines would work, there is no need to use them.
21st December 2013, 04:23 PM   |  #10  
upndwn4par's Avatar
Recognized Developer
New Jersey
Thanks Meter: 9,780
 
3,580 posts
Join Date:Joined: Jan 2012
Donate to Me
Your post looks eerily similar to Jeff Mixon's article.

http://www.jeffmixon.com/examining-b...-guide-part-1/

http://www.jeffmixon.com/examining-b...-guide-part-2/


And FYI, this is a Motorola build.prop tweak ("mot") that in fact works (or at least used to) on Motorola devices.

Code:
ro.mot.eri.losalert.delay

The Following 3 Users Say Thank You to upndwn4par For This Useful Post: [ View ]
Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes