0
アプリが初期化される前に、IXposedHookLoadPackage.handleLoadPackage
機能内でパッケージのversionName
とversionCode
を入手するにはどうすればよいですか? AndroidAppHelper.currentApplication()
を試しましたが、null
を返します。Xposedでフックされたパッケージのバージョンを取得するには?
アプリが初期化される前に、IXposedHookLoadPackage.handleLoadPackage
機能内でパッケージのversionName
とversionCode
を入手するにはどうすればよいですか? AndroidAppHelper.currentApplication()
を試しましたが、null
を返します。Xposedでフックされたパッケージのバージョンを取得するには?
私が使用しているコードは次のとおりです(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)";
}
}