/XPrivacyLua

Really simple to use privacy manager for Android 6.0 Marshmallow and later

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

XPrivacyLua

Really simple to use privacy manager for Android 6-10 (successor of XPrivacy).

Revoking Android permissions from apps often let apps crash or malfunction. XPrivacyLua solves this by feeding apps fake data instead of real data.

Features

  • Simple to use
  • Manage any user or system app
  • Extensible
  • Multi-user support
  • Free and open source

Restrictions

  • Determine activity (fake unknown activity, see here)
  • Get applications (hide installed apps and widgets)
  • Get calendars (hide calendars)
  • Get call log (hide call log)
  • Get contacts (hide contacts with the pro option to allow (non) starred contacts, hide blocked numbers)
  • Get location (fake location, hide NMEA messages)
  • Get messages (hide MMS, SMS, SIM, voicemail)
  • Get sensors (hide all available sensors)
  • Read account name (fake name, mostly e-mail address)
  • Read clipboard (fake paste)
  • Read identifiers (fake build serial number, Android ID, advertising ID, GSF ID)
  • Read notifications (fake status bar notifications)
  • Read network data (hide cell info, Wi-Fi networks, fake Wi-Fi network name)
  • Read sync data (hide sync data)
  • Read telephony data (fake IMEI, MEI, SIM serial number, voicemail number, etc)
  • Record audio (prevent recording)
  • Record video (prevent recording)
  • Send messages (prevent sending MMS, SMS, data)
  • Use analytics (Fabric/Crashlytics, Facebook app events, Firebase Analytics, Google Analytic, Mixpanel, Segment)
  • Use camera (fake camera not available and/or hide cameras)
  • Use tracking (fake user agent for WebView only, Build properties, network/SIM country/operator)

The tracking restrictions will work only if the code of the target app was not obfuscated. The other restrictions will work always.

Hide or fake?

  • Hide: return empty list
  • Fake: return empty or fake value

It is possible to add custom restriction definitions, see this FAQ for details.

You can see all technical details here.

Notes

  • Some apps will start the camera app to take pictures. This cannot be restricted and there is no need for this, because only you can take pictures in this scenario, not the app.
  • Some apps will use OpenSL ES for Android to record audio, an example is WhatsApp. Xposed cannot hook into native code, so this cannot be prevented.
  • The get applications restriction will not restrict getting information about individual apps for stability and performance reasons.
  • The telephony data restriction will result in apps seeing a fake IMEI. However, this doesn't change the IMEI address of your device.
  • Restricting activity recognition (location) results for recent Google Maps versions and possibly other apps in the error ... java.lang.ClassNotFoundException ... for unknown reasons.

Compatibility

XPrivacyLua is supported on Android 6.0 Marshmallow and later. For Android 4.0.3 KitKat to Android 5.1.1 Lollipop you can use XPrivacy.

XPrivacyLua was tested with the original Xposed framework only.

Hooking com.google.android.gms.location.ActivityRecognitionResult.extractResult (restriction Determine activity) is known to fail with script:25 vm error: java.lang.ClassNotFoundException: com.google.android.gms.location.DetectedActivity and script:28 attempt to call nil for some apps, like Google Maps and NetFlix, for yet unknown reasons.

Installation

  • Install Magisk
  • Android 6-7: download, install, and activate Xposed
  • Android 8-10: download, install, and activate EdXposed
  • Android 11: XPrivacyLua mostly works, but is not supported yet. See here about installing EdXposed.
  • Download, install, and activate XPrivacyLua

Certificate fingerprints:

  • MD5: 42:93:4F:A4:D5:AC:53:7B:04:97:3B:29:A6:6E:7B:B3
  • SHA1: 10:62:0A:E9:61:D7:88:54:F6:C9:CD:87:2C:43:88:23:28:49:C7:99
  • SHA256: 5E:69:9C:5D:AF:61:2C:AB:71:3A:35:BB:38:7C:F6:A8:86:8C:A0:DD:5D:CE:B4:CE:C1:53:8E:82:65:21:95:77

Frequently Asked Questions

See here for a list of often asked questions.

Support

Only the XPrivacyLua version released in the Xposed repository is supported.

XPrivacyLua is supported with the original Xposed framework only.

XPrivacyLua with Island is not supported.

  • For support on Xposed, please go here
  • For support on XPrivacyLua, please go here

Donations

See here about how you can donate.

Contributing

Documentation

Contributions to this document and the frequently asked questions are prefered in the form of pull requests.

Translations

  • You can translate the in-app texts of XPrivacyLua here
  • You can download the in-app texts of XPrivacyLua Pro for translation here
  • If your language is not listed, please send a message through this contact form

Source code

Building XPrivacyLua from source code is straightforward with Android Studio. It is expected that you can solve build problems yourself, so there is no support on building.

Source code contributions are prefered in the form of pull requests. Please contact me first to tell me what your plans are.

Please note that you agree to the license below by contributing, including the copyright.

Attribution

XPrivacyLua uses:

License

GNU General Public License version 3

Copyright (c) 2017-2018 Marcel Bokhorst. All rights reserved

XPrivacyLua is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

XPrivacyLua is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with XPrivacyLua. If not, see https://www.gnu.org/licenses/.

Trademarks

Android is a trademark of Google Inc. Google Play is a trademark of Google Inc