COPG v5.9.0
Global IMEI — device-wide IMEI spoof (new PRO feature)
- One IMEI for the whole device. A new Global IMEI panel (Settings → Global Hooks) makes every app — plus Settings, the dialer and
*#06#— read the same fake IMEI. Unlike the per-app IMEI toggle, this hooks the telephony service itself (com.android.phone), so it applies device-wide. Set the SIM 1 IMEI and, on dual-SIM, a separate SIM 2 IMEI. - App-invisible — no anti-cheat risk. Because the hook lives in a separate system process apps can't scan, it's invisible to in-app anti-cheat / integrity memory checks — so unlike GPU / Mock-Location / per-app IMEI there is no red "use at your own risk" gate. It is still device-wide (it changes the IMEI for every app, including banking, until you turn it off) and not tower-level — the modem still reports the real IMEI to the network.
- PRO. Locked on the free tier. Leave the fields blank to keep the real IMEI; toggling it restarts the telephony service to apply.
Hide VPN — pairip-safe mode is back (per-app, doesn't crash LSPosed)
- The main Hide VPN is now the safe one. v5.8.0 removed the system-service VPN hide because the old global version clashed with LSPosed and could crash it (both patched the same core runtime). It's back — now scoped to the app by UID and built on a different hook engine that coexists with LSPosed by design (no runtime clash), so it no longer crashes LSPosed. Hide VPN hooks the connectivity source in the system and hands only that app a VPN-stripped network. Nothing loads into the app's own process, so anti-tamper / integrity scans can't see it and banking / pairip apps don't crash — this is the one to use for banking and hardened apps. Free, works on all CPUs — reboot after enabling.
- Aggressive (in-app) is now a sub-option. The older in-app hook — which strips the VPN from inside the app and also covers a native
getifaddrsread — moved to a nested Aggressive (in-app) toggle under Hide VPN, behind a red "use at your own risk" warning. It stays resident and detectable (anti-cheat can ban, pairip apps crash), so use it only for apps the safe layer doesn't fully cover. arm64 / arm32. - What each covers. Safe mode covers the modern
getNetworkCapabilities → hasTransport(VPN)check; the aggressive sub adds the legacy network-type and native-interface paths.
Per-app Advertising ID (GAID) spoof — new PRO feature
- Give each app its own Google Advertising ID. Alongside the device-wide Advertising ID control in Settings, you can now spoof the GAID per app from the package editor. Every app you turn it on for reads its own distinct advertising ID — made for ad / reward / referral / multi-account apps where each install should look like a different device.
- Automatic per-app ID, or pin your own. Turn it on and the app gets a stable ID derived from its own package — nothing to fill in. Or type / generate an exact UUID to pin a specific value, or to re-roll that app's ID whenever you want.
- Resident — use it with care. Like GPU spoofing and Mock-Location hide, this hook stays mapped in the app's memory while it runs, so a strict anti-cheat CAN detect it and may ban you. It sits behind a red "use at your own risk" confirmation and should never be used on anti-cheat games. Runs on arm64 and arm32; hidden on x86.
- PRO feature. Unlocks with a COPG PRO license alongside GPU / Android ID / COW / SIM / Mock-Location. On the free tier the row shows a lock. The device-wide Advertising ID reset in Settings stays free.
Widevine (DRM) level spoof — new PRO feature
- Report a higher DRM security level. A new DRM / Widevine toggle in the package editor makes an app read your device's Widevine security level as L1 (or an exact level you pick — L1 / L2 / L3), and lets you spoof the Widevine device ID and system ID too. Useful for apps that gate features on, or simply display, the DRM level.
- Fools the check, not the content pipeline. This changes what the app reads for the security level — it does not grant real hardware HD DRM (that's decided server-side by provisioning). Treat it as a display / gate spoof.
- Resident — use it with care. Like GPU and Advertising-ID spoofing, this hook stays mapped while the app runs, so a strict anti-cheat CAN detect it. It sits behind a red "use at your own risk" confirmation and should never be used on anti-cheat games. PRO, arm64 and arm32.
IMEI / device ID spoof — new PRO feature
- Fake the IMEI per app. A new IMEI toggle makes an app read a fake IMEI / device ID instead of your real one. Turn it on for an automatic, Luhn-valid IMEI derived per app (stable for that app), or type an exact 15-digit IMEI to pin one. Dual-SIM devices can set a second IMEI for slot 2.
- Only where the app can actually read it. Since Android 10 a normal app needs a privileged permission to read the IMEI at all, so most apps already can't — this covers the apps that legitimately can (with phone permission) and makes them see the fake value instead of the real one.
- Resident — use it with care. This hook stays mapped while the app runs, so a strict anti-cheat CAN detect it — behind the red "use at your own risk" confirmation, never for anti-cheat games. PRO, arm64 and arm32.
Android ID & Advertising ID — simpler, no device seed
- No more seed fields. The per-device Android ID seed field has been removed (and the new Advertising ID never needed one). Each app now automatically gets its own Android ID / Advertising ID derived from the app itself, so two apps never share one — matching how real Android works. One less thing to set up.
- Still pin an exact value. You can always type or generate an exact Android ID / Advertising ID for a single app — to match another phone, or to re-roll that app's identity.
- Old profiles keep working. Device profiles that still carry an old Android ID seed load fine; the seed is simply ignored and the per-app value is used instead. That app's Android ID may change once, since it no longer mixes in the old seed.
Fixes
- Global IMEI: SIM 2 no longer mirrors SIM 1.
*#06#and dual-SIM apps now show the correct per-slot IMEI. - Global IMEI: PRO license now recognised in the phone process. A valid license is no longer rejected for the telephony hook.
- DRM device ID shown in Base64. The Widevine device-ID field now uses the same Base64 format DRM-info apps display, so what you set matches what the app shows.
Build Date: 2026-07-20 21:11:18 UTC
Branch: licensing
Commit: 31b9e0b
Read the full changelog for all versions in changelog.md