Related
How do I edit cmdline switches in the Startup.txt folder so I can for example, turn on the external speaker for android 2.1 development. Below are the changes I am looking to edit. I read these on the FAQ of the Android Project Development page for HTC Touch Pro 2 (sorry I cannot input link to page yet)
Thanks for any help/steps
Screen Settings - lcd.density=240 - We use 240 for Rhodium Screens
Turn off on-screen debug keyboard - msmvkeyb_toggle=off
Configure gsensor - gsensor_axis=2,1,3 - For Rhodiums
Sleep mode debug - pm.debug_mask=2 - Vibrates phone lightly after it exits deep sleep
Force RIL to CDMA for non-GSM Rhodiums - force_cdma=1
Physical Keyboard Layout Switches - physkeyboard=rhod400 - Sprint Keyboard - physkeyboard=rhod500 - Verizon Keyboard
Enable Hardward 3D - hw3d.force=1
Enable External Speaker - external.rhod_speaker=1 - Keep in mind this is for debugging
Enable Proximity Sensor - board-htcrhodium-proximity.on=1
Enable Wake on Proximity Sensor - board-htcrhodium-proximity.wake=1
Set Android directory - rel_path=directory - Set directory to where you are storing your installation
Turn off Low Battery Warning - htc_battery_smem.fake=1
Control In Call Sound (IN CALL ONLY)
htc_hw.call_vol = x
x can be 0-5, 0 lowest and 5 loudest obviously. Default level is 5.
Overclock capabilities - acpuclock.oc_freq_khz=XXXXXX - Replace X's with frequency in Khz not Mhz.
You have to enter speeds in Khz though so
540672 = 528Mhz Stock speed
716800 = 700Mhz
786432 = 768Mhz Reported to be stable
Sleep Modes: (pm.sleep_mode=) in the startup.txt
This is supposedly for topaz/rhodium that I found on the xda wiki:
* '4' will do "wait for interrupt", no change in arm11's clock or voltage
* '3' will do "wait for interrupt and ramp clock", the arm11's clock is lowered to 20MHz instead of 300-500, and voltage is lowered too.
* '2' will do "app sleep", arm11 is still on, but put into low power mode (registers are still saved)
* '1' and '0' will totally power off the arm11 (so we have to restore registers and things ourself), don't know the differences between them.
This should be posted in the android section...
WC
hello folks...
can anybody suggest or provide some build.prop tweaks for longer battery life..
kantry123 said:
hello folks...
can anybody suggest or provide some build.prop tweaks for longer battery life..
Click to expand...
Click to collapse
Here are the main ones.
Code:
# Time between Access Points scans
# Increase seconds to minimize battery drain
wifi.supplicant_scan_interval = 180
# LCD Brightness Setting Default is 143
settings.display.brightness = 120
# ARM11 Sleep Mode
# 0 = Power Collapse Suspend
# 1 = Power Collapse
# 2 = Apps Sleep
# 3 = Slow Clock and Wait for Interrupt
# 4 = Wait for Interrupt
pm.sleep_mode = 1
# HSDPA Low Throughput
ro.ril.disable.power.collapse = 0
Tera Tike said:
Here are the main ones.
Code:
# Time between Access Points scans
# Increase seconds to minimize battery drain
wifi.supplicant_scan_interval = 180
# LCD Brightness Setting Default is 143
settings.display.brightness = 120
# ARM11 Sleep Mode
# 0 = Power Collapse Suspend
# 1 = Power Collapse
# 2 = Apps Sleep
# 3 = Slow Clock and Wait for Interrupt
# 4 = Wait for Interrupt
pm.sleep_mode = 1
# HSDPA Low Throughput
ro.ril.disable.power.collapse = 0
Click to expand...
Click to collapse
thanks for ur reply...
but will it work with HTC wildfire s a510e(GSM)...?
kantry123 said:
thanks for ur reply...
but will it work with HTC wildfire s a510e(GSM)...?
Click to expand...
Click to collapse
Yes.
On average how much longer has this increased battery life ?
Sent from my HTC_A510c using XDA App
junxracr said:
On average how much longer has this increased battery life ?
Sent from my HTC_A510c using XDA App
Click to expand...
Click to collapse
On one phone with data, wifi, bluetooth and sync enabled get about two days plus. On the other one with just the phone on I get about 4 plus days. So it will vary...
Thank you I'll give it a try.
Sent from my HTC_A510c using XDA App
I'm bumping this - anybody else got any other interesting tweaks?
Sent from my Wildfire S A510e using xda premium
To help with touch responsiveness...
CHANGE:
Code:
view.touch_slop = 2
ADD:
Code:
# Force Launcher into Memory
ro.HOME_APP_ADJ = 1
# Enable Graphic Processor Unit
debug.sf.hw = 1
# Improve Overall Touch Responsiveness
debug.performance.tuning = 1
video.accelerate.hw = 1
# Improve Scrolling Responsiveness
windowsmgr.max_events_per_sec = 150
Tera Tike said:
To help with touch responsiveness...
CHANGE:
Code:
view.touch_slop = 2
ADD:
Code:
# Force Launcher into Memory
ro.HOME_APP_ADJ = 1
# Enable Graphic Processor Unit
debug.sf.hw = 1
# Improve Overall Touch Responsiveness
debug.performance.tuning = 1
video.accelerate.hw = 1
# Improve Scrolling Responsiveness
windowsmgr.max_events_per_sec = 150
Click to expand...
Click to collapse
thanks but would u suggest any thing with max and min fling velocity..?
kantry123 said:
thanks but would u suggest any thing with max and min fling velocity..?
Click to expand...
Click to collapse
For me not really, the Minimum fling velocity is measured by the number of pixels your finger traveled per second.
You can lower the view.minimum_fling_velocity = 15 to speed up scrolling.
I would not even set the maximum velocity as the screen is to small for it to be effective.
Tera Tike said:
For me not really, the Minimum fling velocity is measured by the number of pixels your finger traveled per second.
You can lower the view.minimum_fling_velocity = 15 to speed up scrolling.
I would not even set the maximum velocity as the screen is to small for it to be effective.
Click to expand...
Click to collapse
thank u so much for ur valuable answer...!
but can u clarify my doubt..??
below i'm posting some tweaks will that work on wfs.?
ro.mot.eri.losalert.delay=1000
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000
ro.telephony.call_ring.delay=0
ro.lge.proximity.delay=25
mot.proximity.delay=25
dalvik.vm.dexopt-flags=m=v,o=y
persist.sys.purgeable_assets=1
ro.config.hw_fast_dormancy=1
persist.sys.shutdown.mode = hibernate
ro.config.hw_power_saving=true
debug.kill_allocating_task=0
debug.qctwa.statusbar=1 (qualcomm device specific)
debug.qctwa.preservebuf=1 (qualcomm device specific)
debug.qc.hardware=true (qualcomm device specific)
com.qc.hardware=true (qualcomm device specific)
plz.z..z won't mind if i have botherd u but.. seriously i'm in need of those tweaks..??
kantry123 said:
thank u so much for ur valuable answer...!
but can u clarify my doubt..??
below i'm posting some tweaks will that work on wfs.?
ro.mot.eri.losalert.delay=1000
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000
ro.telephony.call_ring.delay=0
ro.lge.proximity.delay=25
mot.proximity.delay=25
dalvik.vm.dexopt-flags=m=v,o=y
persist.sys.purgeable_assets=1
ro.config.hw_fast_dormancy=1
persist.sys.shutdown.mode = hibernate
ro.config.hw_power_saving=true
debug.kill_allocating_task=0
debug.qctwa.statusbar=1 (qualcomm device specific)
debug.qctwa.preservebuf=1 (qualcomm device specific)
debug.qc.hardware=true (qualcomm device specific)
com.qc.hardware=true (qualcomm device specific)
plz.z..z won't mind if i have botherd u but.. seriously i'm in need of those tweaks..??
Click to expand...
Click to collapse
Here is the list of what I am using...
Code:
# View configuration for QVGA
ro.min.fling_velocity=10
# Decrease Dialing Delay
ro.telephony.call_ring.delay = 0
# Fix Blackscreen Issue after Call
ro.lge.proximity.delay = 5
mot.proximity.delay = 5
# Dalvik Cache Settings
dalvik.vm.dexopt-flags = v=n,o=a,u=y
# Application Not Responding Timeout
keydispatchtimeout = 15000
# Qualcomm UI Tweaks
debug.qctwa.preservebuf = 1
debug.qc.hardware = true
# Improves Radio Signal
ro.config.hw_fast_dormancy = 1
I would not use these as they was not needed, degraded or bootlooped my device.
Code:
# Maximum Velocity to Initiate a Fling (measured pixels per second)
ro.max.fling_velocity = 12000
# Cellular Tower Reconnect Delay (Made Hotspot Mode Unstable)
ro.mot.eri.losalert.delay = 1000
# Purge Memory Cache Memory on reboot (UI already does that)
persist.sys.purgeable_assets = 1
# Dalvik Cache Settings (degraded performance)
dalvik.vm.dexopt-flags=m=v,o=y
# Disable Graphic Dithering (default setting)
persist.sys.use_dithering = 0
# Power Off Mode Hibernate
persist.sys.shutdown.mode = hibernate
# Enable Hardware Power Savings (not supported)
ro.config.hw_power_saving = true
# Enhanced Operator Name String
persist.cust.tel.eons = 1
# Disable Task Killing
debug.kill_allocating_task = 0
# Qualcomm UI Tweaks (Made no differance)
debug.qctwa.statusbar = 1
com.qc.hardware = true
Hey everyone!
Does anybody else get this weird artifacts/glitches in this game, screenshot down below. XS rooted.
Any fixes, seems like an awesome game!!
Disable HW Overlays and it will be OK
EDIT: If you have root add these lines to build.prop
debug.sf.hw=1
video.accelerate.hw=1
debug.egl.profiler=1
debug.performance.tuning=1
debug.egl.hw=1
debug.composition.type=gpu
persist.sys.composition.type=gpu
Hello Dear S3 Users & Devs this is a build.prop Tweaks may help & may no on ur rom so just copy/paste in ur build.prop at the end .. & also for DEVS so I hope it's helping u...
# Rendering Tweaks
debug.composition.type=c2d
debug.egl.hw=1
debug.enabletr=true
debug.overlayui.enable=1
debug.qctwa.preservebuf=1
debug.performance.tuning=1
debug.sf.hw=1
dev.pm.dyn_samplingrate=1
hw3d.force=1
ro.config.disable.hw_accel=false
ro.fb.mode=1
ro.sf.compbypass.enable=0
ro.vold.umsdirtyratio=20
persist.sys.composition.type=c2d
persist.sys.ui.hw=1
video.accelerate.hw=1
# Default Network Mode
ro.telephony.default_network=10
# Enable GPU Acceleration
video.accelerate.hw=1
debug.performance.tuning=1
persist.sys.composition.type=gpu
debug.qc.hardware=true
debug.qctwa.statusbar=1
debug.egl.profiler=1
debug.egl.hw=1
debug.composition.type=gpu
hw3d.force=1
ro.product.gpu.driver=1
persist.sys.use_16bpp_alpha=1
persist.sampling_profiler=0
hwui.render_dirty_regions=false
hwui.disable_vsync=true
# Saves some battery without reducing performances
wifi.supplicant_scan_interval=497
pm.sleep_mode=1
power.saving.mode=1
ro.vold.umsdirtyratio=20
proximity_incall=enable
ro.config.hw_quickpoweron=true
usb_wakeup=enable
# Battery save
ro.ril.disable.power.collapse=0
profiler.force_disable_err_rpt=1
profiler.force_disable_ulog=1
dalvik.vm.checkjni=false
dalvik.vm.execution-mode=int:jit
ro.ril.power_collapse=1
power_supply.wakeup=enable
ro.mot.eri.losalert.delay=1000
ro.config.hw_fast_dormancy=1
ro.config.hw_power_saving=1
# Misc Tweaks (enables ADB service)
persist.service.adb.enable=1
# Sensor Sleep Control
ro.ril.sensor.sleep.control=1
# Device will boot faster
persist.sys.shutdown.mode=hibernate
ro.config.hw_fast_dormancy=1
ro.config.hw_quickpoweron=true
# Reduce dial-out time
ro.telephony.call_ring.delay=0
# Allow purge of assets to free more ram
persist.sys.purgeable_assets=1
# More free ram and apps load faster
dalvik.vm.dexopt-flags=m=y
# More RAM
#persist.sys.purgeable_assets=1
persist.service.pcsync.enable=0
persist.service.lgospd.enable=0
ro.config.low_ram.mod=true
# Increase general Performance
debug.performance.tuning=1
# Increase some Performance
ro.secure=0
persist.sys.use_16bpp_alpha=1
ro.product.gpu.driver=1
ro.min.fling_velocity=8000
debug.gr.swapinterval=1
debug.kill_allocating_task=0
ENFORCE_PROCESS_LIMIT=false
hw3d.force=1
persist.sys.NV_FPSLIMIT=60
ro.debuggable=1
ro.min_pointer_dur=8
ro.min_pointer_dur=1
ro.wmt.blcr.enable=0
# Reduce the black screen time of the proximity sensor
ro.lge.proximity.delay=25
mot.proximity.delay=25
# TOUCH
touch.presure.scale=0.001
# Better Scrolling responsiveness and speed
windowsmgr.max_events_per_sec=150
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000
ro.min_pointer_dur=8
# Smoothens UI
persist.service.lgospd.enable=0
persist.service.pcsync.enable=0
ro.ril.enable.a52=1
ro.ril.enable.a53=0
# Increase camera's photo and video recording quality
ro.media.dec.jpeg.memcap=8000000
ro.media.enc.hprof.vid.bps=8000000
ro.media.enc.hprof.vid.fps=65
ro.media.dec.aud.wma.enabled=1
ro.media.dec.vid.wmv.enabled=1
# Better Flashlight intensity and camera-flash quality
ro.media.capture.flash=led
ro.media.capture.flashMinV=3300000
ro.media.capture.torchIntensity=40
ro.media.capture.flashIntensity=70
ro.media.capture.maxres=8m
ro.media.capture.fast.fps=4
ro.media.capture.slow.fps=120
ro.media.panorama.defres=3264x1840
ro.media.panorama.frameres=1280x720
ro.camcorder.videoModes=true
ro.media.cam.preview.fps=0
ro.media.codec_priority_for_thumb=so
# Increase the volume steps in-call
ro.config.vc_call_steps=20
# Better call voice quality.
ro.ril.enable.amr.wideband=1
# Force launcher into memory
ro.HOME_APP_ADJ=1
# Disable Bytecode Verification
dalvik.vm.verify-bytecode=false
dalvik.vm.dexopt-flags=m=y,v=n,o=v
#dalvik.vm.dexopt-flags=m=y,v=n,o=v,u=n
# Improves Camera & Video Results
ro.media.panorama.defres=3264x1840
ro.media.panorama.frameres=1280x720
ro.camcorder.videoModes=true
ime_extend_row_keyboard=true
ime_onehand_keyboard=true
ime_split_keyboard=true
ime_vibration_pattern=0:60
# Hardware 2D & 3D Rendering
hw3d.force=1
hw2d.force=1
# 3d performance
persist.android.strictmode=0
ro.secure=0
# Audio Tweaks
persist.audio.fluence.mode=endfire
persist.audio.hp=true
persist.audio.vr.enable=false
persist.audio.handset.mic=digital
persist.audio.lowlatency.rec=false
# System prop to select audio resampler quality
af.resampler.quality=255
# System prop to select MPQAudioPlayer by default on mpq8064
mpq.audio.decode=true
# Increase jpg quality to 100%
ro.media.enc.jpeg.quality=100
# Disable Error reporting and logs
profiler.force_disable_err_rpt=1
profiler.force_disable_ulog=1
# Disable Sending Usage Data
ro.config.nocheckin=1
# Fix some application issues (FC)
ro.kernel.android.checkjni=0
# MMS APN retry timer set to 2 sec( if SMS/MMS couldn`t be sent, it retries after 2 instead of 5 seconds)
ro.gsm.2nd_data_retry_config=max/_retries=3, 2000, 2000, 2000
# Miscellaneous Tweaks for performance
ro.config.hw_menu_unlockscreen=false
persist.sys.purgeable_assets=1
dalvik.vm.dexopt-flags=m=y
ro.mot.eri.losalert.delay=1000
ro.telephony.sms_segment_size=160
# Better internet browsing & download speed
net.tcp.buffersize.default=6144,87380,1048576,6144 ,87380,524288
net.tcp.buffersize.wifi=524288,1048576,2097152,524 288,1048576,2097152
net.tcp.buffersize.umts=6144,87380,1048576,6144,87 380,524288
net.tcp.buffersize.gprs=6144,87380,1048576,6144,87 380,524288
net.tcp.buffersize.edge=6144,87380,524288,6144,163 84,262144
net.tcp.buffersize.hspa=6144,87380,524288,6144,163 84,262144
net.tcp.buffersize.lte=524288,1048576,2097152,5242 88,1048576,2097152
net.tcp.buffersize.hsdpa=6144,87380,1048576,6144,8 7380,1048576
net.tcp.buffersize.evdo_b=6144,87380,1048576,6144, 87380,1048576
# Smoother video streaming and tweak media
media.stagefright.enable-player=true
media.stagefright.enable-meta=true
media.stagefright.enable-scan=true
media.stagefright.enable-http=true
media.stagefright.enable-aac=true
media.stagefright.enable-qcp=true
media.stagefright.enable-record=false
# 3G signal and speed tweaks
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=7
ro.ril.hsdpa.category=10
ro.ril.enable.a52=1
ro.ril.set.mtu1472=1
persist.cust.tel.eons=1
ro.config.hw_fast_dormancy=1
persist.data_netmgrd_mtu=1482
persist.data_netmgrd_nint=8
ro.use_data_netmgrd=true
# For the default value of agps
ro.ril.def.agps.mode=2
ro.ril.def.agps.feature=1
# GOOGLE DNS
net.dns1=8.8.8.8
net.dns2=8.8.4.4
net.rmnet0.dns1=8.8.8.8
net.rmnet0.dns2=8.8.4.4
net.ppp0.dns1=8.8.8.8
net.ppp0.dns2=8.8.4.4
net.wlan0.dns1=8.8.8.8
net.wlan0.dns2=8.8.4.4
net.eth0.dns1=8.8.8.8
net.eth0.dns2=8.8.4.4
net.gprs.dns1=8.8.8.8
net.gprs.dns2=8.8.4.4
# CRT
persist.sys.screen_off=crt
persist.sys.screen_on=none
# Support For IPV4 and IPV6
persist.telephony.support.ipv6=1
persist.telephony.support.ipv4=1
#
ro.com.google.locationfeatures=1
ro.com.google.networklocation=1
htc.audio.alt.enable=0
htc.audio.hac.enable=0
# Wireless Tweaks
net.ipv4.ip_no_pmtu_disc=0
net.ipv4.route.flush=1
net.ipv4.tcp_ecn=0
net.ipv4.tcp_fack=1
net.ipv4.tcp_mem=187000 187000 187000
net.ipv4.tcp_moderate_rcvbuf=1
net.ipv4.tcp_no_metrics_save=1
net.ipv4.tcp_rfc1337=1
net.ipv4.tcp_rmem=4096 39000 187000
net.ipv4.tcp_sack=1
net.ipv4.tcp_timestamps=1
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_wmem=4096 39000 18700
wifi.supplicant_scan_interval=180
net.ipv4.tcp_fack=1
net.ipv4.tcp_window_scaling=1
# Video Acceleration Enabled And HW debugging
video.accelerate.hw=1
debug.sf.hw=1
debug.performance.tuning=1
debug.egl.profiler=1 # Measure rendering time in adb shell dumpsys gfxinfo
debug.egl.hw=1
debug.composition.type=gpu # Disable hardware overlays and use GPU for screen compositing
# Disable logcat
logcat.live=disable
# Better image quality, lower performance.
persist.sys.use_dithering=1
# Better Telephony Settings
ro.config.vc_call_vol_steps=15
ring.delay=0
ro.lge.proximity.delay=25
mot.proximity.delay=25
ro.mot.buttonlight.timeout=0
# For SD storage insert notification sound
persist.service.mount.playsnd=0
# faster youtube?
ro.ril.hep=0
Sent from my SM-G900F using Tapatalk
Are you sure for that? What if my s3 get some error or bug?
semflow said:
Are you sure for that? What if my s3 get some error or bug?
Click to expand...
Click to collapse
Its simply make full backup ..
Sent from my SM-G900F using Tapatalk
How many of these can you actually confirm working for 4.3 or 4.4.2? I know some of these were retired with project butter.
Kryten2k35 said:
How many of these can you actually confirm working for 4.3 or 4.4.2? I know some of these were retired with project butter.
Click to expand...
Click to collapse
Both
Sent from my SM-G900F using Tapatalk
So, you can confirm that ALL these build.prop values work, even though some were retired in 4.1.2 (like HW rendering, that's on by default)?
I can decompile the entire framework set of jars and find these all these values?
I'm asking because I'm curious. I've seen some of these before for various devices and I think some are no longer in use.
density
Is it safe to add (ro.sf.lcd_density line) in this build.prop?
Does someone already tested on 4.4 custom roms?
I use this on 4.4.2 qs
and all is ok but i need to del this line
# Better Telephony Settings
ro.config.vc_call_vol_steps=15
ring.delay=0
ro.lge.proximity.delay=25
mot.proximity.delay=25
ro.mot.buttonlight.timeout=0
Bc i have quaiet speeker in call
At least half of these won't work. Infact,all of them may just not work,except some minor tweaks,like device's name or lcd density.
Op thanks for trying hard for us,but ecerything there is pretty much useless.
AssassinGEO said:
At least half of these won't work. Infact,all of them may just not work,except some minor tweaks,like device's name or lcd density.
Op thanks for trying hard for us,but ecerything there is pretty much useless.
Click to expand...
Click to collapse
how did you know ?
Screen refresh rate is controlled by several variables, 3 which I found are:
Code:
# getprop ro.surface_flinger.use_content_detection_for_refresh_rate
This instructs the screen compositor (surface flinger) to look at screen content to control screen refresh rate. 'true' by default; you will need root and Magisk's resetprop to override it, e.g.
Code:
# resetprop ro.surface_flinger.use_content_detection_for_refresh_rate false
But note that that does not stick after reboot, you will need a magisk module to force that upon boot. Add the property to system.prop file in the magisk module top directory.
Then:
Code:
# settings get system min_refresh_rate
0 by default; you can set e.g. to '60'
Code:
# settings put system min_refresh_rate 60
And the peak refresh:
Code:
# settings get system peak_refresh_rate
60 or 120 depending on toggle 'Smooth display' in Settings.
When you use 'Force peak refresh rate' in developer options then:
Code:
# settings list system | grep refresh
min_refresh_rate=120.00001
Weird number by the way. Anyway that forces the driver into 120Hz continuously.
I have personally set min=60, peak=120 and the surface flinger content detection to 'false' ... just to see how this goes for a couple of days.
And finally some other properties related to surface_flinger:
Code:
# indicates whether SurfaceFlinger should use refresh rate switching on the device, e.g. between 60 and 120 Hz (default: true)
ro.surface_flinger.refresh_rate_switching
# value used by the Scheduler to trigger display power inactivity callbacks (default: 1000)
ro.surface_flinger.set_display_power_timer_ms
# used by the Scheduler to trigger touch inactivity callbacks that will switch display to a lower refresh rate (default: 200)
ro.surface_flinger.set_touch_timer_ms
Interesting ...
It's possible to set minimum to 10Hz?
foobar66 said:
I have personally set min=60, peak=120 and the surface flinger content detection to 'false' ... just to see how this goes for a couple of days.
Click to expand...
Click to collapse
How did it go?
PuffDaddy_d said:
How did it go?
Click to expand...
Click to collapse
So far no issues ... all working fine. I have now set the minimum as well to 120 Hz ... just to see how that might affect things ...
foobar66 said:
So far no issues ... all working fine. I have now set the minimum as well to 120 Hz ... just to see how that might affect things ...
Click to expand...
Click to collapse
LOL ... as expected ... significantly more battery drain keeping the screen to 120 Hz all the time.
But scrolling ... oh so smooth ...
Looking for a middle with increased ground with ro.surface_flinger.set_touch_timer_ms to avoid switching too soon to lower rate (and ro.surface_flinger.use_content_detection_for_refresh_rate=false to avoid switching to lower rate based on content).
foobar66 said:
LOL ... as expected ... significantly more battery drain keeping the screen to 120 Hz all the time.
But scrolling ... oh so smooth ...
Looking for a middle with increased ground with ro.surface_flinger.set_touch_timer_ms to avoid switching too soon to lower rate (and ro.surface_flinger.use_content_detection_for_refresh_rate=false to avoid switching to lower rate based on content).
Click to expand...
Click to collapse
Can min=90? Or will it only run between 60-120?
kevinireland11 said:
Can min=90? Or will it only run between 60-120?
Click to expand...
Click to collapse
Not sure ... I guess it can ... I have not yet found if there is a kernel flag which can be checked to obtain the current (actual) frequency of the display.
Actually, you can see the refresh rate of the screen.
Go to developer settings. There is a toggle there called 'Show refresh rate' ;-)
Tried setting min rate to 90 ... but does not work via this mechanism.
Code:
settings put system min_refresh_rate 90
It switches the minimum rate to 120.
So looks like only 60 and 120 are accepted.
If you set system peak_refresh_rate to 60, then the screen will always be in 60 Hz. That is very clearly visible when scrolling.
When you touch the screen, it seems to immediately switch into 120 HZ as there is of course a possibility that you will start scrolling ... so makes sense. As soon as you lift your finger and the screen content is not moving the frequency is lowered to 60.
foobar66 said:
Screen refresh rate is controlled by several variables, 3 which I found are:
Code:
# getprop ro.surface_flinger.use_content_detection_for_refresh_rate
This instructs the screen compositor (surface flinger) to look at screen content to control screen refresh rate. 'true' by default; you will need root and Magisk's resetprop to override it, e.g.
Code:
# resetprop ro.surface_flinger.use_content_detection_for_refresh_rate false
But note that that does not stick after reboot, you will need a magisk module to force that upon boot. Add the property to system.prop file in the magisk module top directory.
Then:
Code:
# settings get system min_refresh_rate
0 by default; you can set e.g. to '60'
Code:
# settings put system min_refresh_rate 60
And the peak refresh:
Code:
# settings get system peak_refresh_rate
60 or 120 depending on toggle 'Smooth display' in Settings.
When you use 'Force peak refresh rate' in developer options then:
Code:
# settings list system | grep refresh
min_refresh_rate=120.00001
Weird number by the way. Anyway that forces the driver into 120Hz continuously.
I have personally set min=60, peak=120 and the surface flinger content detection to 'false' ... just to see how this goes for a couple of days.
And finally some other properties related to surface_flinger:
Code:
# indicates whether SurfaceFlinger should use refresh rate switching on the device, e.g. between 60 and 120 Hz (default: true)
ro.surface_flinger.refresh_rate_switching
# value used by the Scheduler to trigger display power inactivity callbacks (default: 1000)
ro.surface_flinger.set_display_power_timer_ms
# used by the Scheduler to trigger touch inactivity callbacks that will switch display to a lower refresh rate (default: 200)
ro.surface_flinger.set_touch_timer_ms
Click to expand...
Click to collapse
Hi, what's your experience with these changings now?
Can you send the exact settings for a script please?
For Samsung devices with high refresh rate displays there is Galaxy Max Hz, that has an adaptive mode (Pixel default from what i understand in the few hours ive been back on Pixel (6 Pro)) and also a screen off low rate, and also per app granular control. So far havent seen an equivalent for Pixel, but hopefully a matter of time
How to get magisk resteprop? I can't find anything about it
_Vortex95 said:
How to get magisk resteprop? I can't find anything about it
Click to expand...
Click to collapse
Its an applet of magisk, its functions are outlined here:
Magisk/tools.md at master · topjohnwu/Magisk
The Magic Mask for Android. Contribute to topjohnwu/Magisk development by creating an account on GitHub.
github.com
short version, you could call it via script (post-fs-data.sh OR service.sh - depending on at which point of the boot process you wanted to use it)
boot stages of magisk explained here:
Magisk/details.md at master · topjohnwu/Magisk
The Magic Mask for Android. Contribute to topjohnwu/Magisk development by creating an account on GitHub.
github.com
service.sh is preferred (see here for why: https://topjohnwu.github.io/Magisk/guides.html#boot-scripts )
but
as mentioned it would be easier to add it to a system.prop file it the root folder of a magisk module and try that first
and if you were looking to create a magisk module and fiddle, this template by @Zackptg5 is what id recommend and i use:
GitHub - Zackptg5/MMT-Extended: Magisk Module Template Extended
Magisk Module Template Extended. Contribute to Zackptg5/MMT-Extended development by creating an account on GitHub.
github.com
and his excellent wiki:
Home
Magisk Module Template Extended. Contribute to Zackptg5/MMT-Extended development by creating an account on GitHub.
github.com
A module might be as simple as (i could do it in about 5 minutes, (and it shouldnt take you much more as a 1st timer, as this is a simple module), but people should learn this themselves):
1) Download the MMT- Extended template linked above buy going to the github link, then click (towards top) green Code button, then Download Zip or click here: https://github.com/Zackptg5/MMT-Extended/archive/refs/heads/master.zip
2) Extract the zip somewhere, giving you a folder "MMT-Extended-master"
3) Rename "MMT-Extended-master" to the name of the module youre creating
4) Descend into this folder, delete what you dont need - in this case:
system folder
zygisk folder
changelog.md (unless you plane to update and maintain a changelog)
update.json (unless you plan to submit to a repo)
5) Edit module.prop to set values for the module name etc (remove the update updateJson line if you removed the update.json file)
6) Add a system.prop file in the folder
7) Open with a good text editor (notepad++ is reocmmended) and add the necessary line:
Code:
ro.surface_flinger.use_content_detection_for_refresh_rate false
8) Save the file
9) Select all the contents of the folder, and compress (preferably with anything but WinRAR (as it can create wonlky zip files))
10) Transfer to device, flash via Magisk Manager (NOT TWRP) and test
Only if this way fails would i bother with trying to add the resetprop method buy adding the
Code:
resetprop ro.surface_flinger.use_content_detection_for_refresh_rate false
line in service.sh (created in the folder), usually people would try this way with a delay (sleep <seconds>) to try and change it much later than the resetprop stage in system.prop...timing can sometimes be everything
Magisk modules dont need to be hard and thats a VERY simple one
Came across this in my travels today(not tested by me), just linking for interested parties
GitHub - yc9559/dfps: Dynamic screen refresh rate controller for Android 10+
Dynamic screen refresh rate controller for Android 10+ - GitHub - yc9559/dfps: Dynamic screen refresh rate controller for Android 10+
github.com
I have a Pixel 6a, might it be possible to reduce the Refresh Rate to 30Hz with this method?
Btw: Thank you for sharing your knowledge/findings guys!
You don't want it forced high all of the time. It's supposed to get low when you're on for example, always on display. You don't need root to edit this, all you need is the settings database editor app, and granting it the write secure settings permission through adb. You'll see the areas for minimum refresh rate, maximum refresh rate and user set refresh rate. You can also use the LADB app and set up wireless debugging and type in CMD display, and from there you can change the display size, HDR formats and refresh rate