mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-12-17 11:54:26 -05:00
a9f44dee41
These must all be strings. Sadly meant this likely hasn't worked for years. :\ Signed-off-by: Tad <tad@spotco.us>
115 lines
7.2 KiB
Plaintext
115 lines
7.2 KiB
Plaintext
It turns out some ad/analytics SDKs used by various proprietary Android apps can be disabled/kneecapped by adding meta-data entries to the apps AndroidManifest
|
|
In order for an app to read its meta-data entries from its own AndroidManifest it actually has to go through the getPackageManager() call
|
|
This means we can change the system package parser and simply add these variables to every app
|
|
This would hopefully make usage of proprietary apps more private, granted they are still proprietary and can very well simply ignore these
|
|
|
|
A simple app was created to verify the expected
|
|
05-21 05:24:44.557 4973 4973 D MDT : firebase_analytics_collection_enabled:false
|
|
and it does indeed work!
|
|
|
|
core/java/android/content/pm/PackageParser.java
|
|
parseMetaData()
|
|
line 5526 if (data == null) {
|
|
src/com/android/settings/SecuritySettings.java
|
|
res/xml/security_settings_misc.xml
|
|
<SwitchPreference
|
|
android:key="hamper_analytics"
|
|
android:persistent="false"
|
|
android:title="@string/hamper_analytics"
|
|
android:summary="@string/hamper_analytics_summary"/>
|
|
res/values/strings.xml
|
|
<string name="hamper_analytics">Hamper analytics SDKs</string>
|
|
<string name="hamper_analytics_summary">Aggressively breaks various proprietary tracking SDKs by unsetting their API keys. May cause low-quality proprietary apps to crash.</string>
|
|
|
|
Keywords to find keys
|
|
"meta-data android:name" analytics
|
|
"meta-data android:name" app id
|
|
"meta-data android:name" disable
|
|
"meta-data android:name" gdpr
|
|
"meta-data android:name" location
|
|
"meta-data android:name" opt-out
|
|
"meta-data android:name" private key
|
|
"meta-data android:name" secret key
|
|
|
|
Core - Currently Implemented
|
|
data.putString("android.webkit.WebView.MetricsOptOut", "true");
|
|
data.putString("batch_opted_out_by_default", "true");
|
|
data.putString("com.ad4screen.no_geoloc", "true");
|
|
data.putString("com.facebook.sdk.AutoLogAppEventsEnabled", "false");
|
|
data.putString("com.mixpanel.android.MPConfig.UseIpAddressForGeolocation", "false");
|
|
data.putString("com.webengage.sdk.android.location_tracking", "false");
|
|
data.putString("firebase_analytics_collection_deactivated", "true");
|
|
data.putString("firebase_analytics_collection_enabled", "false");
|
|
data.putString("firebase_crash_collection_enabled", "false");
|
|
data.putString("firebase_performance_collection_deactivated", "true");
|
|
data.putString("google_analytics_adid_collection_enabled", "false");
|
|
data.putString("google_analytics_ssaid_collection_enabled", "false");
|
|
data.putString("google_analytics_default_allow_ad_personalization_signals", "false");
|
|
data.putString("com.ad4screen.tracking_mode", "Restricted");
|
|
data.putString("com.sprooki.LOCATION_SERVICES", "disable");
|
|
|
|
Settings
|
|
data.putString("com.bugsnag.android.AUTO_CAPTURE_SESSIONS", "false");
|
|
data.putString("com.bugsnag.android.ENABLE_EXCEPTION_HANDLER", "false");
|
|
data.putString("com.bugsnag.android.PERSIST_USER_BETWEEN_SESSIONS", "false");
|
|
data.putString("com.bugsnag.android.SEND_THREADS", "false");
|
|
data.putString("com.followanalytics.message.inapp.enable", "false");
|
|
data.putString("com.followanalytics.message.push.enable", "false");
|
|
data.putString("com.mixpanel.android.MPConfig.AutoShowMixpanelUpdates", "false");
|
|
data.putString("com.mixpanel.android.MPConfig.DisableAppOpenEvent", "true");
|
|
data.putString("com.mixpanel.android.MPConfig.DisableDecideChecker", "true");
|
|
data.putString("com.mixpanel.android.MPConfig.DisableFallback", "true");
|
|
data.putString("com.mixpanel.android.MPConfig.DisableGestureBindingUI", "true");
|
|
data.putString("com.mixpanel.android.MPConfig.DisableViewCrawler", "true");
|
|
data.putString("com.mixpanel.android.MPConfig.TestMode", "true");
|
|
data.putString("engagement:adm:register", "false");
|
|
data.putString("engagement:locationReport:lazyArea", "false");
|
|
data.putString("engagement:locationReport:realTime:background", "false");
|
|
data.putString("engagement:locationReport:realTime", "false");
|
|
data.putString("engagement:locationReport:realTime:fine", "false");
|
|
data.putString("engagement:log:test", "false");
|
|
data.putString("engagement:reportCrash", "false");
|
|
data.putString("FYBEnableSSLRewardedVideo", "true");
|
|
data.putString("mceSessionEnabled", "false");
|
|
data.putString("tapjoy.disable_video_offers", "true");
|
|
data.putString("CLEVERTAP_USE_GOOGLE_AD_ID", "0")
|
|
data.putString("engagement:connection:delay", "2629800");
|
|
|
|
API Keys
|
|
String apiFillerValue = "";
|
|
//String apiFillerValue = "DO_NOT_TRACK";
|
|
data.putString("apptentive_api_key", apiFillerValue);
|
|
data.putString("apptentive_key", apiFillerValue);
|
|
data.putString("apptentive_signature", apiFillerValue);
|
|
data.putString("__ChartboostAir__AppID", apiFillerValue);
|
|
data.putString("__ChartboostAir__AppSignature", apiFillerValue);
|
|
data.putString("com.a0soft.gphone.aTrackDog.webURL", apiFillerValue);
|
|
data.putString("com.ad4screen.facebook_appid", apiFillerValue);
|
|
data.putString("com.ad4screen.partnerid", apiFillerValue);
|
|
data.putString("com.ad4screen.privatekey", apiFillerValue);
|
|
data.putString("com.ad4screen.senderid", apiFillerValue);
|
|
data.putString("com.appsee.ApiKey", apiFillerValue);
|
|
data.putString("com.blueshift.gcm_sender_id", apiFillerValue);
|
|
data.putString("com.bugsnag.android.API_KEY", apiFillerValue);
|
|
data.putString("com.crashlytics.ApiKey", apiFillerValue);
|
|
data.putString("com.facebook.sdk.ApplicationId", apiFillerValue);
|
|
data.putString("com.geouniq.appkey", apiFillerValue);
|
|
data.putString("com.google.android.awareness.API_KEY", apiFillerValue);
|
|
data.putString("com.indooratlas.android.sdk.API_KEY", apiFillerValue);
|
|
data.putString("com.indooratlas.android.sdk.API_SECRET", apiFillerValue);
|
|
data.putString("com.pushwoosh.appid", apiFillerValue);
|
|
data.putString("com.pushwoosh.senderid", apiFillerValue);
|
|
data.putString("com.upsight.app_token", apiFillerValue);
|
|
data.putString("com.upsight.public_key", apiFillerValue);
|
|
data.putString("co.paystack.android.PublicKey", apiFillerValue);
|
|
data.putString("FAID", apiFillerValue);
|
|
data.putString("io.branch.sdk.BranchKey", apiFillerValue);
|
|
data.putString("io.emma.SESSION_KEY", apiFillerValue);
|
|
data.putString("io.fabric.ApiKey", apiFillerValue);
|
|
data.putString("net.hockeyapp.android.appIdentifier", apiFillerValue);
|
|
data.putString("net.hockeyapp.android.appSecret", apiFillerValue);
|
|
data.putString("pilgrim_sdk_key", apiFillerValue);
|
|
data.putString("pilgrim_sdk_secret", apiFillerValue);
|
|
data.putString("presage_key", apiFillerValue);
|
|
data.putString("tkbl-api-key-0", apiFillerValue);
|