diff --git a/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java b/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java index 40cbd4ad..de05e06c 100644 --- a/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java +++ b/core/src/main/java/org/lsposed/lspd/service/LSPManagerService.java @@ -28,6 +28,7 @@ import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; +import android.content.AttributionSource; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -41,6 +42,7 @@ import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.drawable.Icon; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; @@ -680,9 +682,17 @@ public class LSPManagerService extends ILSPManagerService.Stub { try { var contentProvider = ActivityManagerService.getContentProvider("settings", 0); if (contentProvider != null) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + try { + contentProvider.call(new AttributionSource.Builder(1000).setPackageName("android").build(), + "settings", "PUT_global", "show_hidden_icon_apps_enabled", args); + return; + } catch (NoSuchMethodError ignored) { + } + } contentProvider.call("android", null, "settings", "PUT_global", "show_hidden_icon_apps_enabled", args); } - } catch (RemoteException | NullPointerException e) { + } catch (Throwable e) { Log.w(TAG, "setHiddenIcon: ", e); } } diff --git a/hiddenapi-stubs/src/main/java/android/content/AttributionSource.java b/hiddenapi-stubs/src/main/java/android/content/AttributionSource.java new file mode 100644 index 00000000..f54c432f --- /dev/null +++ b/hiddenapi-stubs/src/main/java/android/content/AttributionSource.java @@ -0,0 +1,4 @@ +package android.content; + +public class AttributionSource { +} diff --git a/hiddenapi-stubs/src/main/java/android/content/IContentProvider.java b/hiddenapi-stubs/src/main/java/android/content/IContentProvider.java index f1a7061a..53f4b577 100644 --- a/hiddenapi-stubs/src/main/java/android/content/IContentProvider.java +++ b/hiddenapi-stubs/src/main/java/android/content/IContentProvider.java @@ -4,8 +4,13 @@ import android.os.Bundle; import android.os.IInterface; import android.os.RemoteException; +import androidx.annotation.RequiresApi; + public interface IContentProvider extends IInterface { Bundle call(String callingPkg, String attributionTag, String authority, String method, String arg, Bundle extras) throws RemoteException; + @RequiresApi(31) + Bundle call(AttributionSource attributionSource, String authority, + String method, String arg, Bundle extras) throws RemoteException; }