XPrivacyLua
Really simple to use privacy manager for Android 6 and later (successor of XPrivacy).
This project is not supported anymore
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 (unsupported though).
XPrivacyLua is supported for smartphones and tablets only. XPrivacyLua is not supported on emulators.
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-12: download, install, and activate LSPosed
or EdXposed - Download, install, and activate XPrivacyLua
LSPosed: please make sure that any app you want to restrict is in the 'scope' of LSposed.
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 with Island, etc is not supported.
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:
- LuaJ. Copyright 2007-2013 LuaJ. All rights reserved. See license.
- Glide. Copyright 2014 Google, Inc. All rights reserved. See license.
- Android Support Library. Copyright (C) 2011 The Android Open Source Project. See license.
License
GNU General Public License version 3
Copyright (c) 2017-2021 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