RemotePreferences: Does not work when trying to access via Xposed on an app targeting Android 11

As title, the library doesn’t work when the app Xposed is injecting into targets Android 11, due to App Visibility changes.

Logcat shows this error:

E ActivityThread: Failed to find provider info for com.kieronquinn.app.darq.provider.remoteprefs

It works perfectly fine with apps not targeting 11. Examples I can reproduce on are LinkedIn (targets 11) and Snapchat (targets 10)

From research, this can be resolved by adding a <provider> to the <queries> tag in the target app’s manifest, but obviously we don’t have access to that so it can’t be done. Might have to be done on boot by injecting into the server.

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Comments: 16 (3 by maintainers)

Commits related to this issue

Most upvoted comments

Short of that, there would need to be some kind of globally accessible service that can proxy requests between the hooked app and module app. I think that’s the path some newer frameworks like LSPosed use to implement their version of XSharedPreferences. If one were to go down that path, might as well just depend on XSharedPreferences instead.

LSposed and EdXposed both implement a self-hook for module apps that redirects the shared prefs to /data/misc/<xposed dir>/<pname>/ which is then set as global readable. It’s working for what I need thankfully, but is I think the only remaining hack that will work on Android 11. Shame this method won’t work any more, but I fully understand your reasoning and support not wanting to mess with system permissions to get around it.

There’s also a proposal of a new “Xposed Service” that might resolve this, where modules could bind to a service.