Saturday, 29 March 2014

Tweak your rooted android device with build.prop

Hey everybody, just wanted to share the below build.prop performance tweaks. I have been using them for some time now trying different values to see what works the best.

General Performance
debug.sf.hw=1
Edit existing line,
dalvik.vm.heapsize=48m
persist.sys.ui.hw=1

Faster Scrolling
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000


Saves power
ro.ril.disable.power.collapse=1
pm.sleep_mode=1
windowsmgr.max_events_per_sec=60
wifi.supplicant_scan_interval=180


*If you don’t keep Wi-Fi active lowering the value below the default of 90 seems to make Wi-Fi connect faster after being turned on but will consume more power if turning Wi-Fi off has been forgotten when not in range of a known network.

ro.mot.eri.losalert.delay=1000

*Should smooth out disconnects and reconnects, saving battery. Seems to brake tethering with CM7, let me know if anyone else experiences this issue.


Raises quality of images
ro.media.enc.jpeg.quality=90
ro.media.dec.jpeg.memcap=8000000
ro.media.enc.hprof.vid.bps=8000000



Increased Media & Streaming Performance
media.stagefright.enable-player=true
media.stagefright.enable-meta=true
media.stagefright.enable-scan=false
media.stagefright.enable-http=true
net.tcp.buffersize.default=4096,87380,256960,4096, 16384,256960 net.tcp.buffersize.wifi=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,163 84,256960

net.tcp.buffersize.evdo_b=4096,87380,256960,4096,1 6384,256960


*Note: I don't know why but the forum is placing spaces in the above lines that are not there. The last 3 are for data speeds but have been places here to avoid multiple explanations for the spaces. The spaces are not present when I edit and have even tried retyping them in Word and then pasting the lines in but it still shows the spaces after saving, kind of frustrating. The ends for the above lines should all be the same ending values for each line (=4096,87380,256960,4096,16384,256960). I don’t know why but for whatever reason anytime I save the post the spaces appear.



Disable error checking (Should speed things up a bit)
ro.kernel.android.checkjni=0
ro.kernel.checkjni=0


Disable sending usage data
ro.config.nocheckin=1


To make the phone ring faster when dialing out
ro.telephony.call_ring.delay=0

Disable black screen issue after call (Thanks to Whyzor for finding why looking into the other tweaks)

ro.lge.proximity.delay=25
mot.proximity.delay=25

Disable USB Debugging icon from Status Bar. (Just the Icon, debugging remains enabled.)
persist.adb.notify=0

makes apps load faster and frees more ram. (Edit exsisting line)

dalvik.vm.dexopt-flags=m=v,o=y

Improve 3g data speeds

ro.ril.hsxpa=2
ro.ril.gprsclass=10
ro.ril.hep=1
ro.ril.enable.dtm=1
ro.ril.hsdpa.category=10
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=5


Wipe both Caches in Recovery after adding or changing the above lines.

If you have used the 3g script put out by the developer of theV6 Turbocharger script then they have already been applied to your device.


Next few can be found in the CM7 Performance settings but am including them in case someone would like to use them on another Rom like Miui.

Lock Home Screen into memory
ro.HOME_APP_ADJ=1

Use Jit (Dalvik just-in-time compiler)
dalvik.vm.execution-mode=int:jit

Enable Surface dithering (Improves image quality at the cost of performance)
persist.sys.use_dithering=1

Allow purging of assets (System can free more Ram when needed)
persist.sys.purgeable_assets=1

Disable animation for faster startup
debug.sf.nobootanimation=1





To apply any of the above Tweaks you will need a File Explorer with Root Permission. I use Root Explorer so the below steps are assuming Root Explorer is being used. This can also be done using ADB ; if ADB would be preferred in place of a File Explorer then you probably do not need directions for doing so.

Qualcomm MSM Chip-sets

Most HTC devices have at their core Qualcomm System-on-Chip (SoC) Mobile Station Modem (MSM) integrated circuits. These are based on Advanced RISC Machines Ltd. (ARM) micro-processor and supporting systems designs. In most Smart Phone devices the SoC consists of two ARM micro-processors, one to manage the communications hardware (radio transmitters) and the other to manage the user applications and interface. These are generally known as the modem (or radio or baseband) processor and the applications (or apps) processor. These processors may not be identical since their functions are different.

Peripheral Communications

The MSM SoC contains a large number of integrated controllers and peripherals, all of which need to communicate with one or all micro-processors.

Data Mover

Direct Memory Access (DMA) controllers set-up and supervise direct transfers of large blocks of data directly to or from a peripheral out of or into Random Access Memory (RAM). DMA releases the micro-processor from having to use its own Input/Output (I/O) instructions to move data one word (a word is the number of bits the data bus can move in one clock tick) at a time inside a loop. The effect of DMA is to make data transfers to or from peripherals many times faster than the micro-processor could achieve, and allows the micro-processor to get on with other tasks until the DMA controller sends it an interrupt request (IRQ) notifying it that a DMA transfer is complete.
MSM chipsets have two DMA engines called Data Movers (DM or DMOV). They are the Modem Data Mover (mDM) and Applications Data Mover (aDM). Each provides sixteen data-transfer channels that can operate at the same time. Ownership of each channel is determined by security domain (SD), where the modem micro-processor operates in SD0 and SD1, the applications Digital Signal Processor (aDSP) operates in SD2, and the apps processor operates in SD3. Only the modem processor can change the security domain channel assignments.

Inter Integrated Circuit (I2C) Communications

I2C is a two-wire bus for communications between integrated circuits. These are usually off-chip (not integrated into the SoC) devices. MSM typically uses them for keyboard, touch-pad, micro-controller,
memory, Liquid Crystal Display (LCD) driver and stereo sound. Typically the devices do not need to high speeds nor to move large amounts of data or commands.

Single Wire Serial Bus Interface

The Single-wire Serial Bus Interface (SSBI) is similar to I2C but it combines power and data on a single wire. The clients incorporate a small capacitor to store charge when the master has put the wire into data mode. Unlike I2C though, it is a point-to-point interface (only ever two devices connected by it).

Inter-Processor Communication

The radio micro-processor is in command of the entire system. It can and does prevent access to some core hardware and services by the apps micro-processor. It also provides several methods for the apps processor to communicate with it using Inter Processor Communications (IPC). The methods vary based on the objective of the communication.
The IPC methods are high-level Application Programming Interfaces (APIs) implemented on top of a common Shared Memory (SMEM) design. SMEM uses defined ranges within the address-space of the system (232 - 1) which all the micro-processors have access to. These ranges are called channels. An 'IPC call' consists of the caller storing a data structure in an SMEM channel and then initiating a hardware interrupt (IRQ) on the callee micro-processor. The callee IRQ handler walks the list of open SMEM channels to discover which one has been updated, and then calls a local function that has registered to handle the channel.

Remote Procedure Call (RPC)

RPC allows functions on a client micro-processor to call functions on the server micro-processor which then executes the requested function and returns the result to the caller. The client will place function arguments into SMEM and the server will place the return value in SMEM. The definition of client and server is purely based on which micro-processor initiates the RPC, although in some designs it is possible that only one micro-processor runs an RPC server.

shared from tjworld.