Exclude Specific Apps From Coalescing Timer (eg Tasker) - Greenify

I've got a question I can't find a definitive answer for anywhere online (at least that I'm aware of): is there a way to exclude specific apps from the coalescing timer function? If not, is that in the roadmap?
I ask because -- while I ADORE the feature and think it's an excellent idea all around -- it does also disrupt several apps that I don't want put on "inexact" timing. This includes apps that I haven't greenified (and don't appear on the "greenified" app list).
Tasker is the one I'm most interested in, as I have several profiles that run every 1-2 minutes, and greenify makes that a much longer period (10m, it seems).
Thanks much for any info or suggestions!

I can not help you, cuz I am new user. But could you tell me what does the coalescing timer does if I enable it?.

I am under the impression that only the wake ups of greenified apps are handled by the "coalescing timer". This is strengthened by the fact that I have only once seen the message that the wake ups have been coalesced.
What it does is, it prevents various apps waking up the device at their own sweet will, disrupting deep sleep. Instead, it allows the wakeups together as and when the device is woken up by an app. So on a single wake up, a multitude of apps are served. And the device sleeps longer.

This feature only affects periodic timers with "wake-up" capability, and it never change the period of timer but just postpone the start time of the very first occurrence of those periodic timers.
In short, it is harmless in almost any circumstances.

oasisfeng said:
This feature only affects periodic timers with "wake-up" capability, and it never change the period of timer but just postpone the start time of the very first occurrence of those periodic timers.
In short, it is harmless in almost any circumstances.
Click to expand...
Click to collapse
What about in example an email app? I have setup an specific schedule for my emails to be retrieved. This function will disrupt that? If so, any way to whitelist it?

jamexman said:
What about in example an email app? I have setup an specific schedule for my emails to be retrieved. This function will disrupt that? If so, any way to whitelist it?
Click to expand...
Click to collapse
If the schedule is at specific time, then it will not be affected. If the schedule is periodic, it will be coalesced.
At present, I have not yet found any case for a whitelist.

Related

Time tracking app with parallel timers needed

Hello,
I need a time tracking app. There is a lot of time trackers on Google Play and I've tried a lot of them, but in every app I missed one important feature: parallel timers for different clients and jobs.
I need:
- to define my clients, to define my jobs I do for the clients, to define projects.
- to simply choose client, project and kind of job and then start the timer
- to simply start and stop MULTIPLE timers (start and stop one timer, while second timer is still running)
- to export all data in usable form (for billing my clients)
Example of what I mean:
- My job is phone support. I am sitting at home and answering phone calls. I am payed for hours, so I need to start timer and leave it running almost all day untouched (except of lunch time).
- Because I spent most of the time by waiting for calls, I simultaneously do other jobs. I write articles, compose music and do some other work for other clients. So I need to start and stop timers according to actual work - but the "phone support timer" has to be also running. When I am - for example - writing an article and someone calls me, I need to stop "writing article timer", pick up the phone and solve customer's problem. When I drop the phone, I need to start "writing article timer"... etc...
This kind of app with parallel timers I've used on my Psion PDA back in 1998, but I can't find similar app for Android phones. Can anybody recommend me the app I am searching for? Thanks a lot.
Hoi,
i am using for nearly the same actions the App StopWatch.
On an older device i used Multi Timer PRO, but for some reasons? it isnt availabale at the Store any longer, and i didnt find my Backup.
Doei
Franz
Which StopWatch exactly? There is a lot of apps called StopWatch on Play Store, maybe hundreds. 8^)
Hoi,
its this one: https://play.google.com/store/apps/details?id=com.sportstracklive.stopwatch&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5zcG9ydHN0cmFja2xpdmUuc3RvcHdhdGNoIl0.
Doei
Franz
TSheets Time Tracker
Check out TSheets Time Tracker (tsheets.com) you can set up multiple job codes for your clients and projects and click to start and stop each one. When you set up your account just make yourself two people (!!) - "Mr/Mrs scalex.cz Phone" and "Mr/Mrs scalex.cz Article Writer" so the clocks can run simultaneously...
Check out the free app Timesheet from LlamaLab. It can handle multiple tasks active simultaneously.
See this post:
http://forum.xda-developers.com/showthread.php?t=2217159
Hi
Try out with the time tracking apps from Replicon. I have been using the same from a very long time and have got cool experience with the same on my work schedules.
EKetlinski said:
Check out TSheets Time Tracker (tsheets.com) you can set up multiple job codes for your clients and projects and click to start and stop each one. When you set up your account just make yourself two people (!!) - "Mr/Mrs scalex.cz Phone" and "Mr/Mrs scalex.cz Article Writer" so the clocks can run simultaneously...
Click to expand...
Click to collapse
Good idea.
Quickbooks Time Tracking Software is really awesome
Go ahead with Quickbooks Time Tracking Software from Replicon. Its been hassle free, cloud based, designed quite impressively with UX/UI and manages to navigate well. I am sure there will not be any cool tool than this.

[Mod][Xposed] Amplify - Battery Extender - Control alarms, services, and wakelocks

UPDATE:
Hi everyone,
I want to share some news. I received an email from Google yesterday letting me know that Amplify has been suspended from the Play Store because it changes the way that other apps work, which is against their policy. Google is enforcing this policy much more recently than they had in the past. Numerous other apps have also been taken down: CyanogenMod's installer, LuckyPatcher, Magisk Manager, Viper4Android, etc. I respect Google's policy on this and understand that the Play Store is evolving and needs to be "safe for Grandma" rather than a tool for Power Users like ourselves.
After some consideration, I think that Amplify should remain available. Google's implementation of Doze, Coalesced WakeLocks, and user pressure to deliver apps that don't overuse the battery have made Amplify less critical than it was in the past. Still, there are users on older phones and power users who want to have granular control over their wakelocks and Amplify fills a valuable niche for those people. I'm still considering how to make sure that Amplify remains available for people who need it. I need to find a couple of hours this week to recompile so that it will work without the Google Play Services and decide where to host it. Amplify has always been, and will always remain, an open source project. You're always welcome to download the source yourself from GitHub.
This Amplify thread has over 8,200 posts and over 2 million views. It's the 5th most viewed thread of all-time in the Xposed Modules forum. The app had almost 1 million downloads and a Play Store rating of 4.13 stars. I originally built Amplify for myself because I was frustrated with two particular wakelocks that were misbehaving. I never dreamed it would grow the way it did. I appreciate all of your support throughout the years.
Here's to better battery life!
Ryan
--- Original Post Follows ---
Amplify puts you in control of how your device uses your battery by controlling how often your device can wake up, and how long it can stay awake. Use the recommended settings for easy battery savings, or dig in and customize every alarm, service, and wakelock on your device.
Here are some highlights:
A beautiful design, inspired by Material Design principles. Your choice of Light or Dark.
A stable blocking engine
Comprehensive measuring of the time wasted and time saved because of alarms and wakelocks
Support for Nougat and SELinux.
A growing list of descriptions of the alarms, services, and wakelocks in plain English (and other languages!)
A Pro package that lets you control any alarm, service, or wakelock on the device
Translated by the community into Chinese, Czech, Finnish, French, German, Greek, Italian, Japanese, Malay, Portuguese, Polish, Romanian, Russian, Spanish, and more
Tasker integration
An open source codebase so you can see how it works, or build it yourself
4.0.1 is the latest version, available in the Google Play Store.
You can learn more at Amplify for Android.
The In-App purchases allow you to unlock the Pro package that lets you customize the alarms, services, and wakelocks on your device. Without the pro package, you can control the worst battery hogs: NlpWakelock, NlpCollectorWakeLock, ALARM_WAKEUP_LOCATOR, and ALARM_WAKE_ACTIVITY_DETECTION.
May you have a long [battery] life!
Ryan
​
Watch this excellent review by Chris Nacca for an introduction, and to answer most of your questions
FAQ for problems​I donated but Amplify doesn't recognize my donation
This is frustrating. The reason is because of the way that the Play Store handles In-App-Billing when apps are installed from different places (like sideloading, Xposed repo, and sometimes from the Play Store app). The fix is usually simple:
1) Uninstall Amplify from your device
2) Go to the Play Store on your computer and install Amplify from the Play Store web interface.
For some reason this tends to link the accounts more reliably than installing from the Play Store on the device.
It won't let me donate, or I see an error message when trying to donate
There are a few reasons this happens. It's always because Google reports that In App Billing isn't available for your device. Here are the causes I've seen:
You installed Amplify from the Xposed installer instead of from the Play Store, which causes problems due to a bug in Google Play
You have the Play Store or Google Play Services Greenified
You have blocked some part of the Play Store from running with Service Blocker, or another XPosed module
You purchased Amplify with a different Google account than the one you're using now
You have Lucky Patcher installed
You're from a country where In-App Billing is not available (not common)
You need to update your Google Play Store or Google Play Services (not common)
I just did an update to Amplify in the Play Store and it takes a couple of hours for Google to update their servers with the new version (not common)
I had Lucky Patcher installed. I uninstalled it but Amplify still doesn't work
Lucky Patcher makes permanent changes to your system. Simply uninstalling it doesn't work. Here's something to try, courtesy of @mikeezy187:
- Uninstall lucky patcher
- Go into settings
- Go to apps
- Go to Google Play Store
- Clear Cache and app data
- Uninstall Google Play Store updates and it will ask you if you want to restore Google Play Store to its stock settings
- Click Yes
- Reboot
Amplify gets stuck on the screen checking for Xposed, or says Xposed isn't installed
If you're positive that Xposed is running properly, and that Amplify is checked in the Modules list, and you've done a soft reboot:
When it gets stuck, swipe from the left side of the screen, choose Settings, then push the back button to bypass these checks.
Additional details
​I have a bug or feature request.
Cool. Thanks for helping out! Please go file the issue here, on GitHub. You can also upvote bugs and feature requests there.
I'd like to help with translations.
That would be AWESOME. Please check here to get started.
Why is Play Services such a battery killer:
1) If Google Location Services are turned on, it sets an alarm to wakeup every 60 seconds, check the network location, and broadcast ALARM_WAKEUP_LOCATOR.
2) Everytime ALARM_WAKEUP_LOCATOR fires, Google Search receives the broadcast and grabs an NlpWakeLock and NlpCollectorWakeLock.
3) Those wakelocks hold the keep the device on for 5-15 seconds. This means that the device is actually awake for about 15 seconds per minute, or 25% of the time!
What are the consequences of reducing alarm and wakelock frequency?
It depends on the alarm. The defaults are well tested and don't have negative impacts. They just save battery life. If you start blocking unknown alarms and wakelocks, it may stop things from working. You can always disable the module at boot to fix things. The latest knowledge base was created by @1ceb0x and is being maintained by the community. I regularly include their findings in Amplify. You can find the knowledge base here: https://docs.google.com/spreadsheet...0gYFBe1K8_R3NBloP4Q1FgpIU/edit#gid=2072742181
I blocked something and now my device won't boot!
To disable Xposed during boot, you have to repeatedly tap one of the hardware buttons (Power, Volume, or Home) on your device during startup. During boot, your device will vibrate twice when it detects the first key press. You'll then have five seconds to press that same button four more times, with each keystroke producing a short single vibration. After ending with a long vibration, your device will disable and prevent most of Xposed's actions, allowing you to go back to Amplify settings and fix what you broke.
What do the numbers mean, and how do I use this thing?
Check out this awesome intro video by Shiwak that explains the basics of how Amplify works.
I still get a ton of Wakelocks showing up in BetterBatteryStats
Short version: Those aren't really wakelocks. You can ignore them. Please go check in WakeLock Detector, and you'll see that they don't show up there.
Long version: Admittedly, I don't know *exactly* why they're showing up in BBS, but not in Wakelock Detector. I did a ton of testing today and can confirm that my device showed 988 NlpWakeLocks in BBS, but only 20 in WLD. During that time, I also had logcat running and a custom hook in the Android stats code. Logcat didn't show any of those phantom wakelocks, the Android stats code doesn't record them, Amplify doesn't see them, and WLD doesn't see them. BBS is [awesomely] open source, so I went digging a bit. I don't see anything obviously wrong in the code, but for some reason it's getting the counts wrong. Here's the interesting piece: It's getting the TIME SPENT in the wakelocks correct. That's why you see something absurd like 2000 wakelocks and only 6 seconds of lock time. If it were really that many wakelocks, your lock time would be much, much higher.
Where's the source code?
It's here: https://github.com/rsteckler/unbounce-android
A couple of things:
1) Don't judge. I need to do some cleanup, but wanted to post the repo early so people can take a look at what it does.
2) Pull requests are welcome.
I didn't read the FAQ
The band will not perform unless there is a bowl of M&Ms backstage, with all of the brown ones removed.
Where's the change log?
It's here: https://github.com/rsteckler/unbounce-android/commits/master
What are the best settings?
There is no "best" for everyone because every device is different. Check out this helpful thread from @Celestial Fury for a guide that walks you through an awesome baseline, and gives you advice on how to tune further.
What's an alarm vs. a wakelock, and how are they related with regards to Nlp (Network Location Provider)?
An alarm wakes your device from deep sleep, scheduled using the RTC (Real Time Clock). For example, Google Play Services schedules an alarm every 60 seconds to wake up the device with the ALARM_WAKEUP_LOCATOR alarm. That's why I didn't try to stop the wakelocks at first, but instead tried to stop the alarms. I don't even want the device to wakeup in the first place!
Once the alarm fires, the Nlp service wants to get your location and send it back to google. This requires keeping the device awake for a few (5-15) seconds. To keep the device awake, Google Play Services grabs the NlpWakeLock. This is the second point we can modify the system, but it only puts the device back to sleep once it's already awake.
A couple of other things: This is why I recommend starting with just the alarms. It's less intrusive, and stops the device from waking up at all. Most people will probably be fine with the settings 240, 240, 0, 0. There are other things that can cause an NlpWakeLock, though, including third party apps. If the alarms don't work by themselves for you, you can also slow down the frequency of the wakelocks directly in the settings.
Are there any ads in Amplify?
Nope. Never have been, and never will be.
What information do you collect about me?
When you launch the UI, I use Google Analytics to collect some information about your device. Specifically, the version of Amplify that you're using, the type of device you have, what country you're in, the version of Android you're using, etc. I use this information to make the app better. For example, it tells me how many people have the app installed in each country. This helps me know which language translations will be the most helpful. It also helps me know which versions of the app people will be upgrading from so I can make those transitions smooth. In my Google Analytics account, I have the options to share your data with Google and Third parties turned off. You can also read Google's Privacy Policy if you want to know how they use the data.
Do you sell my data?
Nope. Never.
The data collected for Google Analytics is only used to make the app better. I don't do anything else with it and no third parties get access to it.
How do I know that the code on GitHub is actually the code you push to the Play Store?
I don't think there's a way to verify that. You just have to trust me. If that makes you nervous, I encourage you to build the GitHub code yourself.
Can I get Pro features by donating via PayPal, Bitcoins, or something else?
Sadly, no. The Google Play Store Terms of Service require that I use the Google Play Store IAP system to collect donations. I also don't plan on distributing non-Google IAP versions outside of the Play Store because of the effort involved. I'd rather spend my time making Amplify better, instead of maintaining two copies of the code and writing a new donation system. Sorry if you're one of the people affected by that.
Thanks, and let me know if it works for you!
Ryan
What are the consequences of reducing its frequency? Are there any negatives?
alex91s said:
What are the consequences of reducing its frequency? Are there any negatives? if not, why don't reducing it more?
Click to expand...
Click to collapse
I don't know all of the consequences, but it should be pretty safe because you're able to completely disable Google Location Services without major disruption.
For myself, I think 4 minutes is a good balance between the apps that depend on Network Location and battery life. Once I verify with you guys that it works and doesn't cause problems on different setups, I'll make the timing adjustable so you can decide for yourself what you want the threshold to be.
Thanks,
Ryan
After two days using this, my battery use has gone from about 5% per hour to about 2% per hour when the phone is idle.
The ALARM_WAKEUP_LOCATOR in BBS has gone from 1.1/minute to 15/hour.
The next biggest wakeup is now ALARM_WAKEUP_ACTIVITY_DETECTION, so I'm going to tackle that one next.
I'm on an HTC One M8, and would appreciate if someone can confirm on a different device, as well.
Thanks,
Ryan
Not sure If it's working here (Moto X 4.4.4). Take a look:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
alex91s said:
Not sure If it's working here (Moto X 4.4.4). Take a look:
Click to expand...
Click to collapse
It's hard to tell with WLD because it doesn't show the source of the alarms that wakeup the device.
You should notice a decrease in NlpWakeCollectorWakelock, but you'd have to run it for some time before and after to see the difference in the count.
BBS shows the alarms that actually wake up the device, and the frequency. WLD just shows the wakelocks, and the count. The problem is that you'd need to run it for the same amount of time to calculate the frequency.
In any case, I'd love even your subjective opinion on your battery life today vs. yesterday.
Thanks,
Ryan
Any chance you could put a setting in that would allow us to set the time by ourself?
Corndude said:
Any chance you could put a setting in that would allow us to set the time by ourself?
Click to expand...
Click to collapse
He says it's planned in the OP, which you should've read.
Giving a try right now since I hate how much NIp keeps my phone awake.
Gonna give it a shot too. For reference, this is how my NLP wakelocks looked like on my previous charge. I have Location History on since I use Cerberus, so I suppose I should notice any improvements.
Sent from my LG-D802 using XDA Free mobile app
metalboy94 said:
Gonna give it a shot too. For reference, this is how my NLP wakelocks looked like on my previous charge. I have Location History on since I use Cerberus, so I suppose I should notice any improvements.
Sent from my LG-D802 using XDA Free mobile app
Click to expand...
Click to collapse
Your stats are REALLY good, as is. Nice!
Hi, sorry for the stupid question, but if I'm already using Wakelock Terminator to control the Nlp-wakelocks, would it be redundant to use your module as well, or would there still be a benefit?
shockwaverider said:
Hi, sorry for the stupid question, but if I'm already using Wakelock Terminator to control the Nlp-wakelocks, would it be redundant to use your module as well, or would there still be a benefit?
Click to expand...
Click to collapse
Using both is redundant. The difference is that this doesn't disable Google Search from getting the wakelocks. It just tempers the alarm that causes them so they don't destroy your battery.
I've got a VZ Note 3, rooted stock ROM. I travel a lot, so I leave location on basically 24/7. It would be nice to get better battery life without turning every thing off like a lot of these "battery gurus" like to suggest. What's the point of having a smartphone if you turn off every function that makes it smart? LOL
I'll certainly give this a try and report back ?
Sent from my SM-N900V using Tapatalk
BlastTyrantKM said:
What's the point of having a smartphone if you turn off every function that makes it smart? LOL
Sent from my SM-N900V using Tapatalk
Click to expand...
Click to collapse
My feelings exactly! I installed this module about 8 hours ago. It works... without a doubt.
Sent from my LG-D801
Please tame these 2 wlan wakelocks!
wlan_rx_wake
wlan_wd_wake
After about an hour of use, wakelocks have clearly happened, but have not kept the phone awake for 25 minutes like they used to. The phone is also no longer warm to the touch while it tries to sleep. Waiting for moar updates for this wonderful piece of software.
whittikins said:
Please tame these 2 wlan wakelocks!
wlan_rx_wake
wlan_wd_wake
Click to expand...
Click to collapse
I'm fairly sure kernel wakelocks are out of his power, mate. Fixing those things are up to the manufacturer of the phone.
whittikins said:
Please tame these 2 wlan wakelocks!
wlan_rx_wake
wlan_wd_wake
View attachment 2907298View attachment 2907299View attachment 2907300
Click to expand...
Click to collapse
Do you have Always Scanning turned OFF under c WiFi Advanced??? If not.. Try that.
- Tapatalked from the G3
cryptyk said:
It's hard to tell with WLD because it doesn't show the source of the alarms that wakeup the device.
You should notice a decrease in NlpWakeCollectorWakelock, but you'd have to run it for some time before and after to see the difference in the count.
BBS shows the alarms that actually wake up the device, and the frequency. WLD just shows the wakelocks, and the count. The problem is that you'd need to run it for the same amount of time to calculate the frequency.
In any case, I'd love even your subjective opinion on your battery life today vs. yesterday.
Thanks,
Ryan
Click to expand...
Click to collapse
In my subjective opinion, the battery got better .

Development: Avoid Samsung Device Care Wakeup alarms

Hello,
We have an Android SDK that many applications use for marketing purposes. Specifically, it allows to deliver personalized messages to their users based on geofences or bluetooth beacons detection.
We've dedicated tons of hours optimizing the thing so it does not drain user battery or annoys in any matter, however we are now facing a new challenge: Samsung Device Care (Samsung Maintenance).
As you may know, this application comes pre installed in (I think) all Samsung devices, and helps users to keep the battery consumption low by detecting apps that consume too much in the background among other features.
Our software behaves correctly in almost all categories, including battery consumption and background time execution, however the Samsung device care app sometimes shows an alert saying that the "application generates too many wake ups". In order to avoid this, we are being more aggressive by explicitly controlling the number wake ups when app is in the background, the only problem is that we are completely blind right now, as we don't know what is the threshold that Samsung Device care app uses to trigger this alarm.
I have decompiled the Samsung device care app, however the app seems to be written in C / C++, hampering the task.
I have also run tests for days in a couple of Samsung phones in order to see if I can trigger the alarm, so I can try to empirically found what the limits are, however I haven't been able to trigger any alarm, even though my testing code is requesting an AlarmManager callback every 30 seconds.
Finally, I have also opened a ticket in the Samsung Developer site, but no answer so far...
Do you have any idea where can I find this information? :crying:

Is Greenify Malware?... or Spyware?

I originally posted a summary of these thoughts on my Play Store review of Greenify. But, since comments there soon get lost in the traffic, I thought I'd rewrite here.
Greenify seems to get a free pass from pretty much every Android-focussed site as a "must have app". I even saw an article on one site that said all RAM/Battery optimiser apps were a waste of time except for Greenify.
My own findings are a bit less uncritical.
My findings are that Greenify is constantly trying to make internet connections behind your back. I have the excellent AFWall+ installed on all my gadgets and, after I installed Greenify and blocked it from making internet connections, I was having AFWall+ alert me that Greenify was trying to make connections, almost constantly.
I would be doing something on my phone and the alerts from AFWall+ would be popping up continually, telling me that Greenify was trying to connect to one IP address after another. This would literally go on for two or three minutes at a time. It got so distracting that I eventually turned off AFWall+'s alerts for Greenify, just so I could use my phone in peace!
Digging further into AFWall+'s logs I found that, in the couple of months I'd had Greenify installed, it had attempted to make over ten thousand internet connections!
To put that into perspective; during the same time period, the second most tenacious app on my phone, Google's Gboard keyboard [which you'd expect to be spying on you], had made around two thousand attempts to phone home – and the connection figures for all the other apps I'd blocked with AFWall+ were way down in the couple of hundreds.
So, what is Greenify doing, trying to connect to these myriad servers all the time?
Even if you believe it's benign [although I can't see any legitimate reason it should be making ANY online connections at all] you've got to wonder how much the app is saving your battery by shutting down other background processes, when it's pretty much constantly trying to make internet connections itself.
I realise this is just my unverified opinion. I've since uninstalled Greenify from all my devices and so no longer have the AFWall+ logs to back up what I'm saying. And you've got no reason to trust me on this. But, if you've any doubts, feel free to install AFWall+ and try it yourself. You might just get a nasty shock.
@xxxmadraxxx I'm a long time user of Greenify in its donation version running on all of our devices and I confirm all of your observations. As you could see by my other own threads, I'm very heavily privacy minded but I continue to use Greenify despite its permanent attempts to "call home" (actually the 1e100.net i.e. Google) because I'm able to fight it. From my perspective, reason are the implemented Google analytics tracker. Certainly, I'd prefer if first no trackers at all were implemented and second no attempts to connect to the internet were made at all. Grenify doesn't require an internet connections for its functionality.
However, as I said I'm able to fight it and I don't want to miss Greenify as it certainly enhances the duration of my battery.
All of our devices still run on custom Nougat ROMs for specific reasons. As far as I see if you're already using Oreo or Pie you wouldn't require Greenify any longer to achieve a better battery duration.
Remark: Malware? Not from my point of view. Spyware? As much as every application that contains trackers or analytics tools but there are a few I trust for the benefit of the developer and the development. As an example: SD Maid and Piwik (now Matomo) (the SD Maid Privacy Statement).
If interested: https://forum.xda-developers.com/android/general/how-enhance-battery-duration-sgs-3-lte-t3478287
Oswald Boelcke said:
...I don't want to miss Greenify as it certainly enhances the duration of my battery...
...As far as I see if you're already using Oreo or Pie you wouldn't require Greenify any longer to achieve a better battery duration....
Remark: Malware? Not from my point of view. Spyware? As much as every application that contains trackers or analytics tools....
Click to expand...
Click to collapse
My problem isn't so much with the fact Greenify phones home per se. I know that most apps do so, or at least try to. My problem with Greenify is the tenacity and persistence with which it tries to phone home. As I said in my previous post, it made over TEN THOUSAND! attempts to phone home in the space of the couple of weeks I had it installed.
With the vast majority of other apps, they'll try a couple of times to phone home, maybe using a couple of different IP addresses and then give up. With Greenify, I would sit there and watch the AFWall+ alerts pop up on screen, one after the other, with a succession of different IP addresses, literally for 2 or 3 minutes continually. Also, as I said previously the only other app I had installed that came anywhere near this level of persistence was Google's GBoard which would regularly try and phone home as I was typing stuff on my phone [you can draw your own conclusions as to what that entails for your privacy!]. But, even then, Gboard only [relatively speaking] made about a fifth of the attempts to connect to the internet that Greenify did.
I uninstalled it because I really couldn't see how whatever small savings in battery juice that Greenify was purportedly giving me by sleeping apps which aren't doing anything much anyway wouldn't be being more than cancelled out by the drain on my battery caused by Greenify spending countless minutes every day, trying to make hundreds of internet connections behind my back.
I haven't noticed any difference whatsoever in battery life, since uninstalling Greenify.
xxxmadraxxx said:
My problem isn't so much with the fact Greenify phones home per se. I know that most apps do so, or at least try to. My problem with Greenify is the tenacity and persistence with which it tries to phone home. As I said in my previous post, it made over TEN THOUSAND! attempts to phone home in the space of the couple of weeks I had it installed.
With the vast majority of other apps, they'll try a couple of times to phone home, maybe using a couple of different IP addresses and then give up. With Greenify, I would sit there and watch the AFWall+ alerts pop up on screen, one after the other, with a succession of different IP addresses, literally for 2 or 3 minutes continually. Also, as I said previously the only other app I had installed that came anywhere near this level of persistence was Google's GBoard which would regularly try and phone home as I was typing stuff on my phone [you can draw your own conclusions as to what that entails for your privacy!]. But, even then, Gboard only [relatively speaking] made about a fifth of the attempts to connect to the internet that Greenify did.
I uninstalled it because I really couldn't see how whatever small savings in battery juice that Greenify was purportedly giving me by sleeping apps which aren't doing anything much anyway wouldn't be being more than cancelled out by the drain on my battery caused by Greenify spending countless minutes every day, trying to make hundreds of internet connections behind my back.
I haven't noticed any difference whatsoever in battery life, since uninstalling Greenify.
Click to expand...
Click to collapse
It's amazing the conclusions one draws when given a tool. Perhaps Greenify behaves differently on your device than the huge universe of other long time users, some of which share your concerns over excessive outreach. I do not see the aggressive characteristics you and a few others describe - perhaps because I permit *most* analytics to flow unimpeded.
The power saving potential of Greenify and similar tools has depreciated over time given native doze and more aggressive enforcement of app background behaviors via Google policy. That said, Greenify remains an essential tool in my arsenal for performing selective tasks without manual intervention. It certainly is not malware/spyware as your click-bait thread title suggests.
Oswald Boelcke said:
@xxxmadraxxx I'm a long time user of Greenify in its donation version running on all of our devices and I confirm all of your observations. As you could see by my other own threads, I'm very heavily privacy minded but I continue to use Greenify despite its permanent attempts to "call home" (actually the 1e100.net i.e. Google) because I'm able to fight it. From my perspective, reason are the implemented Google analytics tracker. Certainly, I'd prefer if first no trackers at all were implemented and second no attempts to connect to the internet were made at all. Grenify doesn't require an internet connections for its functionality.
However, as I said I'm able to fight it and I don't want to miss Greenify as it certainly enhances the duration of my battery.
All of our devices still run on custom Nougat ROMs for specific reasons. As far as I see if you're already using Oreo or Pie you wouldn't require Greenify any longer to achieve a better battery duration.
Remark: Malware? Not from my point of view. Spyware? As much as every application that contains trackers or analytics tools but there are a few I trust for the benefit of the developer and the development. As an example: SD Maid and Piwik (now Matomo) (the SD Maid Privacy Statement).
If interested: https://forum.xda-developers.com/android/general/how-enhance-battery-duration-sgs-3-lte-t3478287
Click to expand...
Click to collapse
There are a couple of ways around Greenify's nearly constant call-outs to Crashlytics.
First, set up your hosts file.
Second, use MyAndroidTools and XPrivacyLua to lock Greenify down.
In MyAndroidTools, disable:
Content Provider > Greenify > com.crashlytics.android.CrashlyticsInitProvider
In XPrivacyLua, disable everything for Greenify except:
Determine activity
Get applications
Read identifiers
In Settings > Apps > Gear Icon > App permissions, go through and ensure Greenify isn't enabled for anything.
Greenify, being root, will still try to connect, but it won't be able to because of the hosts file.
---------- Post added at 06:25 AM ---------- Previous post was at 06:15 AM ----------
xxxmadraxxx said:
My problem isn't so much with the fact Greenify phones home per se. I know that most apps do so, or at least try to. My problem with Greenify is the tenacity and persistence with which it tries to phone home. As I said in my previous post, it made over TEN THOUSAND! attempts to phone home in the space of the couple of weeks I had it installed.
With the vast majority of other apps, they'll try a couple of times to phone home, maybe using a couple of different IP addresses and then give up. With Greenify, I would sit there and watch the AFWall+ alerts pop up on screen, one after the other, with a succession of different IP addresses, literally for 2 or 3 minutes continually. Also, as I said previously the only other app I had installed that came anywhere near this level of persistence was Google's GBoard which would regularly try and phone home as I was typing stuff on my phone [you can draw your own conclusions as to what that entails for your privacy!]. But, even then, Gboard only [relatively speaking] made about a fifth of the attempts to connect to the internet that Greenify did.
Click to expand...
Click to collapse
Google Keyboard is, by Google's own admission, a keystroke logger... it's in their privacy policy for GBoard. I've removed it from my phone, along with nearly every other Google app (16 Google apps removed, 3 disabled in case I need them in the future)... and what remains is so locked down that the only thing that works is Google Play Store... for the rest of Google Play Services and Google Services Framework functionality, I've used MyAndroidTools and .xml file hacks to disable. I have no location tracking from Google, no logging from any Google components, no aGPS phone-homes to anywhere (aGPS is completely disabled)... in fact, Google can't even see when I'm online unless I change to my 'Google Enabled' AFWall+ profile to visit Google Play Store. In fact, I've recently disabled all Google Ads functionality... I found out that Google is presenting to the user a fake_adid_key that the user could change but which otherwise did nothing, yet they also have an adid_key which never changes, which they use as a GUID to track users.
Try Hacker's Keyboard... no ads, I've never seen any connection attempts from it, and it's a very nice keyboard once you configure it to suit you.
For me, I set Portrait keyboard height to 45%, landscape keyboard height to 55%, Keyboard mode in portrait and landscape as 'Full 5-row layout', Gingerbread keyboard theme, Auto-capitalization, Double-tap Shift mode, Apply Shift Lock to modifier keys, no Ctrl-A override, no Ctrl key code, no Alt key code, no Meta key code and ignore slide-typing.
It does everything I need, I can type pretty quickly, and it doesn't log keystrokes. I especially like the little arrow keys which let me navigate around in a text file, and the fact that I can Ctrl-A (select all), Ctrl-C (copy) and Ctrl-V (paste) just like a regular keyboard.
Pro-tip: If you want to select a few lines of text, hold the shift key, and tap the down arrow key, just as you'd do on a regular keyboard.
Lusty Rugnuts said:
There are a couple of ways around Greenify's nearly constant call-outs to Crashlytics...
Google Keyboard is, by Google's own admission, a keystroke logger... it's in their privacy policy for GBoard. I've removed it from my phone....
Try Hacker's Keyboard... no ads, I've never seen any connection attempts from it, and it's a very nice keyboard once you configure it to suit you....
Click to expand...
Click to collapse
I found the simplest way of reining in Greenify was to uninstall it. As I said, I've not noticed any detriment to battery life whatsoever –although that may be partly because I'm using an Oreo based ROM now. When I had Greenify installed I was on Marshmallow.
I do use Hacker's Keyboard for apps like Termux and JuiceSSH when I need access to all those extra keys, but it doesn't have swipe-to-type [or didn't last time I looked] so it's no good for my day-to-tay messaging/email/texting etc. where I swipe-to-type all the time.
After uninstalling Gboard and having a brief foray through Samsung's built-in keyboard, I've ended up using SwiftKey on all my devices.
Don't laugh! –I know it's owned by Microsoft which is a huge red flag. But if you set it up without creating a SwiftKey account and switch off any of the "cloudy" options [such as backup, dictionary sync, downloading themes, etc.], it does all its word-prediction processing locally on your device and [according to AFWall+] has never tried to make a single online connection.
Lusty Rugnuts said:
There are a couple of ways around Greenify's nearly constant call-outs to Crashlytics.
...
Click to expand...
Click to collapse
I'm glad to see that we both have nearly the same setup to protect our privacy.:good:
xxxmadraxxx said:
I found the simplest way of reining in Greenify was to uninstall it. As I said, I've not noticed any detriment to battery life whatsoever –although that may be partly because I'm using an Oreo based ROM now. When I had Greenify installed I was on Marshmallow.
I do use Hacker's Keyboard for apps like Termux and JuiceSSH when I need access to all those extra keys, but it doesn't have swipe-to-type [or didn't last time I looked] so it's no good for my day-to-tay messaging/email/texting etc. where I swipe-to-type all the time.
After uninstalling Gboard and having a brief foray through Samsung's built-in keyboard, I've ended up using SwiftKey on all my devices.
Don't laugh! –I know it's owned by Microsoft which is a huge red flag. But if you set it up without creating a SwiftKey account and switch off any of the "cloudy" options [such as backup, dictionary sync, downloading themes, etc.], it does all its word-prediction processing locally on your device and [according to AFWall+] has never tried to make a single online connection.
Click to expand...
Click to collapse
I'm surprised that you quoted me but with statements in the quotation, which I've never made. As far as I see they are by @Lusty Rugnuts. If you click the quotation you're referred to post #2 with a totally different content. May I politely ask you to edit your post in regard to the quotation.
Sorry about that. The multiple nested quotes, when replying, gets a bit unweildy. I deleted the wrong bit when trimming then.
xxxmadraxxx said:
I found the simplest way of reining in Greenify was to uninstall it. As I said, I've not noticed any detriment to battery life whatsoever –although that may be partly because I'm using an Oreo based ROM now. When I had Greenify installed I was on Marshmallow.
Click to expand...
Click to collapse
I wish there were a way to do away with it on Nougat... I take the Lotus approach, add speed by taking away. The less installed, the better. The stock ROM backup I took when the phone was brand-new is 4.74 GB in size. My latest backup is 2.29 GB. Yeah, I've stripped out a lot of Google-stuff.
xxxmadraxxx said:
I do use Hacker's Keyboard for apps like Termux and JuiceSSH when I need access to all those extra keys, but it doesn't have swipe-to-type [or didn't last time I looked] so it's no good for my day-to-tay messaging/email/texting etc. where I swipe-to-type all the time.
Click to expand...
Click to collapse
The Hacker's Keyboard options does have an "ignore slide-typing" option, so I'm assuming it supports slide-typing / glide-typing / swipe-to-type. I've never tried it... I'm a creature of habit, and regular typing suits me. I watched my sister-in-law doing slide-typing, and it seems like one would need very good word correction to get readable text. Besides, I'm a mechanical engineer, I use my hands as hammers, pliers, etc. all day... they're not exactly "tuned" for the finesse I think slide-typing would require.
I came across this thread because in the past year, three times I have been notified by Xposed that a module has been updated. SuperSU also asks me to grant root access again so I'm wondering what the app is doing self updating?
Version 4.5.1 (donate)
Never ever had a "self-update" of Greenify.
Currently on Greenify v4.6.3 (Google beta programme) & Greenify (Donation Package) v2.3
Oswald Boelcke said:
Never ever had a "self-update" of Greenify.
Currently on Greenify v4.6.3 (Google beta programme) & Greenify (Donation Package) v2.3
Click to expand...
Click to collapse
Same. This FUD about Greenify being evil by design is disinformation the net craves. I expect this to be a top trending thread in no time that trashes the reputation of an otherwise fine product. Shesh.
Davey126 said:
Same. This FUD about Greenify being evil by design is disinformation the net craves. I expect this to be a top trending thread in no time that trashes the reputation of an otherwise fine product. Shesh.
Click to expand...
Click to collapse
Absolutely concur. I'm going to refrain from bumping this thread any longer; this is the last time. BTW: Congrats to well deserved 9,000+ thanks. And what does "shesh" means? Never heard it. Just for me to learn.
Davey126 said:
Same. This FUD about Greenify being evil by design is disinformation the net craves. I expect this to be a top trending thread in no time that trashes the reputation of an otherwise fine product. Shesh.
Click to expand...
Click to collapse
I don't see how stating a fact and questioning why it happens is spreading "FUD". And it's certainly not "disinformation". Surprised you didn't also call it "Fake News", since that seems to be the millennial way to deal with anything you read which doesn't align to your own personal viewpoint.
10,000+ attempted internet connections by Greenify in the space of a couple of months is a statement of fact that I observed on my own device. But, as I said in the first post in the thread:
xxxmadraxxx said:
I realise this is just my unverified opinion... And you've got no reason to trust me on this. But, if you've any doubts, feel free to install AFWall+ and try it yourself...
Click to expand...
Click to collapse
Hardly spreading FUD and disinformation. Just letting people know what I saw and telling them to check for themselves and draw their own conclusions.
If other people want to believe that Greenfy is 100% benign, because it's useful to them, then that's fine too. But I could counter your accusations of FUD with saying other people are spreading CCC [Complacency, Certainty and Confidence]. ie. you're blindly trusting an app just because it provides a useful service
[cf. Google, Facebook, et al, if you want to see where that can lead].
I also note that these questions about Greenify's surreptitious behaviour have been raised before on this forum, on other forums and also on the app's reviews on Google Play and, as far as I can see, the developer has not once responded. That may or may not seem suspicious to you but I ask myself:
* If there's an innocent explanation, why not just explain it and clear the air?
* If there's a bug in the app which is causing these attempts to phone home to be repeated endlessly, thousands upon thousands of times, why not fix it?
or, since the phoning home is not necessary for the app to function;
* Why not provide a preference to turn it off? [especially for those people who have paid for the donation version]
Defensive wall of text speaks for itself. Moving on.
(several generations removed from "millennial")
xxxmadraxxx said:
I don't see how stating a fact and questioning why it happens is spreading "FUD". And it's certainly not "disinformation". Surprised you didn't also call it "Fake News", since that seems to be the millennial way to deal with anything you read which doesn't align to your own personal viewpoint.
10,000+ attempted internet connections by Greenify in the space of a couple of months is a statement of fact that I observed on my own device. But, as I said in the first post in the thread:
Hardly spreading FUD and disinformation. Just letting people know what I saw and telling them to check for themselves and draw their own conclusions.
If other people want to believe that Greenfy is 100% benign, because it's useful to them, then that's fine too. But I could counter your accusations of FUD with saying other people are spreading CCC [Complacency, Certainty and Confidence]. ie. you're blindly trusting an app just because it provides a useful service
[cf. Google, Facebook, et al, if you want to see where that can lead].
I also note that these questions about Greenify's surreptitious behaviour have been raised before on this forum, on other forums and also on the app's reviews on Google Play and, as far as I can see, the developer has not once responded. That may or may not seem suspicious to you but I ask myself:
* If there's an innocent explanation, why not just explain it and clear the air?
* If there's a bug in the app which is causing these attempts to phone home to be repeated endlessly, thousands upon thousands of times, why not fix it?
or, since the phoning home is not necessary for the app to function;
* Why not provide a preference to turn it off? [especially for those people who have paid for the donation version]
Click to expand...
Click to collapse
---------- Post added at 09:59 AM ---------- Previous post was at 09:47 AM ----------
Oswald Boelcke said:
Absolutely concur. I'm going to refrain from bumping this thread any longer; this is the last time. BTW: Congrats to well deserved 9,000+ thanks. And what does "shesh" means? Never heard it. Just for me to learn.
Click to expand...
Click to collapse
"Sheesh" (forgot the second ''e') is a mild expression of exasperation generally uttered as a final remark. Not entirely dismissive but leaning in that direction. Akin to 'geez'.
As for the other, any and all acknowledgements go back to the XDA community who support each other like a well designed house of cards. Each depends on the other for support but removing one (or many) does not lead to collapse but the subtle shifting of another 'card' to share the load.
Davey126 said:
Defensive wall of text speaks for itself. Moving on.
(several generations removed from "millennial")
Click to expand...
Click to collapse
In other words:
I'm not a millennial and just to show how mature I am –because I disagree with what you're saying, I'm going to stick my fingers in my ears and go "Na! Na!Na! I can't hear you!"
M'lud. The defence rests its case.
Davey126 said:
Same. This FUD about Greenify being evil by design is disinformation the net craves. I expect this to be a top trending thread in no time that trashes the reputation of an otherwise fine product. Shesh.
Click to expand...
Click to collapse
I have to disagree with you, and I applaud the original poster for making this thread. No closed source project should be immune from scrutiny.
I of course have been using the app for many years and trust the developer but still don't have an answer as to why Xposed and SuperSU were telling me that Greenify has been updated - I think it would be fair to question what's going on.
Though OP could have probably not used such a click-baity and sensational title. Even if it's not malware, the bug would mean that Greenify is not getting root access unless I manually grant it again.
htr5 said:
Though OP could have probably not used such a click-baity and sensational title...
Click to expand...
Click to collapse
The title wasn't intended to be either click-baity or sensational but, with hindsight, I can see how it might read it that way. Mea culpa.
However, given that no third party has been able to offer any justifiable reason as to why Greenify behaves as it does and the developer has never responded to the oft-expressed concerns of users –I don't think it unreasonable to infer that Greenify may be behaving; at best, irresponsibly and at worst, nefariously.
In which case, maybe the headline wasn't that click-baity, after all.
htr5 said:
I of course have been using the app for many years and trust the developer but still don't have an answer as to why Xposed and SuperSU were telling me that Greenify has been updated - I think it would be fair to question what's going on.
Click to expand...
Click to collapse
Yes, that would be a fair question (sans other baggage).
xxxmadraxxx said:
10,000+ attempted internet connections by Greenify in the space of a couple of months is a statement of fact that I observed on my own device.
Click to expand...
Click to collapse
I've quieted Greenify. I used MyAndroidTools to disable the following for Greenify:
Content Provider:
com.crashlytics.android.CrashlyticsInitProvider
com.google.firebase.provider.FirebaseInitProvider
Activity:
com.google.android.gms.common.api.GoogleApiActivity
com.google.android.gms.tagmanager.TagManagerPreviewActivity
Broadcast Receiver:
com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver
com.google.android.gms.measurement.AppMeasurementReceiver
com.google.firebase.iid.FirebaseInstanceIdReceiver
Service:
com.google.android.gms.measurement.AppMeasurementJobService
com.google.android.gms.measurement.AppMeasurementService
com.google.firebase.components.ComponentDiscoveryService
com.google.firebase.iid.FirebaseInstanceIdService
com.google.android.gms.tagmanager.TagManagerService
That Tag Manager Service and Tag Manager Preview Activity are worrisome...
https://support.google.com/tagmanager/answer/6102821?hl=en
Google Tag Manager is a tag management system (TMS) that allows you to quickly and easily update measurement codes and related code fragments collectively known as tags on your website or mobile app. Once the small segment of Tag Manager code has been added to your project, you can safely and easily deploy analytics and measurement tag configurations from a web-based user interface.
When Tag Manager is installed, your website or app will be able to communicate with the Tag Manager servers. You can then use Tag Manager's web-based user interface to set up tags, establish triggers that cause your tag to fire when certain events occur, and create variables that can be used to simplify and automate your tag configurations.
Click to expand...
Click to collapse
https://blog.hubspot.com/marketing/google-tag-manager-guide
Collecting data using tools like Google Analytics is critical for expanding your business’s online reach, converting leads into customers, and optimizing a digital marketing strategy to create stronger relationships with your audience.
However, collecting data is easier said than done. Google Analytics and other similar analytics tools aid the process, but they work more effectively with the addition of tags.
Tags, in a general sense, are bits of code you embed in your website’s javascript or HTML to extract certain information.
Click to expand...
Click to collapse
So Tag Manager is yet another way for Google to track your every move... in apps and on web pages. It's almost a backdoor to your device, since Tag Manager can be used to remotely change what it tracks and when. Google is getting awfully malware-y, which is why I've worked so hard to make it so I can completely kill all Google components on my phone and the phone still works... and the Google components stay killed until I start them (without the necessary modifications, Google Persistence kicks in and restarts the Google components, which is also very malware-y... Google is a service provider, they shouldn't run unless the user wants to use their services, and there should be an interface to disable (or uninstall) any functionality the user doesn't want.). Further, the user shouldn't have to rely upon changing settings on Google's servers, while leaving the Google components running on their phone... that means we have to trust that Google is abiding by those settings... does anyone believe they are?
I've uncovered instances on this very phone where Google is less than honest in abiding by settings... another is their GoogleOtaBinder, which disregards the Developer Options setting to disable Automatic System Updates... the only way to turn off Google pushing a new ROM (without consent, without notification) and rebooting the phone (at midnight each night, without consent, without notification) is to edit a file such that GoogleOtaBinder can't authenticate with Google's servers.
You'll probably also find an app in Settings > Apps called 'Tag Manager'... I got rid of it long ago.
Google Tag Manager / Tracking Pixels and Tags
package:/system/priv-app/TagGoogle/TagGoogle.apk=com.google.android.tag
To get a list of packages installed on your system, in an Administrator-privilege command prompt on your computer, with your phone plugged into your computer via USB and set to 'File Transfer' USB mode, type:
adb shell pm list packages -f
Here's the list of packages I've removed.
{UPDATE}
I've also found the following:
The file:
/data/user/0/com.oasisfeng.greenify/app_google_tagmanager/resource_GTM-KN73P2
contains the following:
Component Display Name:
com.xiaomi.mipush.sdk.PushMessageHandler
alibaba.sdk.android.push.AliyunPushIntentService
com.igexin.sdk.PushService
com.tencent.android.tpush.service.XGPushServiceV3
org.android.agoo.client.MessageRecieverService
com.baidu.sapi2.share.ShareService
"MessageReceiverService"? PushMessageHandler? What is being pushed to our phones?
Further down, because I've completely neutered Google Analytics, it reads:
.analytics.disabled.exception.NoSuchMethodError true
{/UPDATE}
Greenify is also using the real 'adid_key' content in /data/data/com.google.android.gms/shared_prefs/adid_settings.xml, although I doubt they're in on Google's nefarious scheme to trick users into thinking they can reset their Advertising ID, while tracking them with a non-changing GUID (Globally Unique ID).
There are two keys in adid_settings.xml... 'adid_key' and 'fake_adid_key'... pushing the "Reset Advertising ID" button in Settings > Google > Ads changes 'fake_adid_key', but 'adid_key' never changes and is propagated to many other apps.
https://forum.xda-developers.com/showpost.php?p=79521903
Further, I tried to uninstall Greenify (I'll manually set up device_idle_constants to mimic what Greenify did)... it's never had Device Administrator privileges, I disabled Usage Access, uninstalled the XPosed Framework 'Greenify Experimental Features', then went into Greenify's settings and disabled all that was there... but when I went into Settings > Apps > Greenify, there isn't an "uninstall" button, just "Force Stop" and "Disable" buttons. There's no way to uninstall it from within Greenify itself, either.
I booted into TWRP Recovery Mode, went to /data/adb/modules, deleted the module for Greenify, and when I rebooted, Greenify was gone. All that remained was to wipe it from the Dalvik cache.

Need help spoofing time in specific app

Hello,
My company uses a specific app to complete tasks at a set time. They are the same time periods each day. Of course sometimes these tasks don't get completed on time.
I used to be able to change time in automatic time in settings but now it doesn't allow log in when the time isn't the actual time.
Any ideas of how I could spoof the time without the app denying my sign on request?
Rooted/Bootloader unlocked
@huskydg you are one of the only developers that I actively follow. Do you have any thoughts on this?

Categories

Resources