diff --git a/CHANGELOG.md b/CHANGELOG.md
index 33611d6bc..bf05654af 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,7 @@ Changelog
* Added restriction *Srv_getAccountsForPackage*
* Added account type parameter for *Srv_getAccounts* and *Srv_getAccountsAsUser*
* Check external storage directory for *open* restriction ([issue](/../../issues/1757))
+* Added restriction *getInstalledProvidersForProfile* ([issue](/../../issues/1757))
[Open issues](https://github.com/M66B/XPrivacy/issues?state=open)
diff --git a/res/values/functions.xml b/res/values/functions.xml
index 381a6b820..61299eee5 100644
--- a/res/values/functions.xml
+++ b/res/values/functions.xml
@@ -368,6 +368,7 @@
Google documentation]]>
Google documentation]]>
Google documentation]]>
+ Google documentation]]>
Google documentation]]>
Google documentation]]>
Google documentation]]>
diff --git a/src/biz/bokhorst/xprivacy/Meta.java b/src/biz/bokhorst/xprivacy/Meta.java
index ef0b94f96..a915965c5 100644
--- a/src/biz/bokhorst/xprivacy/Meta.java
+++ b/src/biz/bokhorst/xprivacy/Meta.java
@@ -434,6 +434,7 @@ public static List get() {
mListHook.add(new Hook("system", "Srv_queryIntentServices", "", 19, "2.99", "queryIntentServices").AOSP(19).dangerous());
mListHook.add(new Hook("system", "getInstalledProviders", "", 3, null, null).notAOSP(19).dangerous());
+ mListHook.add(new Hook("system", "getInstalledProvidersForProfile", "", 21, "3.5.6", null).notAOSP(21).dangerous());
mListHook.add(new Hook("system", "Srv_getInstalledProviders", "", 3, "2.99", "getInstalledProviders").AOSP(19).dangerous());
mListHook.add(new Hook("system", "getRecentTasks", "GET_TASKS", 1, null, null).notAOSP(19).dangerous());
diff --git a/src/biz/bokhorst/xprivacy/XAppWidgetManager.java b/src/biz/bokhorst/xprivacy/XAppWidgetManager.java
index 264d94920..9120f4044 100644
--- a/src/biz/bokhorst/xprivacy/XAppWidgetManager.java
+++ b/src/biz/bokhorst/xprivacy/XAppWidgetManager.java
@@ -25,6 +25,7 @@ public String getClassName() {
// @formatter:off
// public List getInstalledProviders()
+ // public List getInstalledProvidersForProfile(UserHandle profile)
// frameworks/base/core/java/android/appwidget/AppWidgetManager.java
// http://developer.android.com/reference/android/appwidget/AppWidgetManager.html
@@ -34,12 +35,13 @@ public String getClassName() {
// @formatter:on
private enum Methods {
- getInstalledProviders, Srv_getInstalledProviders
+ getInstalledProviders, getInstalledProvidersForProfile, Srv_getInstalledProviders
};
public static List getInstances() {
List listHook = new ArrayList();
listHook.add(new XAppWidgetManager(Methods.getInstalledProviders, PrivacyManager.cSystem));
+ listHook.add(new XAppWidgetManager(Methods.getInstalledProvidersForProfile, PrivacyManager.cSystem));
listHook.add(new XAppWidgetManager(Methods.Srv_getInstalledProviders, PrivacyManager.cSystem));
return listHook;
}
@@ -53,6 +55,7 @@ protected void before(XParam param) throws Throwable {
protected void after(XParam param) throws Throwable {
switch (mMethod) {
case getInstalledProviders:
+ case getInstalledProvidersForProfile:
case Srv_getInstalledProviders:
if (param.getResult() != null)
if (isRestricted(param))