{"adoption": {"forks": 43, "observed_at": "2026-08-28T04:05:47.689998+00:00", "stars": 1875}, "canonical_url": "https://ross.abutalabs.com/products/universal-gms-doze", "card": {"archived": false, "artifact_type": "application", "description": "Patches Google Play services app and certain processes/services to be able to use battery optimization", "domain": ["android-tools", "privacy", "developer-tools"], "enriched": true, "function": ["configuration-management", "cli", "developer-tools"], "health_score": 30, "homepage": null, "language": "Shell", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["gloeyisk/universal-gms-doze"], "name": "gloeyisk/universal-gms-doze", "platform": ["cli"], "pushed_at": "2024-11-28T16:33:25+00:00", "repo": "gloeyisk/universal-gms-doze", "stars": 1875, "tags": ["magisk-module", "kernelsu", "apatch", "battery-optimization", "google-play-services", "root", "shell-script", "android"], "topics": [], "urls": [], "use_cases": ["stop google play services from draining battery", "apply doze battery optimization to gms", "reduce background battery usage on rooted android", "patch gms to allow battery optimization", "fix delayed notifications after optimizing gms", "check whether play services is whitelisted from doze"], "what_it_is": "A Magisk/KernelSU/APatch module that patches Google Play services so it can be put under Android's battery optimization (Doze). It is distributed as a shell-script-based root module for rooted Android devices running API 23 or later.", "when_to_avoid": ["your device is not rooted or you cannot use Magisk/KernelSU/APatch", "you rely on features that break when Play services is optimized, such as instant push notifications or Find My Device", "you want a GUI app rather than a root module with command-line troubleshooting"], "when_to_choose": ["you have a rooted Android device with Magisk, KernelSU, or APatch and want Play services to respect Doze battery optimization", "you want a lightweight shell-based module with CLI utilities to verify optimization status", "you need support for Android 6.0 (API 23) and later"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/universal-gms-doze", "repo": "gloeyisk/universal-gms-doze", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.689998+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.269669+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37565c953f9a40404666defc168d52bb6e7352ee9aea8c3890ed3af17f18ab29", "fetched_at": "2026-08-28T04:05:47.689998+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gloeyisk/universal-gms-doze"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.689998+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.269669+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37565c953f9a40404666defc168d52bb6e7352ee9aea8c3890ed3af17f18ab29", "fetched_at": "2026-08-28T04:05:47.689998+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gloeyisk/universal-gms-doze"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.269669+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37565c953f9a40404666defc168d52bb6e7352ee9aea8c3890ed3af17f18ab29", "fetched_at": "2026-08-28T04:05:47.689998+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gloeyisk/universal-gms-doze"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.689998+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.689998+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.689998+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.269669+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37565c953f9a40404666defc168d52bb6e7352ee9aea8c3890ed3af17f18ab29", "fetched_at": "2026-08-28T04:05:47.689998+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gloeyisk/universal-gms-doze"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.689998+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.689998+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.269669+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37565c953f9a40404666defc168d52bb6e7352ee9aea8c3890ed3af17f18ab29", "fetched_at": "2026-08-28T04:05:47.689998+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gloeyisk/universal-gms-doze"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.689998+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.689998+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.689998+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.269669+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37565c953f9a40404666defc168d52bb6e7352ee9aea8c3890ed3af17f18ab29", "fetched_at": "2026-08-28T04:05:47.689998+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gloeyisk/universal-gms-doze"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.689998+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.689998+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.269669+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37565c953f9a40404666defc168d52bb6e7352ee9aea8c3890ed3af17f18ab29", "fetched_at": "2026-08-28T04:05:47.689998+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gloeyisk/universal-gms-doze"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.269669+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37565c953f9a40404666defc168d52bb6e7352ee9aea8c3890ed3af17f18ab29", "fetched_at": "2026-08-28T04:05:47.689998+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gloeyisk/universal-gms-doze"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.269669+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37565c953f9a40404666defc168d52bb6e7352ee9aea8c3890ed3af17f18ab29", "fetched_at": "2026-08-28T04:05:47.689998+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gloeyisk/universal-gms-doze"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:14:46.269669+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "37565c953f9a40404666defc168d52bb6e7352ee9aea8c3890ed3af17f18ab29", "fetched_at": "2026-08-28T04:05:47.689998+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gloeyisk/universal-gms-doze"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2190, "days_push": 643, "days_rel": 643, "gap_med": null, "n_releases_24m": 1}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}