Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,742,296 Members 53,607 Now Online
XDA Developers Android and Mobile Development Forum

[Guide] demystifying build.prop [Valid entries]

Tip us?
 
LaraCraft304
Old
(Last edited by LaraCraft304; 8th January 2014 at 12:18 PM.)
#1  
LaraCraft304's Avatar
Member - OP
Thanks Meter 219
Posts: 43
Join Date: Dec 2012
Location: São Paulo
Prompt [Guide] demystifying build.prop [Valid entries]

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:
Select 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:
Select 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:
Select 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:
Select 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:
Select 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:
Select 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:
Select 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:
Select 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:
Select 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:
Select 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:
Select 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

The Following 137 Users Say Thank You to LaraCraft304 For This Useful Post: [ Click to Expand ]
 
Ranisblogru
Old
#2  
Ranisblogru's Avatar
Member
Thanks Meter 3
Posts: 55
Join Date: Aug 2012
Location: Kazan
For ics 4.0 .4 ?

Sent from my MegaFon_SP-AI using xda premium
 
LaraCraft304
Old
(Last edited by LaraCraft304; 27th November 2013 at 02:37 PM.)
#3  
LaraCraft304's Avatar
Member - OP
Thanks Meter 219
Posts: 43
Join Date: Dec 2012
Location: São Paulo
Quote:
Originally Posted by Ranisblogru View Post
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...).
The Following User Says Thank You to LaraCraft304 For This Useful Post: [ Click to Expand ]
 
Crostantin
Old
#4  
Crostantin's Avatar
Senior Member
Thanks Meter 250
Posts: 347
Join Date: Dec 2012
Location: Rome
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: [ Click to Expand ]
 
broodplank1337
Old
#5  
broodplank1337's Avatar
Recognized Contributor / Recognized Developer
Thanks Meter 9922
Posts: 4,928
Join Date: Nov 2011
Location: Nijmegen

 
DONATE TO ME
Quote:
Originally Posted by Crostantin View Post
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)
Device: Samsung Galaxy S4 (i9505)

Latest Development:
 

Roms:
AOSP v4.4.4 (KTU84P) from source for I9505 (Github)
- Cleanest ROM available for i9505. along with up-to-date stock kernel, also forms a perfect base for ROM developers.

Apps:
Galaxy S4 Glove Mode App (Playstore link)
- Do you want the Glove Mode of the S4 but your ROM doesn't support it? Use this app to enable/disable it easily.

Latest Scraps:
Proprietary Lib Cleaner / Silent proprietary libs / Live Thermal Monitor / GIT Conflict Fixer

Projects in development:
 

broodROM KitKat "Aiming for perfection"
- Custom ROM with really high standards, more info soon

For sources you can visit my Github. Or take a look at all my projects

The Following 9 Users Say Thank You to broodplank1337 For This Useful Post: [ Click to Expand ]
 
Crostantin
Old
#6  
Crostantin's Avatar
Senior Member
Thanks Meter 250
Posts: 347
Join Date: Dec 2012
Location: Rome
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
 
Wooaarr
Old
(Last edited by Wooaarr; 8th December 2013 at 09:52 AM.)
#7  
Senior Member
Thanks Meter 98
Posts: 108
Join Date: May 2012
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
The Following 2 Users Say Thank You to Wooaarr For This Useful Post: [ Click to Expand ]
 
Crostantin
Old
#8  
Crostantin's Avatar
Senior Member
Thanks Meter 250
Posts: 347
Join Date: Dec 2012
Location: Rome
Quote:
Originally Posted by Wooaarr View Post
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??
 
HTCDreamOn
Old
#9  
HTCDreamOn's Avatar
Recognized Contributor
Thanks Meter 667
Posts: 802
Join Date: Jun 2012
@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.
 
upndwn4par
Old
#10  
upndwn4par's Avatar
Recognized Developer
Thanks Meter 9118
Posts: 3,296
Join Date: Jan 2012
Location: New Jersey
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:
Select Code
ro.mot.eri.losalert.delay

The Following 2 Users Say Thank You to upndwn4par For This Useful Post: [ Click to Expand ]
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes