From d27e012442a17d6806ebedb8135b02680087af95 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Wed, 10 Feb 2021 23:13:01 +0800 Subject: [PATCH] Change to ParaceledListSlice --- .../receivers/LSPosedServiceClient.java | 2 +- .../lsposed/lspd/service/LSPosedService.java | 5 +- .../lsposed/lspd/service/PackageService.java | 12 +-- .../android/content/pm/IPackageManager.java | 4 +- .../java/android/content/res/TypedArray.java | 87 ------------------- 5 files changed, 9 insertions(+), 101 deletions(-) diff --git a/app/src/main/java/io/github/lsposed/manager/receivers/LSPosedServiceClient.java b/app/src/main/java/io/github/lsposed/manager/receivers/LSPosedServiceClient.java index 5cf734f7..b0faebe6 100644 --- a/app/src/main/java/io/github/lsposed/manager/receivers/LSPosedServiceClient.java +++ b/app/src/main/java/io/github/lsposed/manager/receivers/LSPosedServiceClient.java @@ -27,7 +27,7 @@ public class LSPosedServiceClient { List ps = null; try { - ps = service.getInstalledPackagesFromAllUsers(0); + ps = service.getInstalledPackagesFromAllUsers(0).getList(); } catch (RemoteException e) { e.printStackTrace(); } diff --git a/core/src/main/java/io/github/lsposed/lspd/service/LSPosedService.java b/core/src/main/java/io/github/lsposed/lspd/service/LSPosedService.java index 4cbc35e7..805a88ef 100644 --- a/core/src/main/java/io/github/lsposed/lspd/service/LSPosedService.java +++ b/core/src/main/java/io/github/lsposed/lspd/service/LSPosedService.java @@ -6,10 +6,9 @@ import android.os.Looper; import android.os.RemoteException; import android.util.Log; -import java.util.List; - import de.robv.android.xposed.XposedBridge; import io.github.xposed.xposedservice.IXposedService; +import io.github.xposed.xposedservice.utils.ParceledListSlice; public class LSPosedService extends IXposedService.Stub { public static final String TAG = "LSPosedService"; @@ -55,7 +54,7 @@ public class LSPosedService extends IXposedService.Stub { } @Override - public List getInstalledPackagesFromAllUsers(int flags) throws RemoteException { + public ParceledListSlice getInstalledPackagesFromAllUsers(int flags) throws RemoteException { return PackageService.getInstalledPackagesFromAllUsers(flags); } } diff --git a/core/src/main/java/io/github/lsposed/lspd/service/PackageService.java b/core/src/main/java/io/github/lsposed/lspd/service/PackageService.java index 678ff448..eb26031c 100644 --- a/core/src/main/java/io/github/lsposed/lspd/service/PackageService.java +++ b/core/src/main/java/io/github/lsposed/lspd/service/PackageService.java @@ -9,9 +9,9 @@ import android.os.ServiceManager; import android.util.Log; import java.util.ArrayList; -import java.util.List; import io.github.lsposed.lspd.nativebridge.ConfigManager; +import io.github.xposed.xposedservice.utils.ParceledListSlice; public class PackageService { private static IPackageManager pm = null; @@ -46,17 +46,13 @@ public class PackageService { return res; } - public static List getInstalledPackagesFromAllUsers(int flags) throws RemoteException { - if (!isInstaller(Binder.getCallingUid())) { - throw new RemoteException("Permission denied"); - } + public static ParceledListSlice getInstalledPackagesFromAllUsers(int flags) throws RemoteException { ArrayList res = new ArrayList<>(); IPackageManager pm = getPackageManager(); - if (pm == null) return res; + if (pm == null) return new ParceledListSlice<>(res); for (int uid : UserService.getUsers()) { - Log.w("LSPosed", "uid: " + uid); res.addAll(pm.getInstalledPackages(flags, uid).getList()); } - return res; + return new ParceledListSlice<>(res); } } diff --git a/hiddenapi-stubs/src/main/java/android/content/pm/IPackageManager.java b/hiddenapi-stubs/src/main/java/android/content/pm/IPackageManager.java index 1addb6a5..737d4338 100644 --- a/hiddenapi-stubs/src/main/java/android/content/pm/IPackageManager.java +++ b/hiddenapi-stubs/src/main/java/android/content/pm/IPackageManager.java @@ -19,10 +19,10 @@ public interface IPackageManager extends IInterface { String[] getPackagesForUid(int uid) throws RemoteException; - ParceledListSlice getInstalledPackages(int flags, int userId) + ParceledListSlice getInstalledPackages(int flags, int userId) throws RemoteException; - ParceledListSlice getInstalledApplications(int flags, int userId) + ParceledListSlice getInstalledApplications(int flags, int userId) throws RemoteException; int getUidForSharedUser(String sharedUserName) diff --git a/hiddenapi-stubs/src/main/java/android/content/res/TypedArray.java b/hiddenapi-stubs/src/main/java/android/content/res/TypedArray.java index 67fa44b5..f067e0fb 100644 --- a/hiddenapi-stubs/src/main/java/android/content/res/TypedArray.java +++ b/hiddenapi-stubs/src/main/java/android/content/res/TypedArray.java @@ -1,94 +1,7 @@ package android.content.res; -import android.graphics.drawable.Drawable; - public class TypedArray { -// /** Only for API stubs creation, DO NOT USE! */ -// /*package*/ TypedArray() { -// throw new UnsupportedOperationException("STUB"); -// } -// protected TypedArray(Resources resources) { throw new UnsupportedOperationException("STUB"); } -// -// protected TypedArray(Resources resources, int[] data, int[] indices, int len) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public boolean getBoolean(int index, boolean defValue) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public int getColor(int index, int defValue) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public ColorStateList getColorStateList(int index) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public float getDimension(int index, float defValue) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public int getDimensionPixelOffset(int index, int defValue) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public int getDimensionPixelSize(int index, int defValue) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public Drawable getDrawable(int index) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public float getFloat(int index, float defValue) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public float getFraction(int index, int base, int pbase, float defValue) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public int getInt(int index, int defValue) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public int getInteger(int index, int defValue) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public int getLayoutDimension(int index, int defValue) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public int getLayoutDimension(int index, String name) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public int getResourceId(int index, int defValue) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public Resources getResources() { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public String getString(int index) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public CharSequence getText(int index) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public CharSequence[] getTextArray(int index) { -// throw new UnsupportedOperationException("STUB"); -// } -// -// public void recycle() { -// throw new UnsupportedOperationException("STUB"); -// } }