如何在应用初始化之前获取versionName
函数中的versionCode
和IXposedHookLoadPackage.handleLoadPackage
包?我尝试过使用AndroidAppHelper.currentApplication()
,但会返回null
。
答案 0 :(得分:1)
这是我使用的代码(来自this post的想法)。它返回格式versionName (versionCode)
。
private static String getPackageVersion(XC_LoadPackage.LoadPackageParam lpparam) {
try {
Class<?> parserCls = XposedHelpers.findClass("android.content.pm.PackageParser", lpparam.classLoader);
Object parser = parserCls.newInstance();
File apkPath = new File(lpparam.appInfo.sourceDir);
Object pkg = XposedHelpers.callMethod(parser, "parsePackage", apkPath, 0);
String versionName = (String)XposedHelpers.getObjectField(pkg, "mVersionName");
int versionCode = XposedHelpers.getIntField(pkg, "mVersionCode");
return String.format("%s (%d)", versionName, versionCode);
} catch (Throwable e) {
return "(unknown)";
}
}