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

Search This thread

Namnodorel

Senior Member
Oct 26, 2015
379
285
88
Uhh... It is intended that the UI displays restrictions unpredictably/confusing- Did I understand that right?
Soo... if you don't want to address this now, would you accept a PR fixing it? Or is it really how you want it to be?
 

M66B

Recognized Developer
Aug 1, 2010
23,701
48,564
263
Uhh... It is intended that the UI displays restrictions unpredictably/confusing- Did I understand that right?
Soo... if you don't want to address this now, would you accept a PR fixing it? Or is it really how you want it to be?
I think, given that it is a filter, it is as transparant and simple as it can be. Why should the one filtered restriction in the drill down be hidden? When selecting multiple restrictions (currently not possible) you wouldn't want to hide the two filtered restrictions in the drill down as well.
 

popveneer

Member
Apr 5, 2016
11
1
0
XPL 0.26. Pro 0.5.

New error on app with course location restriction. Not occurring with 0.24 or 0.25.

Privacy.PlaceLikelihoodBuffer.get
java.lang.Throwable: Invalid return type got interface com.google.android.gms.location.places.PlaceLikelihood expected class java.lang.Objectat eu.faircode.xlua.Xposed.hookPackage(SourceFile:382)at eu.faircode.xlua.Xposed.access$200(SourceFile:65)at eu.faircode.xlua.Xposed$4.afterHookedMethod(SourceFile:274)at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:374)at android.app.LoadedApk.makeApplication(<Xposed>)at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5555)at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:360)at android.app.ActivityThread.handleBindApplication(<Xposed>)at android.app.ActivityThread.-wrap2(ActivityThread.java)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1596)at android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:154)at android.app.ActivityThread.main(ActivityThread.java:6316)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

Logcat available. Repeatable on my system. LG G6 7.0 Stock.
 

Namnodorel

Senior Member
Oct 26, 2015
379
285
88
I think, given that it is a filter, it is as transparant and simple as it can be. Why should the one filtered restriction in the drill down be hidden? When selecting multiple restrictions (currently not possible) you wouldn't want to hide the two filtered restrictions in the drill down as well.

Oh, that is what you are referring to. Yeah, that's totally fine. I thought you meant it was good that there is sometimes only one restriction shown when "all" is selected and sometimes all are shown when a filter is applied.
 

M66B

Recognized Developer
Aug 1, 2010
23,701
48,564
263
XPL 0.26. Pro 0.5.

New error on app with course location restriction. Not occurring with 0.24 or 0.25.

Code:
Privacy.PlaceLikelihoodBuffer.get
java.lang.Throwable: Invalid return type got interface com.google.android.gms.location.places.PlaceLikelihood expected class java.lang.Objectat eu.faircode.xlua.Xposed.hookPackage(SourceFile:382)at eu.faircode.xlua.Xposed.access$200(SourceFile:65)at eu.faircode.xlua.Xposed$4.afterHookedMethod(SourceFile:274)at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:374)at android.app.LoadedApk.makeApplication(<Xposed>)at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5555)at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:360)at android.app.ActivityThread.handleBindApplication(<Xposed>)at android.app.ActivityThread.-wrap2(ActivityThread.java)at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1596)at android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:154)at android.app.ActivityThread.main(ActivityThread.java:6316)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

Logcat available. Repeatable on my system. LG G6 7.0 Stock.
Actually this is one of the problems that was fixed in beta version 0.26, so make sure you have version 0.26 installed and did hard reboot your device.
 

M66B

Recognized Developer
Aug 1, 2010
23,701
48,564
263
Oh, that is what you are referring to. Yeah, that's totally fine. I thought you meant it was good that there is sometimes only one restriction shown when "all" is selected and sometimes all are shown when a filter is applied.
Maybe we don't understand each other, so do you mean this would be bugs?

To be clear: I cannot reproduce one restriction shown in the drill down when 'All' is selected with or without filtering. Can you?

Edit: I have found what is wrong: if you resume XPrivacy (for example coming from another app), this problem will occur.
 

Namnodorel

Senior Member
Oct 26, 2015
379
285
88
Yes. Exactly. Exact steps:
1. Open XPL,l obviously
2. Select a filter
3. Expand some of the apps listed. Some will show all restrictions when expanded, which isn't right.
4. Still with the filter, enable the restriction for an app. (If the expanded list of restrictions for this app showed more than one restriction before, these will now be gone, since the View has been updated)
5. Switch filter back to "all"
6. Expand the app you just enabled a restriction for. Now there will only be the restriction listed you just selected, even though the filter is on "all".

Edit: This might not work if you have to scroll down to the app with the restriction, I guess because that again properly updates the RecyclerView.
 
Last edited:

M66B

Recognized Developer
Aug 1, 2010
23,701
48,564
263
Yes. Exactly. Exact steps:
1. Open XPL,l obviously
2. Select a filter
3. Expand some of the apps listed. Some will show all restrictions when expanded, which isn't right.
4. Still with the filter, enable the restriction for an app. (If the expanded list of restrictions for this app showed more than one restriction before, these will now be gone, since the View has been updated)
5. Switch filter back to "all"
6. Expand the app you just enabled a restriction for. Now there will only be the restriction listed you just selected, even though the filter is on "all".

Edit: This might not work if you have to scroll down to the app with the restriction, I guess because that again properly updates the RecyclerView.
This should be fixed in the just released beta version 0.27.
 

Artieza

Senior Member
Mar 17, 2016
456
172
53
0.28 while search.

java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{39299d0 position=1 id=1609705454, oldPos=1, pLpos:1 scrap [attachedScrap] tmpDetached no parent} android.support.v7.widget.RecyclerView{2ac758b VFED.V... ......I. 0,91-720,631 #7f080085 app:id/rvApplication}, adapter:[email protected], layout:[email protected], context:[email protected]
at android.support.v7.widget.RecyclerView$Recycler.validateViewHolderForOffsetPosition(SourceFile:5447)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(SourceFile:5629)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(SourceFile:5589)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(SourceFile:5585)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(SourceFile:2231)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(SourceFile:1558)
at android.support.v7.widget.LinearLayoutManager.fill(SourceFile:1518)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(SourceFile:610)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep1(SourceFile:3670)
at android.support.v7.widget.RecyclerView.dispatchLayout(SourceFile:3434)
at android.support.v7.widget.RecyclerView.onLayout(SourceFile:3988)
at android.view.View.layout(View.java:17641)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.support.constraint.ConstraintLayout.onLayout(SourceFile:1514)
at android.view.View.layout(View.java:17641)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17641)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.support.v4.widget.DrawerLayout.onLayout(SourceFile:1172)
at android.view.View.layout(View.java:17641)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17641)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.support.v7.widget.ActionBarOverlayLayout.onLayout(SourceFile:443)
at android.view.View.layout(View.java:17641)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:17641)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
at android.view.View.layout(View.java:17641)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:729)
at android.view.View.layout(View.java:17641)
at android.view.ViewGroup.layout(ViewGroup.java:5575)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2346)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2068)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6344)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
at android.view.Choreographer.doCallbacks(Choreographer.java:686)
at android.view.Choreographer.doFrame(Choreographer.java:621)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
 

M66B

Recognized Developer
Aug 1, 2010
23,701
48,564
263
0.28 while search.

Code:
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{39299d0 position=1 id=1609705454, oldPos=1, pLpos:1 scrap [attachedScrap] tmpDetached no parent} android.support.v7.widget.RecyclerView{2ac758b VFED.V... ......I. 0,91-720,631 #7f080085 app:id/rvApplication}, adapter:[email protected], layout:[email protected], context:[email protected]
	at android.support.v7.widget.RecyclerView$Recycler.validateViewHolderForOffsetPosition(SourceFile:5447)
	at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(SourceFile:5629)
	at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(SourceFile:5589)
	at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(SourceFile:5585)
	at android.support.v7.widget.LinearLayoutManager$LayoutState.next(SourceFile:2231)
	at android.support.v7.widget.LinearLayoutManager.layoutChunk(SourceFile:1558)
	at android.support.v7.widget.LinearLayoutManager.fill(SourceFile:1518)
	at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(SourceFile:610)
	at android.support.v7.widget.RecyclerView.dispatchLayoutStep1(SourceFile:3670)
	at android.support.v7.widget.RecyclerView.dispatchLayout(SourceFile:3434)
	at android.support.v7.widget.RecyclerView.onLayout(SourceFile:3988)
	at android.view.View.layout(View.java:17641)
	at android.view.ViewGroup.layout(ViewGroup.java:5575)
	at android.support.constraint.ConstraintLayout.onLayout(SourceFile:1514)
	at android.view.View.layout(View.java:17641)
	at android.view.ViewGroup.layout(ViewGroup.java:5575)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
	at android.view.View.layout(View.java:17641)
	at android.view.ViewGroup.layout(ViewGroup.java:5575)
	at android.support.v4.widget.DrawerLayout.onLayout(SourceFile:1172)
	at android.view.View.layout(View.java:17641)
	at android.view.ViewGroup.layout(ViewGroup.java:5575)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
	at android.view.View.layout(View.java:17641)
	at android.view.ViewGroup.layout(ViewGroup.java:5575)
	at android.support.v7.widget.ActionBarOverlayLayout.onLayout(SourceFile:443)
	at android.view.View.layout(View.java:17641)
	at android.view.ViewGroup.layout(ViewGroup.java:5575)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
	at android.view.View.layout(View.java:17641)
	at android.view.ViewGroup.layout(ViewGroup.java:5575)
	at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741)
	at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585)
	at android.widget.LinearLayout.onLayout(LinearLayout.java:1494)
	at android.view.View.layout(View.java:17641)
	at android.view.ViewGroup.layout(ViewGroup.java:5575)
	at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
	at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
	at com.android.internal.policy.DecorView.onLayout(DecorView.java:729)
	at android.view.View.layout(View.java:17641)
	at android.view.ViewGroup.layout(ViewGroup.java:5575)
	at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2346)
	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2068)
	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6344)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874)
	at android.view.Choreographer.doCallbacks(Choreographer.java:686)
	at android.view.Choreographer.doFrame(Choreographer.java:621)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860)
	at android.os.Handler.handleCallback(Handler.java:751)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:154)
	at android.app.ActivityThread.main(ActivityThread.java:6186)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
	at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
With or without a restriction selected?
 

Top Liked Posts

  • 3
    I tried the clipboard and recorded it on WeChat, but Suning did not. . . .

    I found this error code
    Code:
    04-10 11:45:26.389  5323  5323 I EdXposed: Riru hooks installed
    04-10 11:45:26.452  5323  5323 I EdXposed: ART hooks installed
    04-10 11:45:26.522  5311  5311 I EdXposed-Bridge: XLua.Xposed Loaded com.android.traceur:10090
    04-10 11:45:26.532  5323  5323 I EdXposed: Loading modules for com.suning.mobile.ebuy
    04-10 11:45:26.532  5323  5323 I EdXposed-Bridge: Loading modules from /data/app/~~hcjuv6HzQbZOKMB3ug7WSw==/eu.faircode.xlua-vNspZ6pSQTrjHf23gYkdcA==/base.apk
    04-10 11:45:26.572  5323  5323 I EdXposed-Bridge:   Loading class eu.faircode.xlua.XLua
    04-10 11:45:26.806  5359  5359 I EdXposed: Start to install inline hooks
    04-10 11:45:26.806  5359  5359 I EdXposed: Using api level 30
    04-10 11:45:26.806  5359  5359 I EdXposed: Start to install Riru hook
    04-10 11:45:26.907  5323  5323 E EdXposed: error when hooking bindApp: pkg=com.suning.mobile.ebuy, prc=com.suning.mobile.ebuy
    04-10 11:45:26.907  5323  5323 E EdXposed: java.lang.ArrayIndexOutOfBoundsException: length=1052; index=1263817555
    04-10 11:45:26.907  5323  5323 E EdXposed:     at pxb.android.axml.AxmlParser.getNamespacePrefix(AxmlParser.java:151)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at pxb.android.axml.AxmlReader.accept(AxmlReader.java:80)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at com.elderdrivers.riru.edxp.util.MetaDataReader.<init>(MetaDataReader.java:27)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at com.elderdrivers.riru.edxp.util.MetaDataReader.getMetaData(MetaDataReader.java:19)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at com.elderdrivers.riru.edxp._hooker.impl.HandleBindApp.beforeHookedMethod(HandleBindApp.java:69)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at de.robv.android.xposed.XC_MethodHook.callBeforeHookedMethod(XC_MethodHook.java:51)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at com.swift.sandhook.xposedcompat.hookstub.HookStubManager.hookBridge(HookStubManager.java:361)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at SandHookerNew_42b8453bf7df105343083f1377c32094be493c49.hook(Unknown Source:51)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at android.app.ActivityThread.access$1300(ActivityThread.java:237)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at android.os.Handler.dispatchMessage(Handler.java:106)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at android.os.Looper.loop(Looper.java:223)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at android.app.ActivityThread.main(ActivityThread.java:7660)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at java.lang.reflect.Method.invoke(Native Method)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    04-10 11:45:26.907  5323  5323 E EdXposed:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
    04-10 11:45:26.935  5359  5359 I EdXposed: Riru hooks installed
    04-10 11:45:26.983  5359  5359 I EdXposed: ART hooks installed
    This is a bug in Riru.
    3
    i think by Android(framework) it means Google Service Framework (com.google.android.gsf)
    Android framework is Android system, not GSF.
    2
    Okay, it is really enough now. I won't follow this thread anymore. If you need support, you can use the support menu item in the pro companion app.
    1
    In the FAQ it says this:

    "Please make sure that Android (framework) and the Android settings provider (com.android.providers.settings) are being restricted (in the 'scope')."

    What exactly does that sentence mean (please provide details)?

    Thank you.
    goto your xposed apps (edxposed or lsposed) then find xprivacy lua module then restrict both said apps on scope
    1
    i "think" it's a probability
    Maybe you can take over supporting this project from me?
  • 9
    I am visiting this thread rarely anymore because most comments are about Xposed and not about XPrivacyLua. So, if it takes a long time until you get an answer from me, you know why now. If you don't get an answer at all, it is most likely about an Xposed issue.
    6
    Can you demonstrate where you see the Xposed issue so I can log a bug with them?
    This thread is full of comments about this problem, but the Xposed developers are too busy fighting with each other. Basically, XPrivacyLua itself isn't hooked.

    Read a little back here to see which version/combinations Riru/Xposed work.
    3
    @M66B Marcel, for me, XPrivacyLua is the only reason why I use Xposed. What if you could incorporate the parts you need from that into XPL so that it becomes an independent module running in Magisk? There's rumors that Riru will be incorporated into Magisk. Can XPL evolve into a Magisk module by then?
    3
    Thanks to @yujincheng08, there's a pull request queued to make LSPosed work with crDroid 6.14 which I'm using. Maybe, it also helps others. Now, XPrivacyLua is loaded properly.

    EDIT: And it got comitted. ;-) If you want to try it out, download LPosed 1.3.3 from Github Actions.
    3
    I'm on Samsung Note 20 Ultra 5G, Android 10, Dr. Ketan ROM.

    I was able to get XPrivacyLua work with the combination:
    Magisk 22.0 Edxposed 0.5.2.1_4677 XPrivacyLua 1.30

    It's installed and doesn't report any problems — however it doesn't block — at least something.

    I tested with blocking internet for Firefox, checking Internet.Offline — and while it reports the access time whenI open a page, so it's registering the access — it doesn't block it, the website loads.

    It did block it before I got into problems, but not now on new install.

    I'm aware I can block internet with a separate firewall — I also use Netguard — however it led me to a thought that it might not be blocking other permissions also.

    However it seems to block other permissions as I tried blocking camera use and Camera won't take pictures. But no more internet block.

    It would certainly give me more comfort to have it block internet access here also — especially since it worked before upgrade of Magisk etc and all the problems.

    Why is it not blocking? What could it be?

    Also, I was able to get it working on the same phone with the combination of latest Riru and Lsposed. The behavior oh the same.
    Blocking internet via Xposed hooks is unreliable, which is why this is not one of the standard hook definitions.
  • 299
    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. However:

    Discussions about Xposed are not allowed here, please use the Xposed forums instead.

    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 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.


    XDA:DevDB Information
    XPrivacyLua, Xposed for all devices (see above for details)

    Contributors
    M66B
    Source Code: https://github.com/M66B/XPrivacyLua

    Xposed Package Name: eu.faircode.xlua

    Version Information
    Status:
    Beta

    Created 2018-01-05
    Last Updated 2020-03-10
    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.
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone