Skip to content

Commit b23278e

Browse files
author
tiann
committed
[VA]: fix apache httpclient dependency.
1 parent b4a38fd commit b23278e

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

VirtualApp/lib/src/main/java/com/lody/virtual/client/ipc/VPackageManager.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,25 @@ public List<ResolveInfo> queryIntentServices(Intent intent, String resolvedType,
179179

180180
public ApplicationInfo getApplicationInfo(String packageName, int flags, int userId) {
181181
try {
182-
return getInterface().getApplicationInfo(packageName, flags, userId);
182+
ApplicationInfo info = getInterface().getApplicationInfo(packageName, flags, userId);
183+
if (info == null) {
184+
return null;
185+
}
186+
final int P = 28;
187+
final String APACHE_LEGACY = "/system/framework/org.apache.http.legacy.boot.jar";
188+
if (android.os.Build.VERSION.SDK_INT >= P && info.targetSdkVersion < P) {
189+
String[] newSharedLibraryFiles;
190+
if (info.sharedLibraryFiles == null) {
191+
newSharedLibraryFiles = new String[]{APACHE_LEGACY};
192+
} else {
193+
int newLength = info.sharedLibraryFiles.length + 1;
194+
newSharedLibraryFiles = new String[newLength];
195+
System.arraycopy(info.sharedLibraryFiles, 0, newSharedLibraryFiles, 0, newLength - 1);
196+
newSharedLibraryFiles[newLength - 1] = APACHE_LEGACY;
197+
}
198+
info.sharedLibraryFiles = newSharedLibraryFiles;
199+
}
200+
return info;
183201
} catch (RemoteException e) {
184202
return VirtualRuntime.crash(e);
185203
}

0 commit comments

Comments
 (0)