Skip to content

Commit

Permalink
[core] Fix get module source (LSPosed#725)
Browse files Browse the repository at this point in the history
  • Loading branch information
yujincheng08 authored Jun 3, 2021
1 parent 9a66cec commit f010322
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 7 deletions.
2 changes: 1 addition & 1 deletion core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ val verName: String by rootProject.extra
dependencies {
implementation("dev.rikka.ndk:riru:${moduleMinRiruVersionName}")
implementation("dev.rikka.ndk.thirdparty:cxx:1.1.0")
implementation("com.android.tools.build:apksig:7.0.0-beta01")
implementation("com.android.tools.build:apksig:7.0.0-beta03")
implementation("org.apache.commons:commons-lang3:3.12.0")
implementation("de.upb.cs.swt:axml:2.1.1")
compileOnly(project(":hiddenapi-stubs"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ public String[] enabledModules() {

@Override
public boolean enableModule(String packageName) throws RemoteException {
PackageInfo pkgInfo = PackageService.getPackageInfo(packageName, 0, 0);
PackageInfo pkgInfo = PackageService.getPackageInfo(packageName, PackageService.MATCH_ALL_FLAGS, 0);
if (pkgInfo == null) return false;
return ConfigManager.getInstance().enableModule(packageName, pkgInfo.applicationInfo.sourceDir);
}
Expand Down Expand Up @@ -210,7 +210,7 @@ public boolean isSepolicyLoaded() throws RemoteException {
@Override
public List<UserInfo> getUsers() throws RemoteException {
var users = new LinkedList<UserInfo>();
for(var user: UserService.getUsers()){
for (var user : UserService.getUsers()) {
var info = new UserInfo();
info.id = user.id;
info.name = user.name;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ public class PackageService {
static final int INSTALL_FAILED_INTERNAL_ERROR = -110;
static final int INSTALL_REASON_UNKNOWN = 0;

static final int MATCH_ALL_FLAGS = PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE | PackageManager.MATCH_UNINSTALLED_PACKAGES;

private static IPackageManager pm = null;
private static IBinder binder = null;
Expand Down Expand Up @@ -134,9 +135,8 @@ public static ParceledListSlice<PackageInfo> getInstalledPackagesFromAllUsers(in
}
if (filterNoProcess) {
res = res.stream().filter(packageInfo -> {
int baseFlag = PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE | PackageManager.MATCH_UNINSTALLED_PACKAGES;
try {
PackageInfo pkgInfo = getPackageInfoWithComponents(packageInfo.packageName, baseFlag, packageInfo.applicationInfo.uid / 100000);
PackageInfo pkgInfo = getPackageInfoWithComponents(packageInfo.packageName, MATCH_ALL_FLAGS, packageInfo.applicationInfo.uid / 100000);
return !fetchProcesses(pkgInfo).isEmpty();
} catch (RemoteException e) {
return true;
Expand Down Expand Up @@ -173,8 +173,7 @@ private static Set<String> fetchProcesses(PackageInfo pkgInfo) {
public static Pair<Set<String>, Integer> fetchProcessesWithUid(Application app) throws RemoteException {
IPackageManager pm = getPackageManager();
if (pm == null) return new Pair<>(Collections.emptySet(), -1);
int baseFlag = PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.MATCH_UNINSTALLED_PACKAGES | PackageManager.MATCH_DIRECT_BOOT_AWARE | PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
PackageInfo pkgInfo = getPackageInfoWithComponents(app.packageName, baseFlag, app.userId);
PackageInfo pkgInfo = getPackageInfoWithComponents(app.packageName, MATCH_ALL_FLAGS, app.userId);
if (pkgInfo == null || pkgInfo.applicationInfo == null)
return new Pair<>(Collections.emptySet(), -1);
return new Pair<>(fetchProcesses(pkgInfo), pkgInfo.applicationInfo.uid);
Expand Down

0 comments on commit f010322

Please sign in to comment.