There has been quite a bit of discussion about Fast Dormancy, so I thought I would try to investigate it, and to explain things a little.
I don't claim to be an expert on this. Far from it. I'm merely putting across what I have found out about the subject, and what my observations have been on the it.
Firstly a little explanation on what FD actually is.
When your phone is connected via 3G data (not 2G or wifi) your phone needs to enter certain states in order to maintain this connection and allow data transfer. If your Operator does not have FD support or you have it disabled, then basically your states are just connected or not connected. What this means is that every time your phone connects to data, it will have to go through all of its various stages and internal functions in order to make the connection and then perform the actual data transfer. This is slow and obviously the more processing that is required, the slower your experience will be, and the greater the affect will be on your battery.
FD tries to tackle this problem by having several different states so that the full connection/disconnection cycle is not required every time. Each state has a different level of data throughput and power consumption.
DCH - High volume data (highest power consumption)
FACH - Lower volume
PCH - No data but keeps connection
IDLE_CCCH - Not entirely sure about this one but I think its an interim, lower level stage between PCH and:
IDLE - Connection dropped (lowest power consumption)
When in DCH state, your phone is doing the highest volume of data transfer, and obviously consuming most power out of your battery.
The way FD works is when transfer rates drop, the state drops to FACH for less power consumption and then back up immediately to DCH as and when required, or if this transfer state is over for the time being, (eg. you have stopped browsing) instead of going back to IDLE which would mean going through all the connection procedures next time data is required, the state drops down to PCH. This is a very low powered state, and when data is subsequently required, it can then immediately go back up to FACH or DCH with minimal effort. The less stages that is required to get the connection back up and running the better, both in terms of battery and speed.
To turn FD on/off enter *#9900# in the dialler to get into the SysDump screen then select the Fast Dormancy option
Alternatively, gokhanmoral has an app called FastDormancy Toggle for i9300 which can also do the job. I've not tried this app personally, but I've been told it works fine on the i9100.
Whether you keep FD on or not depends primarily on if your network operator supports it.
If your network operator supports it, then enabling it is not necessarily the best answer, as it can depend on the combination of the following things:
1. How you use your phone - Are you a heavy or light data user?
If you are a heavy data user then enabling FD is almost certainly the way to go. The less the phone needs to do in order to fire the connection back up, the better. However, if you rarely use the phone for a data connection, then it may prove beneficial to you to switch it off so that the IDLE state is entered sooner. Bear in mind before you decide on if you should turn it on or off, consider what your data sync options for contacts/calendar/email etc. are. If you dont browse too often, you may still be using data in the background quite often even though you are not physically doing so through various background syncs.
2. How "intelligent" your Operator's FD actually is.
I believe the operator defines the parameters for the timings of these different FD states, so results can vary drastically between different networks. To see how your carrier handles FD can be done via a simple test on a Samung ROM. With wifi off and FD enabled, at the dialler, type *#0011#. This takes you into the ServiceMode menu. The important piece of information here is the RRC State line. Press the home button and open a browser session and go into a web site, then immediately long press the home to get the list of tasks and select the ServiceMode app. The RRC State line should be DCH (or at least FACH) and you should see some activity in your signal indicator arrows on the status bar. Eventually you should see it drop down from DCH -> FACH -> PCH -> IDLE (sometimes you may see IDLE_CCCH). Ideally, the state should stay at PCH for a while, then eventually drop to idle.
My findings so far on JB is that FD seems to be handled differently to the way it was on ICS. In fact, I'm not entirely sure its working on JB at all! For me, it seems to go from DCH -> FACH, and shortly after that (perhaps up to 5 seconds) drops to IDLE. This is not great if your going to be using more data shortly, but ok if you are no longer browsing.
After further testing, it seems on JB it make no difference if FD is enabled or disabled in the ServiceMenu.
The transitional RCC states it enters seem identical regardless of the FD option you have set.
My testing when on ICS suggested that when going from DCH eventually down to IDLE, the handset seemed to go to FACH for a short period, then sit on PCH for sometimes up to 10 minutes. This has a big advantage if you are about to do more browsing shortly, is it will take much less power to resume the connection and enable the data transfer to begin more quickly, but has the drawback of if you have indeed ended your browsing for the time being, it would be using more power compared to if it was in IDLE. So swings and roundabouts.
Perhaps my observations on ICS (ie, remaining on PCH for up to 10 minutes) is how FD should behave.
Remember FD only applies to a data connection. It does not kick in whatsoever when you are connected to wifi or on 2G.
The quality of your data connection (ie. H+, H, 3G) may also have a bearing on how FD will perform. Better connectivity should give you a more efficient FD performance.
Tip 1.
If your wifi sleep policy is set to "keep wifi on during sleep only when plugged in" then this will mean your data will take a hit whenever your screen is off (unless plugged in of course) If you think FD is not for you because "I'm almost always connected to wifi" (ie. at home/work) then you will still need to consider what the best FD policy is for you when on this sleep policy, as obviously, your screen is off most of the day.
Tip 2.
If you are not connected to wifi overnight (either your not at within your router's range, or you have set your wifi sleep policy not to be connected) bear in mind what your phone does overnight in terms of background data activity (ie. your data sync options and widgets such as news/weather etc). If you have minimal data activity overnight (you set your widgets to sleep for example), then it would be better to switch FD off, as less battery would be consumed to go straight back to IDLE than hang around for possibly 10 minutes or more each time in FACH.
Note
You may well have a higher l2_hsic wakelock when FD is disabled, but when FD is enabled you may find this drops slightly, only to find another one called secril_fd-interface kick in instead, so again, swings and roundabouts.
I did extensive testing on this on ICS, and came to the conclusion that was better FOR ME to turn FD off, but the differences were not drastic. It can however make huge differences for others, depending on your Operator and your usage habits.
On JB, I've found it better to keep wifi on constantly, and keep FD enabled.
It would be interesting to compare how your firmware/carrier handles FD.
Bottom line is, try it and see what works best for you.
Note:
I don't think the *# service codes work on CM/AOKP based ROMs but you can certainly give them a try!
If the codes do not work on your Samsung ROM then you will need to install FactoryTest.apk.
Thanks for sharing! :thumbup:
I hear many members asking 'why' when asked to disable it..
"To err is human, to forgive is divine"
Sent from my SGS II
Great work I have been reading up on this lately. Nice to know that in JB it seems almost irrelevant... That's what all my unofficial tweaking/testing was indicating. I thought I must be doing something wrong.
Quick question though, do you know of any ways to turn off Fast Dormancy in 4.2.2 ROMs? I haven't found a way. Using gokhanmoral's app still results in a secril_fd_interface wakelock in BBS.
The elusive RILJ problem. When his occurred I did read up on it, its not the location settings as they're all turned off and maps isn't the culprit cause I don't even have it installed. Whenever I check BBS it says RILJ (phone) and it literally drains my battery at the rate of 1% every 2 minutes with the 15 minute bus journey to work resulting in over 300 wakeups. I would love to use cyanogen permanently but I can't until my battery works for longer than a few hours at a time
yusuo said:
The elusive RILJ problem. When his occurred I did read up on it, its not the location settings as they're all turned off and maps isn't the culprit cause I don't even have it installed. Whenever I check BBS it says RILJ (phone) and it literally drains my battery at the rate of 1% every 2 minutes with the 15 minute bus journey to work resulting in over 300 wakeups. I would love to use cyanogen permanently but I can't until my battery works for longer than a few hours at a time
Click to expand...
Click to collapse
It's not related to your location settings but I think the issue is with your radio. Couple of things you can do. Try the fastdormancy app from the playstore and disable fast dormancy. Also try switching to Edge. That should help too. Overall some amount of RILJ wakelock will be there.
P.S If its cynogenmod then try disabling emergency broadcasts. Its either in the message settings or in the dialer app settings. I'm not sure if there is a correlation but it did work in my case.
Hey guys,
On my second samsung device and my fifth rom (including eclipse TW, eclipse AOSP, aokp, CM10, now hyperdrive). Have to say thay I'm satisfied with pretty much everything Hyperdrive has to offer, its freaking amazing! One issue doesn't seem to be resolving despite many attempts. My phone stays awake nearly 100% of the time with a wlan_wake wakelock. This isnt the well documented wlan_rx_wake wakelock, which I've also had in the past but managed to squash. I'll recount my findings in some order below.
I installed Hyperdrive, restored some some vital apps. Waited a couple days and found the battery wasn't what I'd hoped it'd be. I usually run with auto sync enabled for total 8 mins per hour (via Tasker) and wifi and mobile data on. I've also used a script that disables IPv6 whenever it connects to a wifi network -- work network has tons of IPv6 broadcasts that were triggering massive wlan_rx_wake wakelocks which were vastly reduced with this fix. Even with these throttles, I noticed that some time after boot (10-15 minutes) on my work as well as home network (10 mixed devices on a belkin router), a wlan_wake wakelock would start triggering and my phone would then stay awake 90-100% of the time, screen on or off.
I went ahead factory reset the phone, loaded just my google account, and found the same problem with autosync on, autosync off, GPS was off, Wifi "always allow scanning" option was disabled in the advanced menu, Google's Wifi network location was disabled, and no 3rd party apps except for BBS installed. Of course, with Wifi disabled, the issue abated but 3g/4g doesn't offer much better battery life than the phone staying awake the whole time. During this time, I used Network Logger and Shark for Root to attempt to identify Wifi traffic and found that a few apps were transmitting frequently, but not enough to keep the phone awake for the amount of time the wakelock indicated. Total battery drain is up to 8-10%/hour with absolutely minimal use. I've never had this particular issue with any other OS i've installed, any ideas what could be going on? Really looking forward to being able to rip through days without charging on Hyperdrive!
I have a Samsung Note 3 and I too have this same problem (except that a factory reset solves it). Can't seem to find a fix. People on internet suggest that it's because of some rogue app but my phone starts behaving like this randomly until I do a factory reset.
hi!
i need to turn fast dormancy off.
i've tried these methods:
1) Fast Dormancy Toggle App - says that fd is off but secril_fd_interface wakelock is still on after rebooting.
2) FastDormancy Toggle for i9300 - same as above.
3) this thread on xda.
4) adding "ro.ril.disable.fd.plmn.prefix" with my carrier number as the value to my build.prop.
all no use...
my nwk_info.db was empty at the beggining of the proccess, maybe that's why the first 3 methods didn't work.
i have a galaxy s2 I9100 running slimkat 4.4.2.
help me
well, i couln't find a solution so i had to be "creative".
i downloaded the app Wifi/Data auto Off|On of WHUERIC, so when my screen goes off - so does the data connection, and it turns automatically on when i use my phone again.
that way i get no secril-fd-interface or multipdp wakelocks - and RILJ wakelock is also showing up less than before.
using that solution will make your application loss their internet connection so you won't get notification from those apps while your screen is off, you'll get them only when you'll turn your screen on.
Ηello guys
Ι have the samunsg a52 5g
I have a problem. after I leave the cell phone to sleep at night, (I just lock it of course - I have no power plan activated - I always have wifi activated) when i wake up i unlock it and then all the notifications start coming from applications and others...
the cell phone seems to be "dead" at night
why is this happening ;
any fix?
I think you need check if your battery settings are configured in adaptive mode.
That happens with pretty much all phones. Its called Doze mode.
Here's a link that explains what it does: https://developer.android.com/training/monitoring-device-state/doze-standby