/
XposedInit.java
58 lines (47 loc) · 1.46 KB
/
XposedInit.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package com.wrbug.dumpdex;
import android.os.Build;
import com.wrbug.dumpdex.dump.LowSdkDump;
import com.wrbug.dumpdex.dump.OreoDump;
import com.wrbug.dumpdex.util.DeviceUtils;
import java.io.File;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
/**
* XposedInit
*
* @author wrbug
* @since 2018/3/20
*/
public class XposedInit implements IXposedHookLoadPackage {
public static void log(String txt) {
XposedBridge.log("dumpdex-> " + txt);
}
public static void log(Throwable t) {
if (!BuildConfig.DEBUG) {
return;
}
XposedBridge.log(t);
}
@Override
public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam lpparam) {
PackerInfo.Type type = PackerInfo.find(lpparam);
if (type == null) {
return;
}
final String packageName = lpparam.packageName;
if (lpparam.packageName.equals(packageName)) {
String path = "/data/data/" + packageName + "/dump";
File parent = new File(path);
if (!parent.exists() || !parent.isDirectory()) {
parent.mkdirs();
}
log("sdk version:" + Build.VERSION.SDK_INT);
if (DeviceUtils.isOreo()) {
OreoDump.init(lpparam);
} else {
LowSdkDump.init(lpparam,type);
}
}
}
}