Skip to content

Commit 0fd0975

Browse files
committed
Added sample java file for qhelp to render correctly.
1 parent cb5733d commit 0fd0975

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package poc.sample.classloader;
2+
3+
import android.app.Application;
4+
import android.content.pm.PackageInfo;
5+
import android.content.Context;
6+
import android.util.Log;
7+
8+
public class BadClassLoader extends Application {
9+
@Override
10+
public void onCreate() {
11+
super.onCreate();
12+
for (PackageInfo p : getPackageManager().getInstalledPackages(0)) {
13+
try {
14+
if (p.packageName.startsWith("some.package.")) {
15+
Context appContext = createPackageContext(p.packageName,
16+
CONTEXT_INCLUDE_CODE | CONTEXT_IGNORE_SECURITY);
17+
ClassLoader classLoader = appContext.getClassLoader();
18+
Object result = classLoader.loadClass("some.package.SomeClass")
19+
.getMethod("someMethod")
20+
.invoke(null);
21+
}
22+
} catch (Exception e) {
23+
Log.e("Class loading failed", e.toString());
24+
}
25+
}
26+
}
27+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package poc.sample.classloader;
2+
3+
import android.app.Application;
4+
import android.content.pm.PackageInfo;
5+
import android.content.Context;
6+
import android.content.pm.PackageManager;
7+
import android.util.Log;
8+
9+
public class GoodClassLoader extends Application {
10+
@Override
11+
public void onCreate() {
12+
super.onCreate();
13+
PackageManager pm = getPackageManager();
14+
for (PackageInfo p : pm.getInstalledPackages(0)) {
15+
try {
16+
if (p.packageName.startsWith("some.package.") &&
17+
(pm.checkSignatures(p.packageName, getApplicationContext().getPackageName()) == PackageManager.SIGNATURE_MATCH)
18+
) {
19+
Context appContext = createPackageContext(p.packageName,
20+
CONTEXT_INCLUDE_CODE | CONTEXT_IGNORE_SECURITY);
21+
ClassLoader classLoader = appContext.getClassLoader();
22+
Object result = classLoader.loadClass("some.package.SomeClass")
23+
.getMethod("someMethod")
24+
.invoke(null);
25+
}
26+
} catch (Exception e) {
27+
Log.e("Class loading failed", e.toString());
28+
}
29+
}
30+
}
31+
}

0 commit comments

Comments
 (0)