Root cause for Gear 2 high battery consumption found, at least for non-Samsung phones

Search This thread

only1sycil

Member
Nov 10, 2014
9
0
Finally found a fix! I deleted my google account from the phone and reinstalled including contacts. Now the log showed no contatc sync error and battery is draining 1% per hour. Will continue to monitor battery life.

Sent from my GT-N7100 using Tapatalk

---------- Post added at 06:47 AM ---------- Previous post was at 06:44 AM ----------

Btw, I upgraded GM to xxx401 and I am not using mpogr's apk. All stock.

Sent from my GT-N7100 using Tapatalk

Did you remove your google account while the watch was connected with phone?
 

0logramma

Senior Member
Feb 15, 2008
55
0
hello friends ... I took a few days ago and am having trouble qusto smartwatch battery drain .. I installed 3.0 tizenmod I cleaned the cache .. but to no avail .. I am attaching "dlog_main" thanks to all the help ... x the problem seems to this string:

11-12 12: 18: 33 926 1156 1156 E EFL: edje <1156> edje_calc.c: 2678 _edje_part_recalc () Circular dependency a when calculating part "dummy.icon." Already calculating X [01] axes. Need to calculate X [01] axes
 

Attachments

  • dlog_main.pdf
    53.2 KB · Views: 32

OngL

Member
Aug 29, 2011
38
0
Hi,

This helped me with my Gear 2 and the battery last much longer. Thanks.
I have the same issue with Gear 1 that is flashed to Tizen and not yet rooted. Will this work around work in Gear 1 as well?
 

charlypaez

Senior Member
Sep 26, 2013
976
278
Sorry guys... I have a little doubt... Yesterday I update my rom in my Galaxy Note 4 sm-910c and today my gear 2 have high drain of battery, what I can do? Can some one help me? Maybe Bluetooth problem? Thank you for the advice!

Note 4, SM-910C Model.
 

j2inet

Member
Jul 30, 2009
13
1
Atlanta
Applicable to Galaxy Gear S also

This thread was helpful to me. I thought I would add that I had the same problem with my Galaxy Gear S and Note 4. Saumsung was suggesting I send the device in for repairs when the batter would go from 100% to off in 4 hours. It was even charging significantly slower. The battery would only discharge at a normal rate when bluetooth was turned off. After clearing the data from the gear management application the device went back to more reasonable battery consumption.

Note: I'm only using the installations and firmware that came directly from Samsung on my device.
 

daroota

Senior Member
I'm Paired to my OnePlus One. I did a phone wipe and a watch wipe, and the drain was just horrible.

Getting a lot of these in my log.
Code:
05-06 16:05:11.207  6276  6276 E EFL     : edje<6276> edje_calc.c:2678 _edje_part_recalc() Circular dependency when calculating part "dummy.icon". Already calculating X [01] axes. Need to calculate X [01] axes

Flashed back to stock, and still the same problem. Using a OnePLus One :(
 
Last edited:

cocokola

Member
Sep 24, 2008
22
2
Edit: with new Gear Manager (Jun release), this method doesn't work anymore. The new approach is to install a "contact synchroniser killer" app on the rooted watch. More details are in this post.

==================================================================================================================================================================================

Hi all,

Ever since I started using my Gear 2 Neo with my HTC One M8 phone (using the guide in this forum), I noticed that my watch consumes battery significantly faster than most of the users have been reporting. Even more strangely, sometimes after resetting both the phone and the watch (and I've done this a lot while experimenting and trying to get more stuff working) I had streaks of stellar battery life, well in line with optimistic reports here and elsewhere, but then, after a while, it started deteriorating very quickly.

So I decided it was time to do something about it. I installed Tizen SDK, hooked the watch up and started poking around. The first thing I noticed my watch CPU was, most of the time, sitting on 40%! Well, that doesn't sound right, does it? Then I noticed the log (located under /var/log/dlog_main) was full with messages related to contact synchronisation. It turns out the damn thing synchronises all of my contacts every several seconds. The trouble is I have well over 1500 contacts (that's consolidated from different sources, the number of raw contacts should be well over 3000). So it takes significant time to do this, meaning my watch (and the phone!) are thrashed by these stupid full contact syncs all the time! What's even more striking is the fact it doesn't help when I change it to "favourites only". Apparently, this affects only the contacts displayed on the watch, however, the sync process still takes all of them.

At this point I started poking around Samsung APK files to try and understand what was going on. Apparently, the APK responsible for contact sync is called GOPROVIDERS. Indeed, if you kill it, the thrashing stops, however, other important functions cease working as well. Aside of Contacts vanishing from the Gear, "Find my phone" is gone as well, but, more importantly, notifications stop working. While I could tolerate the first two, the last one was too much to give up.

I started decompiling and analysing sources. Apparently, there is a process running every several seconds that analyses if any changes have been made to the contacts. It uses pretty bizarre logic which seems to be relying on Samsung-specific fields in the contacts. Now, this already sounds suspicious, and, apparently, leads to full sync every several seconds. Obviously, the more contacts you have, the harder you're hit.

An interesting point in all this is that I'm not 100% sure the logic is working properly even on Samsung devices, so it might well be that the same issue is affecting people with high number of contacts using Samsung phones as well. I'd be really interested to see any feedbacks regarding this.

So, long story short, instead of fixing the logic (which is quite difficult in SMALI), I made a simple change which dilutes this logic invocations, right now 1:64. Since then I'm enjoying MUCH improved battery life.

The fixed APK is attached. You're welcome to give it a try at your own risk (you need to enable installation from untrusted sources + reboot and clean dalvik cache).
so I decided this is fortunately a bug. it's one that takes 25% of my battery life of both devices. I have about 3000 contacts. I own a business, and thirty years of owning phones, it add up. yes I could go clean up, but even if I delete half of my contacts, I will still be affected.

I decided to open a ticket with Samsung support. to my surprise, the gent Jeff was a pleasure to talk to, I even pointed the ticket to this thread to get them started and understanding the problem.

I would suggest if you are affected by this problem, call Samsung support at(888) 257-8100. they are available ,24 hrs a day, 7 days a week.

hopefully, this well get routed to the dev team. I have them the com.Samsung path (check my attachment for information on the path, cpu utilisation. I seer note I missed the -1. base.aol. I'll keep this thread posted..
 

Attachments

  • Screenshot_2016-01-16-20-53-51.jpg
    Screenshot_2016-01-16-20-53-51.jpg
    206 KB · Views: 83

mpogr

Senior Member
Jan 16, 2008
185
63
Melbourne
I have different devices now (Samsung Galaxy S6 + Samsung Gear S) and don't have this problem anymore, so can't comment.

Sent from my SM-G920I using Tapatalk
 

joachamob

Senior Member
Nov 8, 2013
50
2
35
I have the same problem since the last Gear Manager Update, the error message Goproviders stopped. I use my Gear 2 with S6 lollipop, both rooted. Gear manager 2.2.16011842
 

Top Liked Posts

  • There are no posts matching your filters.
  • 19
    Edit: with new Gear Manager (Jun release), this method doesn't work anymore. The new approach is to install a "contact synchroniser killer" app on the rooted watch. More details are in this post.

    ==================================================================================================================================================================================

    Hi all,

    Ever since I started using my Gear 2 Neo with my HTC One M8 phone (using the guide in this forum), I noticed that my watch consumes battery significantly faster than most of the users have been reporting. Even more strangely, sometimes after resetting both the phone and the watch (and I've done this a lot while experimenting and trying to get more stuff working) I had streaks of stellar battery life, well in line with optimistic reports here and elsewhere, but then, after a while, it started deteriorating very quickly.

    So I decided it was time to do something about it. I installed Tizen SDK, hooked the watch up and started poking around. The first thing I noticed my watch CPU was, most of the time, sitting on 40%! Well, that doesn't sound right, does it? Then I noticed the log (located under /var/log/dlog_main) was full with messages related to contact synchronisation. It turns out the damn thing synchronises all of my contacts every several seconds. The trouble is I have well over 1500 contacts (that's consolidated from different sources, the number of raw contacts should be well over 3000). So it takes significant time to do this, meaning my watch (and the phone!) are thrashed by these stupid full contact syncs all the time! What's even more striking is the fact it doesn't help when I change it to "favourites only". Apparently, this affects only the contacts displayed on the watch, however, the sync process still takes all of them.

    At this point I started poking around Samsung APK files to try and understand what was going on. Apparently, the APK responsible for contact sync is called GOPROVIDERS. Indeed, if you kill it, the thrashing stops, however, other important functions cease working as well. Aside of Contacts vanishing from the Gear, "Find my phone" is gone as well, but, more importantly, notifications stop working. While I could tolerate the first two, the last one was too much to give up.

    I started decompiling and analysing sources. Apparently, there is a process running every several seconds that analyses if any changes have been made to the contacts. It uses pretty bizarre logic which seems to be relying on Samsung-specific fields in the contacts. Now, this already sounds suspicious, and, apparently, leads to full sync every several seconds. Obviously, the more contacts you have, the harder you're hit.

    An interesting point in all this is that I'm not 100% sure the logic is working properly even on Samsung devices, so it might well be that the same issue is affecting people with high number of contacts using Samsung phones as well. I'd be really interested to see any feedbacks regarding this.

    So, long story short, instead of fixing the logic (which is quite difficult in SMALI), I made a simple change which dilutes this logic invocations, right now 1:64. Since then I'm enjoying MUCH improved battery life.

    The fixed APK is attached. You're welcome to give it a try at your own risk (you need to enable installation from untrusted sources + reboot and clean dalvik cache).
    6
    New approach

    OK, the handler I updated in the 2 previous fixes didn't change from the previous version of "goproviders", so I hoped I could just use the same .class file, DEX it, stick into an APK, sign and be done with it. Unfortunately, it looks some other logic has changed, so now the same fix doesn't work anymore.
    So I started investigating the other end, that is, the watch. The major difference is now we have ROOT on the Gear, so why not use it?
    I quickly figured out that the offending process on the watch side was "w-contacts2-consumer". Apparently, if you just kill it, this stops Contact synchronisation only, while Contacts app on the watch remains fully functional. Unfortunately, this process is respawned every time Bluetooth connection is reestablished between the the phone and the watch.
    I was looking for "cron" for Tizen, hoping to put "pkill" into a recurring task that'd run every couple of minutes. Unfortunately, I couldn't find "cron" on the watch, and the version of busybox suggested in one of the threads on this forum doesn't have it precompiled.
    Then I thought: why the heck can't I just write a small app (command line) that would literally just do this:
    Code:
    while(1)
    {
    	system("pkill w-contacts2");
    	sleep(120);
    }
    After a bit of playing around with Tizen SDK, I managed to produce this executable (attached). You can put it into /sbin, making sure permissions are 755. One last thing is to make it run as a service:
    Code:
    systemd-run --unit=kill_contacts.nonsamsung --description="Automatically Kill Contacts Every 2 Minutes" /sbin/kill_contacts
    I don't think it'll survive a reboot though, I'll get it sorted later.

    Now battery consumption is back to normal, and contacts get synchronised every time the watch connects to the phone, which is more than fine with me.
    2
    To make kill_contacts permanent, you can create service so that it will automatically start on reboot

    create file named kill_contacts.service
    Code:
    [Unit]
    Description=Automatically Kill Contacts Every 2 Minutes
    
    [Service]
    ExecStart=/sbin/kill_contacts
    
    [Install]
    WantedBy=multi-user.target

    push this file to /etc/systemd/system
    change mod to 644
    enable service
    start service
    Code:
    c:\sdb root on
    c:\sdb push kill_contacts.service /etc/systemd/system
    c:\sdb shell
    sh-3.2#chmod 644 /etc/systemd/system/kill_contacts.service
    sh-3.2#systemctl enable /etc/systemd/system/kill_contacts.service
    sh-3.2#systemctl start kill_contacts.service

    check running service using :
    Code:
    journalctl -u kill_contacts.service
    1
    Could you please explain your "logic invocations, right now 1:64" change?
    In the fixed APK the logic is actually invoked 1 time out of 64 attempts. It makes its frequency about every 40 minutes instead of every 30 seconds.
    1
    thanks but I am not been able to uninstall the goproviders app. there is no option to uninstalled View attachment 2807827

    please advice if you can

    Sent from my SM-N900T using Tapatalk
    I use Super Manager for this sort of tasks. Look it up in Google Play store.

    Sent from my GT-I9505 using Tapatalk