Hi
i have no issues with wifi but
i am on android 2.2.1 cyanogen rom on htc magic 32B.. sometime 2G connection gets silenced. any ping thing using less data to keep it alive ?pinging every 10-20 seconds or similar? how can i keep 2G awake with least data traffic used and least battery usage. any app out there for 2G?
P.S. not asking about wifi.
irisiris said:
Hi
i have no issues with wifi but
i am on android 2.2.1 cyanogen rom on htc magic 32B.. sometime 2G connection gets silenced. any ping thing using less data to keep it alive ?pinging every 10-20 seconds or similar? how can i keep 2G awake with least data traffic used and least battery usage. any app out there for 2G?
P.S. not asking about wifi.
Click to expand...
Click to collapse
I've never heard of a cellular connection having such issues, but I guess it'll drop after a while with no traffic. I personally have email on IMAP idle going all of the time so I guess I'd never have this problem. What's the issue, it takes a second to reconnect?
I am also looking for an app to do this. my epic touch data connection keeps dying. once I get it if I keep using it its fine. but if i let it go idle it won't "reconnect" I can turn off 3g and then turn it back on and usually get it back as long as I keep it active.
SO also looking for a background "pinger" to keep the data connection alive till I get a fix for the connection issues.
DRiVER_helsinki said:
that "3G reconnet" - app didnt work as required...
i found solution:
"Android Terminal Emulator" , from google play.
Type in “ping -i5 www,google.com” , to start pinging with 5 second interval.
Press Home button and the Terminal Emulator will run in the background until you decide to stop it manually.
(Do this only if you have Unlimited Data Usage plan ofc )
[ps. i replaced first dot in the ping address with comma ,because xda think i as new member , are linking outside and complains. )
____________________________________________________
Shoutout to Kimi Räikkönen !
Click to expand...
Click to collapse
Clearing this up...
type:
Code:
ping -i 5 8.8.8.8
Where:
-i = interval of the address to be pinged with.
5 = number of seconds after a successful/unsuccessful ping.
8.8.8.8. = Address to be pinged onto.
So by that command, you'll ping the Google Server (8.8.8.8) within every 5 seconds...
Oh yeah, by the way, after you exit the Terminal Emulator, the pinging stops. So just run TermEmu on background (Home)...
Great tip. Thank you.
If like me after installing Lollipop you're experiencing the GPS going nut, a bad battery drain or the WiFi showing an exclamation mark dropping the connections these could be your solutions!
GPS LOSING SIGNAL (it needs root):
OBSOLETE - GPS is now fixed in 18.6.A.0.182
After reading some complaints about the GPS not working in Lollipop I checked it in my phone and I discovered it was indeed behaving poorly. In my case it does get the signals from the satellites, computes the position and other value and then after just few seconds it starts all over again. Comparing the 5.1.1 /etc/gps.conf file with the the one in KitKat and some suggested in the internet I tested few changes and I managed to make it fully operational just changing a single parameter:
Actually it seems the gps.conf file from KitKat does fix the issue. It happened that I made a mess with the file permissions (umask is set by default to 0077). @nunu00 made me notice that it worked for him. So I tested it again, and after fixing the file permissions it does seem to do the job.
You can find a copy of the KK file in http://forum.xda-developers.com/showpost.php?p=63285443&postcount=2.
As root make a backup of the original /etc/gps.conf and copy it over (as gps.conf. Remove the ".txt" postfix). Be sure the file is readable by everyone. Then reboot the phone and the GPS will be back to normal.
Additionally (but not necessarily) one may want to use an NTP server for his or her geographical region, like for example, if one is in Europe should comment out the stock NTP server and set instead the European one:
Code:
#Test
# NTP_SERVER=time.gpsonextra.net
#Asia
# NTP_SERVER=asia.pool.ntp.org
#Europe
[B]NTP_SERVER=europe.pool.ntp.org[/B]
#North America
# NTP_SERVER=north-america.pool.ntp.org
Even better on can add the NTP server, if available, for the Country, like I did for Italy:
Code:
#Italy
NTP_SERVER=it.pool.ntp.org
All other servers must obviously be commented out.
I/O WAIT ALWAYS AT 50% (it needs root):
Lollipop added in the Xperia M2 the compressed virtual memory, also known as zram. It is a feature that I personally like (I implemented it in the kernel for my crappy low range/low memory/low quality Samsung phone I had previously) as long as it works as it must. At the cost of little CPU time one can benefit from few hundreds megabytes of more usable RAM. Unfortunately in Lollipop it seems bugged, since the zram makes the process kswapd0 in constant I/O Wait (about 50%), which may degrade the max performances and also keeps at least two cores running at 1190MHz, draining the battery. One can see it with the "busybox top" command (busybox is installable in /data/local/tmp by anyone - no root needed):
Code:
Mem: 733016K used, 152060K free, 0K shrd, 40788K buff, 180220K cached
CPU: 1.2% usr 7.4% sys 0.0% nic [B][COLOR="red"]47.3% idle[/COLOR] [COLOR="Blue"]43.8% io[/COLOR][/B] 0.0% irq 0.0% sirq
- Solution 1: enable the "laptop mode" and change the swappiness value
It has been reported by @semil and confirmed by @linuxct that changing the swappiness value to something between 40-60 improves it (with zram enabled). Obviously you need root. Just make a /etc/init.d script with the following line
Code:
sysctl -w vm.swappiness=60
(you can change 60 to 40 or else while testing) or add it to /etc/init.d/00stop_ric. It changed nothing in my phone, though, so I tried tampering with other parameters and eventually I've been successful. Appending after the command above the following two lines
Code:
sysctl -w vm.laptop_mode=1
sysctl -w vm.drop_caches=1
finally the kernel moved out of the I/O wait. In my phone with 130-140 apps installed it always takes a about 10 minutes after boot, so be patient while testing. The two parameters above are non destructive and they get rewritten after each boot, so they can't make things worse than what they already are.
After the update 18.6.A.0.182 the IO Wait is still there. I did some some tests and I could raise the swappiness to 90. The IO Wait still goes down, but theoretically giving a slightly better "multitasking" than with a 40 or 60 value.
- Solution 2: disable the zram
Well, the trick is simple: disable the zram and the iowait has gone. To disable it as root one needs to execute
Code:
swapoff /dev/block/zram0
At any time. But it is obviously suggested to put the command in a script in /etc/init.d (just add it at the end of /etc/init.d/00stop_ric). And this is how the idle and iowait times are now:
Code:
Mem: 780028K used, 105048K free, 1000K shrd, 2284K buff, 149080K cached
CPU: 3.9% usr 4.9% sys 0.0% nic [B][COLOR="Red"]91.0% idle[/COLOR] [COLOR="RoyalBlue"]0.0% io[/COLOR][/B] 0.0% irq 0.0% sirq
WIFI DROPPING CONNECTIONS SHOWING AN EXCLAMATION MARK:
If you see an exclamation mark on the right of the WiFi status icon it means that Lollipop can't access the Internet still being connect to a WiFi AP. This is apparently due to some incompatibility between the new drivers and the Captive Networks, the Hot Spots showing as open but that indeed require a web login to be used.
- Solution 1: Disable the Capitve Networks all together:
The good news is that as regular users (non root) we can still switch it off. From a terminal emulator app or via "adb shell" (google to know how to install and play with the latter) simply type:
Code:
settings put global captive_portal_detection_enabled 0
and reboot. To re-enable it give the command:
Code:
settings put global captive_portal_detection_enabled 1
To check the current state (I'd suggest to do it before setting it. It should report 1) type:
Code:
settings get global captive_portal_detection_enabled
To run it via a Terminal emulator on the phone you need to have UID shell. Just execute first:
Code:
su shell
and then one of the commands above. But one needs the phone to be rooted for that.
UPDATE: In 18.6.A.0.182 as soon as I enable the Global Captive Support I get the exclamation mark. It doesn't drop the connection anymore but it is quite annoying.
- Solution 2: Disable the check for open/public networks:
This is still under investigation, but it seems to do the job. Simply go to the WiFi Settings/Advanced and disable the open networks notification. UPDATE: I still get the exclamation mark but it doesn't drop the connection.
GOOGLE SEARCH BAR ANIMATIONS AND VOICE SEARCH (requires root):
In the Xperia Home we can now have the Google search bar (to hide it just "swipe in" two fingers in the screen as when we add widgets and touch the hide button on the right of the bar. Which is my most favorite solution). The ugly thing is that when touching the bar Google Now opens with no animation. Also the option to enable "voice search" from any screen isn't available anymore. The value of "ro.config.low_ram " in /system/buil.prop is set to "true". An user suggested that changing (as root) it to "false" as in below
Code:
ro.config.low_ram=false
should fix it. Always make a backup of build.prop file before modifying it!!
I tested it myself and the option to have the voice search in all screens did appear indeed. I didn't see any changes in the animations, though.
LITTLE ICONS IN XPERIA HOME:
If like me you have been shocked by the new huge icons in the Xperia Home, so much that you were already thinking about switching the home launcher, don't fret: the small icons are still there!! Simply "swipe in" two fingers in the screen and together with the ability of adding widgets, changing themes and else on the bottom right there is the new "Home Settings". Click on it and you get the option to have the new rotating Xperia Home and.. yes, the smaller lovely icons back!
ENABLE MULTI USER (it needs root):
Due to the low amount of RAM (see the need for the zram above) and internal memory Sony doesn't support the multi user option in Lolliopop 5.1.1 for devices with 1GB. To enable it just add to the /system/build.prop file the following two lines:
Code:
fw.show_multiuserui=1
fw.max_users=3
where 3 users mean the main account, the guest account and a second account. Always remember to make a backup of the stock build.prop before any modification! If one just wants to test it without messing up with build.prop, the same behavior is achievable withthe following commands:
Code:
setprop fw.show_multiuserui 1
setprop fw.max_users 3
Unfortunately it is missing the user icon in the top right of the notification panel and frankly it is a lag fest. Which should be the reason why Sony removed it.
To disable it first delete any account you have eventually created (otherwise I'm afraid you end up wasting precious internal memory for nothing), restore the build.prop file in case it has been modified and reboot. Everytthing will be back to normal.
[CONTINUE]
--------------------
I hope this helps. If you have any other suggestion/solution, please write about them in the thread and I will add them in the main post. Also this is not a thread about getting help, use the forum for it. Still questions about the mentioned tips are welcome
RAISE ALL MAX VOLUMES (it needs root):
Many complains that in Lollipop 5.1.1 the volumes went lower. There seems to be a solution for it. As suggested by @Ciptraandoni in the files
Code:
/etc/mixer_paths.xml
/etc/mixer_paths_VY55.xml
/etc/mixer_paths_VY58.xml
Look for the lines:
Code:
<ctl name="RX1 Digital Volume" value="84" />
<ctl name="RX2 Digital Volume" value="84" />
<ctl name="RX3 Digital Volume" value="84" />
<ctl name="RX4 Digital Volume" value="84" />
Raising the value 84 by a little bit in all files improves the max volumes. I personally tested it. With the value 88 it was fine, then raised them to the value 91 I have got some distortion. So do it at your own risk. Also always remember to backup your system files first!!
TRIM YOUR NAND (it needs root):
Since Android 4.3 Google introduced the Trim (see link) in the kernel, which should restore the performances on SSD/NAND after a long use. It should be executed regularly by Android (not sure when), still after manually trimming my ext4 partition in the SD card it reported more than 9 GB cleaned. To execute it yourself first check if fstrim is available on your busybox. As root type in the terminal:
Code:
busybox fstrim
If present you'll get the list of options, otherwise an error. If fstrim is available type ("-v" is the verbose option):
Code:
busybox fstrim -v /system
busybox fstrim -v /data
busybox fstrim -v /cache
then, as usual, you can put the last three lines in a /etc/init.d script (they don't take very long. less if recently trimmed).
ONE SHOT KITKAT ROOTING:
@linuxct made a modified rootkit script which exploits one of the latest KK vulnerabilities, allowing to root KK without the need to downgrade the kernel. With my help he also modified the script to disable the RIC in one shot.
You can find the instructions in here.
This isn't directly Lollipop related, but since we need to go through a rooted KK to have a rooted Lollipop i thought to add it here.
IMPROVE THE APPEARANCE OF YOUR ROM
Click on the Google Play button on my signature and download one of my themes. Most are free! Also don't forget to rate them 5 stars.
Great! I thought it was my router problem (WRT160NL + DDwrt), but I'll disable that wifi option. Thanks!
linuxct said:
Great! I thought it was my router problem (WRT160NL + DDwrt), but I'll disable that wifi option. Thanks!
Click to expand...
Click to collapse
You're very welcome, amigo.
Also you may want to try to mess up with the router's QoS settings. But if working (I can't test it myself) that will fix it only for your router. The solution above is much more general. Not sure what are the downsides, but in case, on a weak signal, just manually disable the WiFi yourself and use 3G/4G (the radio?).
Miche1asso said:
You're very welcome, amigo.
Also you may want to try to mess up with the router's QoS settings. But if working (I can't test it myself) that will fix it only for your router. The solution above is much more general. Not sure what are the downsides, but in case, on a weak signal, just manually disable the WiFi yourself and use 3G/4G (the radio?).
Click to expand...
Click to collapse
I have QoS disabled, but I noticed that in both routers I have (160NL and Archer C20i), the exclamation mark only appears when I'm far from them, in another room for example. So it's because of the poor signal, even though some times it shows all bars (max. signal) and the warning. :silly:
I'm going to stay with the setting on 0, and if it still shows the exclamation mark, then I'll try configuring my routers. Grazie
linuxct said:
I have QoS disabled, but I noticed that in both routers I have (160NL and Archer C20i), the exclamation mark only appears when I'm far from them, in another room for example. So it's because of the poor signal, even though some times it shows all bars (max. signal) and the warning. :silly:
I'm going to stay with the setting on 0, and if it still shows the exclamation mark, then I'll try configuring my routers. Grazie
Click to expand...
Click to collapse
Just out of curiosity, when showing the exclamation mark does it switch to 3G/4G? In my case it just drops all connections, and to add insult to injury it happens even few cm from the "router" (which is actually the internet shared via MacBook since the WiFi fried in my router).
Miche1asso said:
Just out of curiosity, when showing the exclamation mark does it switch to 3G/4G? In my case it just drops all connections, and to add insult to injury it happens even few cm from the "router" (which is actually the internet shared via MacBook since the WiFi fried in my router).
Click to expand...
Click to collapse
It drops all connections. I noticed once, because Whatsapp web stopped working. Then I check the phone and the exclamation mark is there. Turn it off and on and it works again.
And yes, I was very near my router, let's say 50cm?
linuxct said:
It drops all connections. I noticed once, because Whatsapp web stopped working. Then I check the phone and the exclamation mark is there. Turn it off and on and it works again.
And yes, I was very near my router, let's say 50cm?
Click to expand...
Click to collapse
Ok, same experience then. So it's better staying off and good riddance!!
Not had any WiFi problems all I know is I have min 50mps home broadband with 5ghz and 2.5ghz networks my data connection is running fine on 4G/3.5G battery is definitely worse but I was running amplify, greenify with a de-bloated ftf and getting 6hrs plus sot regularly it's gonna take me a while to get used to normal battery life again
D2303 5.1 lollipop customised NCB rooted de-bloated LB t2u nut dual recovery x-reality+supervivid
Hello
I have also this wifi problem but i don't understand how to fix it.
I tried, as it's written, to write the command in a terminal app, but it said that i don't have the permission to execute it.
My phone is rooted and i tried also somehow to have the sudo but it didn't work either.
Someone could explain to me what should i do ?
Thank you.
[email protected] said:
Not had any WiFi problems all I know is I have min 50mps home broadband with 5ghz and 2.5ghz networks my data connection is running fine on 4G/3.5G battery is definitely worse but I was running amplify, greenify with a de-bloated ftf and getting 6hrs plus sot regularly it's gonna take me a while to get used to normal battery life again
D2303 5.1 lollipop customised NCB rooted de-bloated LB t2u nut dual recovery x-reality+supervivid
Click to expand...
Click to collapse
Well, you probably remember that I was complaining about KK battery life. Now staying with WiFi and applying the tweaks above, in about 17h I had a drop of 24%. about 70min usage. In other words it was less than 1.5%!!
I'll test it in 4G, but my signal is crap, so I don't expect much . Still the Stamina mode (completely enabled, with the usual apps in white list, like Whatsapp) seems to do a great job, finally.
Niklaus89 said:
Hello
I have also this wifi problem but i don't understand how to fix it.
I tried, as it's written, to write the command in a terminal app, but it said that i don't have the permission to execute it.
My phone is rooted and i tried also somehow to have the sudo but it didn't work either.
Someone could explain to me what should i do ?
Thank you.
Click to expand...
Click to collapse
That's weird. I just doubled checked and it works with both the user and root accounts. i mean, there is little to explain, you just have to type this command:
settings put global captive_portal_detection_enabled 0
I am not sure either what you mean with "i tried also somehow to have the sudo ". To "sudo" in a rooted android you just type "su". "su -c <command>" to run a command (like "su -c id". That should report user 0 and group 0).
Okay thank you, finaly i did it.
I still couldn't do it without typing "su". Thank you.
I dont know if its ok this, but i Just use my celphone today on facebook and whatsapp and a hour of videos on YouTube, without you tip (i Just used with wifi)
I got roughly 5.5hrs screen on time yesterday with no changes to settings. Still not sure about how fast the battery drains though
D2303 5.1 lollipop customised NCB rooted de-bloated LB t2u nut dual recovery x-reality+supervivid
Is there appreciable difference in performance between zram on and off ? Antutu Benchmark shows 19421 points for ON zram and 19889 points for OFF
dark90 said:
I dont know if its ok this, but i Just use my celphone today on facebook and whatsapp and a hour of videos on YouTube, without you tip (i Just used with wifi)
Click to expand...
Click to collapse
Pantalla is screen? And you have got 9+ hours? You're more than fine then. Indeed I am not sure if that iowait thing is a general problem. Can anyone with the zram on and possibly busysbox installed, check the iowait average values using the command
Code:
busybox iostat
I wonder if it is anything wrong with my installatiom, but I had the issue even just after wiping the data.
[email protected] said:
I got roughly 5.5hrs screen on time yesterday with no changes to settings. Still not sure about how fast the battery drains though
Click to expand...
Click to collapse
Yeah, I can't manage to make a real battery evaluation myself. I am still connected many times with adb and that charges the phone, ruining all battery statistics.
~Patryk said:
Is there appreciable difference in performance between zram on and off ? Antutu Benchmark shows 19421 points for ON zram and 19889 points for OFF
Click to expand...
Click to collapse
Well, technically on small jobs the zram does reduce slightly the performances. You see the benefits when you open a previous application, it should have the app screen as you left it more often than when it is turned off.
BTW any chance you can do the test mentioned above? The one about iostat.
Miche1asso said:
Can anyone with the zram on and possibly busysbox installed, check the iowait average values using the command
Code:
busybox iostat
Click to expand...
Click to collapse
Average of 14%. Bouncing from 13.3% to 14.5% in my case.
Oh, BTW, yes, CE1 has zRAM, but Algerian FTF was working worse than this one.
EDIT: Now it went up to 25.04%. Well, sh*t. The values I took before were after a reboot, so, when the device is fresh, just restarted, it only uses a 14~15%, but after opening apps it goes up
linuxct said:
Average of 14%. Bouncing from 13.3% to 14.5% in my case.
Oh, BTW, yes, CE1 has zRAM, but Algerian FTF was working worse than this one.
EDIT: Now it went up to 25.04%. Well, sh*t. The values I took before were after a reboot, so, when the device is fresh, just restarted, it only uses a 14~15%, but after opening apps it goes up
Click to expand...
Click to collapse
Indeed. Mine is stuck at 30-40%. Even higher as you can see from the "top" output in the first post (but that's for a single moment). This is what I get now with zram disabled about one night after reboot :
Code:
avg-cpu: %user %nice %system %iowait %steal %idle
14.00 1.79 10.87 4.13 0.00 69.21
And now I reboot the phone not touching the zram. here now just after boot:
Code:
avg-cpu: %user %nice %system %iowait %steal %idle
24.30 3.89 31.94 14.59 0.00 25.29
Which would be ok, but it is raising. Indeed now, just after few minutes..
Code:
avg-cpu: %user %nice %system %iowait %steal %idle
13.67 2.82 17.22 31.39 0.00 34.91
31.39% and it keeps raising. Nope, disabled it stays.
Just to be clear, since a picture it worth 100 words, this is the effect of having an high iowait:
The CPU stays most of the time at full frequency. Often just for doing nothing but waiting for kswapd0 trying to access the RAM.
Miche1asso said:
Indeed. Mine is stuck at 30-40%. Even higher as you can see from the "top" output in the first post (but that's for a single moment). This is what I get now with zram disabled about one night after reboot :
Code:
avg-cpu: %user %nice %system %iowait %steal %idle
14.00 1.79 10.87 4.13 0.00 69.21
And now I reboot the phone not touching the zram. here now just after boot:
Code:
avg-cpu: %user %nice %system %iowait %steal %idle
24.30 3.89 31.94 14.59 0.00 25.29
Which would be ok, but it is raising. Indeed now, just after few minutes..
Code:
avg-cpu: %user %nice %system %iowait %steal %idle
13.67 2.82 17.22 31.39 0.00 34.91
31.39% and it keeps raising. Nope, disabled it stays.
The CPU stays most of the time at full frequency. Often just for doing nothing but waiting for kswapd0 trying to access the RAM.
Click to expand...
Click to collapse
Clear enough. Just added swapoff to my 00stopric. Now let's see how multitasking goes
Code:
su
swapoff /dev/block/zram0
fails for me... Central Europe prerooted, flashed with twrp. My %iowait is around 23% and counting...
Edit: After an restart, it executed the command just fine, and my idle time is normal.
But now there is another problem - I cannot open 00stop_ric as a text, to add the command... tried both es explorer and total commander... any idea?
Two weeks felt like two years when my phone suddenly started acting odd. High CPU usage, 2x battery drain compared to before, phone heating up while doing simple tasks drove me insane. I thought there might be something wrong with the phone but couldn't find anything so I sent it to the customer service center. All they did was factory reset, installed the latest stock OS, and sent it back which didn't solve my issue.
So I rooted the phone, installed a custom ROM and the problem was still there. I lost the tiny bit of hope I had left and concluded that it's a hardware issue and I might have to buy a new device. Two days later I installed the Better Battery Stats app and kept my phone idle overnight with wifi on.
The next day I finally found out what's been eating my battery. In BBS under Kernel wake-locks, I saw qcom_rx_wakelock was on for 8 straight hours, as long as my wifi was on. Checked the CPU states on the FK Kernel manager and found out the phone never went to deep sleep, not for a second! Also, there was that idle wifi usage.
So I downloaded the Network Log app and kept logging on the next night. 9 hours passed, none of my apps used the internet but the kernel used almost 500 mbs in 9 hours! So that's where my wakelock was coming from.
I went to my friend's house and used his wifi for a few hours to identify what's going on and I was surprised to see there was no battery drain, low CPU usage, and zero idle wifi usage. For a moment there everything seemed to went back to normal. When I came back to the school dormitory the nightmare started again.
I started scouring on the internet and I found this which led me to this terrific post!
This comment explains everything!
To summarize, the phone was going crazy because of wifi multicast, and arp flooding. I couldn't do anything about it as I was in the university's public wifi. You can disable multicast by going to the router page and turning off wifi multicast from IGMP snooping setting. But it was impossible for me cause school won't allow me to change anything and even if I complain they won't care.
So I decided to fix it by adding some of the Pixel 3's WCNSS_qcom_cfg.ini properties to my phone's WCNSS_qcom_cfg.ini which I located in the vendor/etc/wifi/ as r/skanadian recommended in the second post which took my qcom_rx wakelock to 19%, way less compared to 86% before.
This is a step-by-step guide to reducing battery drain -
• Backup your phone's WCNSS_qcom_cfg.ini in case something go wrong. I found it in system/vendor/etc/wifi/here
It might be different for you depending on what Rom or device you are using. The filename will be the same but the location might be different.
• Get a text editor. Mixplorer is recommended as it helps to search properties quickly with its find feature.
• Open your devices WCNSS_qcom_cfg.ini using Mixplorer and keep it open. Alternatively, you can copy it to a different folder on your phone. I suggest the second one cause it's better than directly editing the file from the system.
• Go to this page
• Go to your browser option and select find in page to search. Search for the word "offload" on that page.
• Copy all the lines related to offload one by one and replace them on your devices WCNSS_qcom_cfg.ini that you opened using Mixplorer.
• If there isn't anything to replace simply add those lines. Don't forget to hit the save button while doing that.
• After that, search for these properties on your WCNSS_qcom_cfg.ini and set them as I did below
RoamRssiDiff=3
g11dSupportEnabled=0
gEnablePowerSaveOffload=5
gRuntimePM=1
RTSThreshold=1048576
gMCAddrListEnable=1
gActiveMaxChannelTime=40
gActiveMinChannelTime=20
gMaxConcurrentActiveSessions=2
If you don't see one of these to replace in your WCNSS_qcom_cfg.ini you should add it.
• Now reboot your phone, give it some time and see if the battery improves. If everything remains the same then go to WCNSS_qcom_cfg.ini using Mixplorer again, find BandCapability, and set it like this -
BandCapability=1
It will disable 5ghz from your phone. I found out most companies release their phones with bad wifi drivers which don't handle the 5ghz wifi band appropriately. Lack of power-saving and not blocking multicast requests properly leads to higher CPU usage and bad battery life.
Again you can set the BandCapability=2 if you want to use 5ghz mode only. If you have a good wifi driver, the battery drain might come from switching between 2.5 and 5ghz so keeping on one of them helps.
• Why qcom_rx wakelock and what is the best fix?
It can occur for several reasons.
- Wifi multicasting. Multicasting can be disabled from IGMP snooping on router settings. You don't need multicasting in your home network at all. But when you're on office wifi or school wifi, it does improve the speed slightly by reducing data loss and interference. It also can be solved the same way but if your school management is like mine, then they might not care if your laptop or phone burns.
- DHCP timers
- A software bug from server-side
- Band switching
- Even interference, if you have a public network with a lot of phones and PCs
There are some more reasons I can not remember now. The best way to fix it is to build a custom kernel with WLAN and qcom_rx blockers/limiters e.g. Franko Kernel.
But sadly a lot of us will never have that unless we make a kernel for ourselves. So as of now, this is the solution I could come up with.
My knowledge of this sector is very little. It would be great if you all could help me get rid of this problem.
I would love it if there was a feature built-in on Android OS to block some kernel wake-locks.
OnePlus phones allow you to turn off multicasting from Developer Options but that makes little to no difference depending on what wifi you are using.
• Very Important :
Depending on you wifi, you can try setting hostArpOffload=0 and hostNsOffload=0
or you can try setting both to 1. Use whichever improves the battery backup. Don't forget to reboot after changing anything.
If you are an expert, please help us. Cause these wakelocks aren't going anywhere. They will give some of us many more sleepless nights.
Thank you for reading. Have a good day!
For those who don't want to change settings they don't understand:
RoamRssiDiff: The difference in signal strength required before phone will switch to a new Access Point. Measured in -dbs. 3 means it will switch APs if the signal strength is 3dbs better than the one in use.
g11dSupportEnabled: WIFI 802.11d
gEnablePowerSaveOffload: Level of Powersave
gRuntimePM: Runtime Powermanagement
RTSThreshold: How long to wait before asking to send wifi packets. Should be as high as possible, only lowered if you have wifi dropouts.
gMCAddrListEnable=1: Drops all Multicast frames except for ARP. You don't want to disable ARP entirely or your internet will break, so don't lower this to 0.
gActiveMaxChannelTime: Time spent scanning.
gActiveMinChannelTime: Ditto
gMaxConcurrentActiveSessions: Self-explanatory
While looking this up I also found gNeighborLookupThreshold or RoamLowRssiThreshold: The signal strength at which the phone starts looking for a new AP (the step before RoamRssiDiff becomes relevant). Typical values are 65-80. Changing this might help too if your phone is switching AP too often or not often enough.
Thanks for this, my device was also affected by this (though not as badly as yours) I've just disabled Multicast from my router.
TrenchFullOfSlime said:
For those who don't want to change settings they don't understand:
RoamRssiDiff: The difference in signal strength required before phone will switch to a new Access Point. Measured in -dbs. 3 means it will switch APs if the signal strength is 3dbs better than the one in use.
g11dSupportEnabled: WIFI 802.11d
gEnablePowerSaveOffload: Level of Powersave
gRuntimePM: Runtime Powermanagement
RTSThreshold: How long to wait before asking to send wifi packets. Should be as high as possible, only lowered if you have wifi dropouts.
gMCAddrListEnable=1: Drops all Multicast frames except for ARP. You don't want to disable ARP entirely or your internet will break, so don't lower this to 0.
gActiveMaxChannelTime: Time spent scanning.
gActiveMinChannelTime: Ditto
gMaxConcurrentActiveSessions: Self-explanatory
While looking this up I also found gNeighborLookupThreshold or RoamLowRssiThreshold: The signal strength at which the phone starts looking for a new AP (the step before RoamRssiDiff becomes relevant). Typical values are 65-80. Changing this might help too if your phone is switching AP too often or not often enough.
Click to expand...
Click to collapse
Cool!
There are some other wakelocks that's bothering me more than qcom_rx and I have no idea what they are!
Could you please tell?
Mario3DS said:
Thanks for this, my device was also affected by this (though not as badly as yours) I've just disabled Multicast from my router.
Click to expand...
Click to collapse
Sadly I'm on school wifi and can't do anything about it!
lpass is a Qualcomm audio subsystem for things like voice based wakeup, and IPCRTR (inter-process communication router) is just how different processes on your phone communicate with each other.
Others have reported these wakelocks too, almost always when they have a wifi/cell connection. Maybe it has to do with voice assistants communicating with their home servers?
TrenchFullOfSlime said:
lpass is a Qualcomm audio subsystem for things like voice based wakeup, and IPCRTR (inter-process communication router) is just how different processes on your phone communicate with each other.
Others have reported these wakelocks too, almost always when they have a wifi/cell connection. Maybe it has to do with voice assistants communicating with their home servers?
Click to expand...
Click to collapse
Well
I asked a kernel dev and he gave exactly the same explanation you gave me. He also said these are necessary and doesn't drain battery too much.
I am on a custom kernel now and wlan, qcom_rx wls are gone.
Thanks for the help
With the new kernel, I'm not seeing Lpass wakelocks much. They are there but limited.
TrenchFullOfSlime said:
lpass is a Qualcomm audio subsystem for things like voice based wakeup, and IPCRTR (inter-process communication router) is just how different processes on your phone communicate with each other.
Others have reported these wakelocks too, almost always when they have a wifi/cell connection. Maybe it has to do with voice assistants communicating with their home servers?
Click to expand...
Click to collapse
I see you've gained quite some knowledge regarding wakelocks. Your explanation was simple and easy to grasp. Could you please guide me to a thread where I can learn more about it?
Thank you so much
I just googled all the terms. Qualcomm publishes some of its stuff (source code and .ini files) with comments, others were referenced in AOSP sources.
Thanks for posting this, with my pixel 4a setting "hostArpOffload" to 0 solved it. NETLINK wakelok are much less and no battery drain.
Although on onePlus 7 pro which I've rooted few days ago none of this is working and NETLINK wakelok is draining battery at 2-3% per hr.
I'll try flashing a different ROM and If found any fix will post it here.
Device1 : Pixel 4a | LineageOS 18.1 | microG
Device2 : OnePlus 7pro | LineageOS 18.1 | microG
Edit : There are many multicast requests and NETBIOS requests too and looks like NETBIOS requests are coming from all the windows machines which are connected via Access point.
Edit:
Tried packet capture and Router is just flooding network with Multicast and ARP traffic.
I'm in the same situation as you since I live in University Campus so no router access, Have no idea how to solve this now.
A viable option is maybe buy your own router then use it as an extender and block all these garbage requests but no idea in extender mode will you be able to block stuff or not.
seated_singer said:
Thanks for posting this, with my pixel 4a setting "hostArpOffload" to 0 solved it. NETLINK wakelok are much less and no battery drain.
Although on onePlus 7 pro which I've rooted few days ago none of this is working and NETLINK wakelok is draining battery at 2-3% per hr.
I'll try flashing a different ROM and If found any fix will post it here.
Device1 : Pixel 4a | LineageOS 18.1 | microG
Device2 : OnePlus 7pro | LineageOS 18.1 | microG
Edit : There are many multicast requests and NETBIOS requests too and looks like NETBIOS requests are coming from all the windows machines which are connected via Access point.
Edit:
Tried packet capture and Router is just flooding network with Multicast and ARP traffic.
I'm in the same situation as you since I live in University Campus so no router access, Have no idea how to solve this now.
A viable option is maybe buy your own router then use it as an extender and block all these garbage requests but no idea in extender mode will you be able to block stuff or not.
Click to expand...
Click to collapse
OP 7 pro is the device you mentioned? I think it has custom kernels with bult in wakelock blockers that automatically blocks wlan, netlink and qcom rx.
Edit: Netlink can be blocked by using Custom kernel others wakelocks are due to ARP network flood. Turning it off from WCNSS_qcom_cfg or blocking introduces another problem of few seconds delay in connection ( due to ARP Resolving issue ) when switching from one access point to another ( only when automatic ) and since I do it quite often when roaming my University campus it's a hassle.
One way to mitigate this ( if you need to keep ARP offloading off ) is by using static IP, worked for me and my roommate too, but not viable since you need root. Finally I have set up my own router, checked and there were no wakelock.
Few of my friends are also facing this battery drain issue not on all Access points but some maybe after complaining authority will fix this.
Note : Netlink is only showing on Android 11/12 with other versions there are other wakelocks.
seated_singer said:
Netlink can't be blocked nor does it show since It's a part of kernel itself, here now about other two they are due to ARP network flood. Turning it off from WCNSS_qcom_cfg or blocking introduces another problem of few seconds delay in connection ( due to ARP Resolving issue ) when switching from one access point to another ( only when automatic ) and since I do it quite often when roaming my University campus it's a hassle.
One way to mitigate this ( if you need to keep ARP offloading off ) is by using static IP, worked for me and my roommate too, but not viable since you need root. Finally I have set up my own router, checked and there were no wakelock.
Few of my friends are also facing this battery drain issue not on all Access points but some maybe after complaining authority will fix this.
Note : Netlink is only showing on Android 11/12 with other versions there are other wakelocks.
Click to expand...
Click to collapse
I have NetLink blocked from kernel.
Some of this problems are impossible to fix from phone. So I contacted school management. They didn't believe me at first then I went to the head office and showed them with Network Log app that records every single packet.
A week later they fixed it. Contact your authority and see if it helps.
Thanks for the info mate, edited. Never thought I have to deal with this stupid WiFi problem.
RyanCr7 said:
Two weeks felt like two years when my phone suddenly started acting odd. High CPU usage, 2x battery drain compared to before, phone heating up while doing simple tasks drove me insane. I thought there might be something wrong with the phone but couldn't find anything so I sent it to the customer service center. All they did was factory reset, installed the latest stock OS, and sent it back which didn't solve my issue.
Thank you for reading. Have a good day!
Click to expand...
Click to collapse
Thanks for sharing, same thing happened to me..
Reading this post and turning off Multicast on both my wifi APs worked!
Just wanted to say that following this advice with all the Offload parameters, my wifi wakelocks have pretty much vanished so far on my nexus 4, i was getting something like 14000 wakelocks in battery guru. Thank you.
I can't understand why they don't specify what commands work for what Qualcomm chipset, since even though that is a newer phone, they still work on an older WiFi chipset, I've been mixing and matching for years.
KitsuneFoxy said:
Just wanted to say that following this advice with all the Offload parameters, my wifi wakelocks have pretty much vanished so far on my nexus 4, i was getting something like 14000 wakelocks in battery guru. Thank you.
I can't understand why they don't specify what commands work for what Qualcomm chipset, since even though that is a newer phone, they still work on an older WiFi chipset, I've been mixing and matching for years.
Click to expand...
Click to collapse
I'm glad it worked for you.