[APP][XPOSED][6.0+] XPrivacyLua - Android privacy manager

Search This thread

~SilverLad~

Senior Member
Jun 13, 2011
182
83
Girona
Hi all,

It is the first time in all the years I have been using Xprivacy, that I decided to really go as deep as I can, even blocking system apps/functions. After a lot of trial an error - using a "trick" that Marcel @M66B told me the last time - I have calls and WiFi working (as well as pretty much everything else), except for 4G data, which I can't seem to find what's blocking it. I know is a long shot, but: would any of you happen to have a list of the functions that one must never block in order for a smartphone to have all the basic functions working?

Many thanks in advance.
 

dope77

Senior Member
Aug 8, 2018
320
76
Hi all,

It is the first time in all the years I have been using Xprivacy, that I decided to really go as deep as I can, even blocking system apps/functions. After a lot of trial an error - using a "trick" that Marcel @M66B told me the last time - I have calls and WiFi working (as well as pretty much everything else), except for 4G data, which I can't seem to find what's blocking it. I know is a long shot, but: would any of you happen to have a list of the functions that one must never block in order for a smartphone to have all the basic functions working?

Many thanks in advance.
I suggest you don't restrict system apps and use afwall instead. Afwall is a firewall that can be used with a vpn, anyway just block system apps from accessing internet instead of restricting system apps and spending hours trying to figure out whuch restriction is causing problems. I only restrict system apps that i allowed to access internet (google play store /services).
 
  • Like
Reactions: ~SilverLad~

Fif_

Senior Member
Jun 5, 2013
1,218
1,347
Google Nexus 10
Google Nexus 4
Hi all,

It is the first time in all the years I have been using Xprivacy, that I decided to really go as deep as I can, even blocking system apps/functions. After a lot of trial an error - using a "trick" that Marcel @M66B told me the last time - I have calls and WiFi working (as well as pretty much everything else), except for 4G data, which I can't seem to find what's blocking it. I know is a long shot, but: would any of you happen to have a list of the functions that one must never block in order for a smartphone to have all the basic functions working?

Many thanks in advance.
Don't block system apps for a start.
Define what "not having 4G data" means.
Is that not not showing in the UI, not connecting, connecting but not functional, or something else?
 
  • Like
Reactions: ~SilverLad~

~SilverLad~

Senior Member
Jun 13, 2011
182
83
Girona
I suggest you don't restrict system apps and use afwall instead. Afwall is a firewall that can be used with a vpn, anyway just block system apps from accessing internet instead of restricting system apps and spending hours trying to figure out whuch restriction is causing problems. I only restrict system apps that i allowed to access internet (google play store /services).

I hear you, but that is the thing: I have been running like that for many years (AFW, Xprivacy + VPN) - only blocking "3rd party" apps, but this time I want to go as deep as I can, and also block as many "leaky" system apps an processes. Appreciate the response, but I guess I will just keep trying for a bit longer... Cheers
 

~SilverLad~

Senior Member
Jun 13, 2011
182
83
Girona
Don't block system apps for a start.
Define what "not having 4G data" means.
Is that not not showing in the UI, not connecting, connecting but not functional, or something else?
As I was saying to the previous reply, that is basically the whole point (hence why I was originally asking as to whether somebody might have gone through the process already and had an XPrivacy backup I could use): I DO want to block certain system apps and functions (at least as many "non-required" as I can). It basically means some Telephony and/or Network function currently blocked is not allowing the transmission of data nor showing 3G/4G icons - although it doesn't affect voice calls or data via WiFi (for which I do get the icon, connection and transmission). Appreciate the response, but I guess I will just keep trying for a bit longer. I'll start unblocking processes in block, and see what changes I identify...
 

dope77

Senior Member
Aug 8, 2018
320
76
As I was saying to the previous reply, that is basically the whole point (hence why I was originally asking as to whether somebody might have gone through the process already and had an XPrivacy backup I could use): I DO want to block certain system apps and functions (at least as many "non-required" as I can). It basically means some Telephony and/or Network function currently blocked is not allowing the transmission of data nor showing 3G/4G icons - although it doesn't affect voice calls or data via WiFi (for which I do get the icon, connection and transmission). Appreciate the response, but I guess I will just keep trying for a bit longer. I'll start unblocking processes in block, and see what changes I identify...
Check the log in the companion app. Turn on 4g then go check the log and see what was the last app/service that tried to do something related to 4g and unblock it.
 

~SilverLad~

Senior Member
Jun 13, 2011
182
83
Girona
Check the log in the companion app. Turn on 4g then go check the log and see what was the last app/service that tried to do something related to 4g and unblock it.
I did that already too, but I guess some of the blocked processes are stopping the others from even starting and they are not getting registered - I have been acting upon those that show up in the log, and have also applied "notify on restricion" flags to quite a few of them, but no luck so far. I will keep going though...
 

EotT

Senior Member
Jul 29, 2013
128
63
An exception occurs when accessing the location. I'm using latest version (1.31) on Android 12. Below is the exception from the xprivacy notification (when using no specific location), and here is the stacktrace generated by android (when using a set location): https://paste.crdroid.net/wacTbU


Code:
Privacy.Bundle.get/location

Exception:
org.luaj.vm2.LuaError: script:33 attempt to call nil
at org.luaj.vm2.LuaValue.checkmetatag(SourceFile:3)
at org.luaj.vm2.LuaValue.callmt(SourceFile:1)
at org.luaj.vm2.LuaValue.call(SourceFile:2)
at org.luaj.vm2.LuaClosure.execute(SourceFile:107)
at org.luaj.vm2.LuaClosure.onInvoke(SourceFile:4)
at org.luaj.vm2.LuaClosure.invoke(SourceFile:1)
at org.luaj.vm2.LuaValue.invoke(SourceFile:4)
at eu.faircode.xlua.XLua$5.execute(SourceFile:16)
at eu.faircode.xlua.XLua$5.afterHookedMethod(SourceFile:1)
at de.robv.android.xposed.XposedBridge$AdditionalHookInfo.callback(Unknown Source:147)
at LSPHooker_.get(Unknown Source:11)
at com.facebook.react.bridge.Arguments.fromBundle(Arguments.java:3)
at com.facebook.react.bridge.Arguments.fromBundle(Arguments.java:16)
at com.facebook.react.ReactInstanceManager.attachRootViewToInstance(ReactInstanceManager.java:16)
at com.facebook.react.ReactInstanceManager.attachRootView(ReactInstanceManager.java:7)
at com.facebook.react.ReactRootView.attachToReactInstanceManager(ReactRootView.java:8)
at com.facebook.react.ReactRootView.onMeasure(ReactRootView.java:27)
at android.view.View.measure(View.java:25833)
at androidx.recyclerview.widget.RecyclerView$p.measureChildWithMargins(RecyclerView.java:14)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:11)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:9)
at androidx.recyclerview.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:7)
at androidx.recyclerview.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:2)
at androidx.recyclerview.widget.RecyclerView.scrollStep(RecyclerView.java:6)
at androidx.recyclerview.widget.RecyclerView.scrollByInternal(RecyclerView.java:5)
at androidx.recyclerview.widget.RecyclerView.onTouchEvent(RecyclerView.java:43)
at android.view.View.dispatchTouchEvent(View.java:14599)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3114)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2787)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:498)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1891)
at android.app.Activity.dispatchTouchEvent(Activity.java:4199)
at com.kubusapp.MainActivity.dispatchTouchEvent(MainActivity.kt:2)
at r.i.dispatchTouchEvent(WindowCallbackWrapper.java:1)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:456)
at android.view.View.dispatchPointerEvent(View.java:14858)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6449)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6245)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5723)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5780)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5746)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5911)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5754)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5968)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5727)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5780)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5746)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5754)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5727)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8707)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8658)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8627)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8830)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:259)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:239)
at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:8787)
at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:8916)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1037)
at android.view.Choreographer.doCallbacks(Choreographer.java:845)
at android.view.Choreographer.doFrame(Choreographer.java:772)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1022)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7877)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)


Package:
be.persgroep.android.news.mobilehln:10479

Method:
after public java.lang.Object android.os.BaseBundle.get(java.lang.String)

Arguments:
0: location (java.lang.String)

Return:
Location[privacy 0.000000,0.000000 et=0] (android.location.Location)
 

Oswald Boelcke

Senior Moderator / Moderator & RC-RT Committees
Staff member
Moderator Announcement

On request of OP @M66B the thread has been cleaned from posts that were not related to the topic of this thread. And on special request of OP, I've also removed his last two posts respectively PSA's.

Regards
Oswald Boelcke
Senior Moderator
 

Oswald Boelcke

Senior Moderator / Moderator & RC-RT Committees
Staff member
On special request by PM of OP, Marcel aka @M66B, I have to inform you as follows:
Can you please write in each XDA thread that the GitHub repos have been restored?
Marcel, I know you can't respond here but personally I hope that this isn't your final decision.
 

Oswald Boelcke

Senior Moderator / Moderator & RC-RT Committees
Staff member
Thread re-opened on request of OP @M66B who allowed me to share his PM with you:

Can you please open all threads again?

This is to give people a chance to discuss and to help each other. It doesn't mean I will resume development though.
 

VD171

Senior Member
Jun 21, 2012
2,684
2
1,945
127.0.0.1
LG K10
Samsung Galaxy J7
thanks.
two weeks ago I could fix it. I edited default hooks code that are related to installed app in XprivacyPro in privacy package.
interesting part is that I did not need using "getInstalledApplications" in hook list and my codes. As the developer (Marcel Bokhorst) did not use.

now I have another weird problem in "tracking hooks".
I'm sure the code is ok , because I wrote two these of hooks "Board - Model" and replace it to Privacy collection and worked. If it is needed I upload my JSON code.

All of these hooks have same template.

Code:
-- This file is part of XPrivacyLua.

-- 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 <http://www.gnu.org/licenses/>.

-- Copyright 2017-2019 Marcel Bokhorst (M66B)

function after(hook, param)
    local result = param:getResult()
    local name = hook:getName()
    local filtered = false
 
    if result == nil then
        return false
    end

    local fake = ''
    if name == 'Build.BOARD' then
        filtered=true
        fake='msm8960'
    elseif name == 'Build.BRAND' then
        filtered=true
        fake='xiaomi'
    elseif name== 'Build.DEVICE' then
        filtered=true
        fake='ken'
    elseif name == 'Build.PRODUCT' then
        filtered=true
        fake='hav_mido'
    elseif name== 'Build.BOOTLOADER' then
        filtered=true
        fake='unknown'
    elseif name== 'Build.ID' or 'Build.DISPLAY' then
        filtered=true
        fake='MRRM'
    elseif name== 'Build.FINGERPRINT' then
        filtered=true
        fake='Xiaomi/kenzo/kenzo:40.1/MMB29MK/V3.8.1.1.MHUCNDL:user/release-keys'
    elseif name== 'Build.ID' then
        filtered=true
        fake='PZQ1.110204.231'
    elseif name=='Build.MODEL' then
        filtered=true
        fake='Redmi Note 3'
    elseif name=='Build.PRODUCT' then
        filtered=true
        fake='mido'
    elseif name=='Build.DEBUG' then
        filtered=true
        fake='user'
    elseif name== 'Build.USER' then
        filtered=true
        fake='zeelog'
    elseif name== 'Build.TIME' then
        filtered=true
        fake='1698066734736'
    elseif name == 'WifiInfo.getSSID' then
        filtered=true
        fake='Irancell_Portable_4G'
    elseif name == 'WifiInfo.getBSSID' then
        filtered=true
        fake='99:c2:3e:48:31:ec'
    elseif name == 'Networkinterface.getHardwareAddress' then
        filtered=true
        fake='56:43:14:e4:38:7a'
    elseif name == 'Build.Hardware' then
        filtered=true
        fake='ken'
    end
 
        if filtered==true then
        param:setResult(fake)
        return true, result, fake
        end
end

You need understanding programming concepts at first . the language of programing is LUA.
Source : https://www.lua.org/pil/contents.html
then read them :

for writing custom hook:

for importing your customized script , you need pro version of Xprivacy.
in my opinion it is a bit harder to code LUA for hooking purpose without programming background.

Edited: I forgot to tell you , for better understanding codes , you can review default written code in pro version in "privacy" collection and see what happens in hooking.
Thanks for sharing.
Build.TIME has return type Long and not String.
Is there a way for converting String to Long or int ?

EDIT: Solved forcing String conversion using arithmetic operator or function tonumber:
Code:
    elseif name== 'Build.TIME' then
        filtered=true
        fake=tonumber('1698066734736')
Code:
    elseif name== 'Build.TIME' then
        filtered=true
        fake='1698066734736' + 0
 
Last edited:
  • Like
Reactions: nIMa_aZx

Top Liked Posts

  • There are no posts matching your filters.
  • 16
    Wanted to report that I've upgraded to Magisk 24.3 after sticking to 23.0 for a while because I've finally found an open-source variant of Shamiko that allows for using XPL hooks on apps that are on the deny list: Denylist Unmount, https://github.com/mywalkb/DenylistUnmount

    Setup:
    - Magisk 24.3
    - Zygisk on
    - Enforce Deny list OFF (this is critical) [1]
    - Add to the Denylist only sensitive applications (banking, etc but not Play Services) [2]

    - Magisk modules:
    - Universal SafetyNet Fix 2.2.1.
    - Denylist Unmount 0.2 from https://github.com/mywalkb/DenylistUnmount
    - Magisk Hide Props Config 6.1.2 (ONLY if running on non-stock ROM, eg. official LineageOS, this needs to be configured separately)
    - LSPosed for Zygisk 1.8.3
    - XPrivacyLua 1.31

    - LSPosed configuration
    - Enable XPrivacyLua module
    - Add every app that you are going to restrict to XPrivacyLua's scope.

    With that setup, I pass SafetyNet, sensitive apps do not detect Magisk while XPL hooks still operate, and GPay is working. On four different devices, running a mixture of Android 9 & 11, LOS and OOS.🎉

    Notes:
    [1] You need to keep Enforce Denylist off because Denylist Unmount automatically removes the Magisk mounts from Denylist apps. Note that other mounts performed by Magisk modules remain in scope, and XPL can function properly even on Denylist apps. If you were to turn enforcing on (not recommended), all Magisk mounts (including the modules') will be unmounted and XPL will stop working on Denylist apps.
    [2] Play Services are transparently modified by safetynet-fix and do not need to be added to Denylist. In fact, if you do, safetynet fix will remove them.
    7
    On or after July 12 the pro companion app will be removed from the Play store by Google because it uses the permission QUERY_ALL_PACKAGES. I am not going to try to provide a justification for this permission because Google will most likely reject it anyway because an app is not allowed to directly or indirectly have an effect on other apps, which is the whole purpose of XPrivacyLua.

    This means that the pro companion app will only be available outside of the Play store after July 12. Pro feature purchases will keep being recognized as long as the app is kept installed, but it won't be possible to install the app again after it has been removed from the Play store by Google.

    Note that it is not allowed to use Play store purchases without/outside of the Play store. So, I can't transfer or exchange a Play store purchase for anything else because it would mean violating the agreement I have with Google as a developer, which could have consequences for the other apps published in the Play store (FairEmail and NetGuard).
    6
    So on your site there will be update and possible to switch over to your version? And I hope you'll keep continue to maintenance the app. I can't image to live in android world without XPL and netguard. Now I'm trying fairmail free and it's damn good email app, soon I'll buy a full version (not using this mail 😁 or nickname). Your the best app developer I ever seen foooorr a long time (pure genius).
    Stay well and your girlfriend and have happy life.
    You can download the pro companion app here, but I am not allowed to exchange Play store purchases for anything else:

    5
    Can you explain your setup? Do you have XPL in both work and personal profiles or just one of them? What benefits does that bring?
    I'm using the two separate profiles like how they were designed to, to keep apps, data and usage of both profiles separate from each other. So each profile has its own telephone number, its own contact list and of course set of apps. With XPL installed in both profiles, I can use different privacy settings for the apps in each profile. For instance, WhatsApp in the work profile has access to all contacts in the work contact list, while in the personal profile WhatsApp only sees the starred contacts in the personal list. That's an advantage over the Dual Apps method you probably know from MIUI or other ROMs, where apps get access to the same contact lists, the same calendar, etc.

    LSposed supports this very well, when opening the apps list in the scope for XPL, the personal and work apps are listed separately.
    5
    @Fif_ do you think your Automate flow can be transferred to Tasker? I can't use it because it's mpre than 30 blocks and I can't buy the full version of Automate without a Google account.
    I have created this minimal task to auto enable new package in xlua
  • 309
    XPrivacyLua

    banner_play_store.png


    Really simple to use privacy manager for Android 6.0 Marshmallow and later (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

    See here for all details, including installation instructions and download link.

    Please read the frequently asked questions before asking a question.

    This XDA thread is about using the latest version of XPrivacyLua. Off topic comments are allowed as long they are related to XPrivacyLua and are in the general interest of the followers of this thread, but anything not related to privacy is not allowed.

    If XPrivacyLua doesn't work and/or when "module not running or updated" is shown, this is almost always caused by an Xposed problem.

    Discussions about purchases are not allowed here, please contact me via here instead.

    XPrivacyLua is being maintained and community supported, but new features won't be added anymore.

    Custom hook definitions will always be part of XPrivacyLua, but there will be community support only. This means that I won't respond to questions about defining custom hooks anymore. See this thread for the reasons.

    If you value your privacy, please consider to support this project with a donation or by purchasing pro features.

    XPrivacyLua is not a permission manager, but a privacy manager. XPrivacyLua doesn't block things and doesn't revoke permissions, but does replace real data by fake data. This means you can grant Android permissions to an app and still let XPrivacyLua prevent the app from seeing privacy sensitive data. Revoking permissions can result in an app refusing to work and/or to crash. However, replacing real by fake data generally doesn't let an app crash.

    Currently restrictions are quite crude because they mostly replace real data by no data. For example restricting the contacts app from getting contacts will result in an empty contact list. In the near future it might be made possible to select the data an app may see, for example just one group of contacts.

    About feature requests and bug reports:

    The goal is to have a tool that can properly protect the privacy of many in the near future. However, it isn't paid work, so I do whatever I like whenever I like it.

    You can request features in this XDA forum. I will read them, but I will not respond to them and they might or might not be implemented. If I know for sure something will not be implemented, I will let you know.

    You can report any problem you have here. There will be no issue tracker on GitHub.

    For now I have decided to not implement restrictions that are useful to prevent tracking only. There are simply too many data items that can be used for tracking and it would take too much time to develop restrictions for all these data items.

    The basic idea is to restrict only things that 'define' you, so which contacts you have, where you are, which apps you use, etc.

    Maybe we can widen the definition of things that the core of XPL covers to "What defines you, and what can be used to spie on you"? This would include camera/audio, but not tracking.

    XPrivacyLua is pretty feature complete and will be maintained and supported and when there is a need new hook definitions will be added to better protect your privacy. For the rest this FAQ applies:

    https://github.com/M66B/XPrivacyLua/blob/master/FAQ.md#FAQ4

    As said before, development will also depend on Xposed development, which is just minimal unfortunately.

    XDA thanks and donations are appreciated.

    XPrivacyLua is supported with Xposed only. There is no support for VirtualXposed and TaiChi.
    68
    I have just released beta version 0.5 in the Xposed repository.

    The XPrivacyLua framework and user interface seems to be stable enough to call this a beta release.

    Besides several bug fixes and improvements two new restrictions were added:
    • Read account name, which mostly holds your e-mail address and will be replace by '[email protected]' when restricted
    • Read clipboard, which will be replaced by the text 'Private' when restricted

    Furthermore the ability to restrict Android system (be careful!) and to restrict system apps was added. It is possible to restrict all of these individually (XPrivacy could not do that).

    Be sure to take a look at the help page in the app again (use the ?-icon), since there were some useful hints added.

    If you appreciate what I am building here, please let me know by means of an XDA thanks and/or a donation, so that I don't get the feeling 'What am I doing this for?'.
    59
    I have just released alpha version 0.12 in the Xposed repository.

    This version has been redesigned for Android Oreo compatibility. The user interface and the restrictions work properly for me, but be aware that a lot has been changed on the inside ("it is bigger on the inside", lol), also for earlier Android versions. There is one thing I know of that needs improving and that is that the user interface might be updated too often with a lot of restrictions, which might cause delays and hangs. I will look into this tomorrow.

    This change was necessary, but it was a lot of work, so XDA thanks and donations are appreciated.
    56
    I have just released beta version 0.25 in the Xposed repository.

    Changelog:

    With this release XPrivacyLua restriction's can be compared with XPrivacy's. There are now over 100 restriction definitions!

    XDA thanks and donations are appreciated.
    53
    @CHEF-KOCH You have been given enough time to respond here. Now I just think it is pretty cowardly to write critical about XPrivacyLua, but not to tell what can actually be improved, especially because you were invited to do so.

    I still like to hear how XPrivacyLua can be improved, but I don't want to hear what is wrong with XPrivacyLua. You'll need to keep the scope of XPrivacyLua in mind (in short: privacy, not security), see the opening post and previous discussions about this for more information.

    Also, if you really know better, I like to see an original work from your hands to prove that. Actions speak louder than words.

    As it is now, you are discouraging one of the few people in the world who really did something substantial to improve privacy on Android. And don't go talking about VPNs, TOR, etc because your private information, like your contacts, will still leak.

    I also think you are pretty ungrateful for what I did so far.

    To others: if you see someone reference one of his blogs, please reference this comment in response.

    Edit: if you agree with this, please add an XDA thanks to this comment, so it will show up in the right column as a reference for others.